æè¿ãç£æ°ãã©ãã¯ãªãŒããŒããã«ãŒãããŒã¿ã解èªããå¿ èŠããããŸããã ããã¯ç°¡åã«æããŸãã ããŒãååŸããç¹å®ã®åŸ©å·åã¢ã«ãŽãªãºã ãå®è¡ããŸãã ããããããã«ãããŸããã
ç§ã®èªè ã¯ãDUKPTïŒãã©ã³ã¶ã¯ã·ã§ã³ããšã®æŽŸçäžæããŒ-äžæã®ãã©ã³ã¶ã¯ã·ã§ã³ããŒã®å®çŸ©ïŒãšããŠç¥ãããã¹ããŒã ã䜿çšããŠããããšãããããŸããã ãã®ã¹ããŒã ã®èãæ¹ã¯ããã©ã³ã¶ã¯ã·ã§ã³ããšïŒãŸãã¯ãã«ãŒãã¬ã³ã¿ã«ããšã«ïŒãåã ã®ã«ãŒãã¬ã³ã¿ã«ã«å¯ŸããŠèšç®ãããããŒã䜿çšããŠããŒã¿ãæå·åãããããšã§ãã
ãããã£ãŠããã®ã¹ããŒã ã䜿çšããŠæå·åãããããŒã¿ã埩å·åããã«ã¯ãå¥ã®ã«ãŒãã¬ã³ã¿ã«ã®ããŒãèšç®ã§ããå¿ èŠããããŸãã ãã®ãããªããŒïŒã»ãã·ã§ã³ããŒïŒãèšç®ããããã»ã¹ã¯åçŽã§ã¯ãããŸããã
ãã®ããã»ã¹ã¯ANSI X9.24ããŒã1ã§èª¬æãããŠããŸãããã ããããã¥ã¡ã³ãã®è²»çšã¯çŽ140ãã«ã§ãã ãã®ããã»ã¹ã説æããç¡æã§ç°¡åã«ã¢ã¯ã»ã¹ã§ããããã¥ã¡ã³ããèŠã€ããã®ã¯å°é£ã§ãã ç§ãèŠã€ããæé«ã®ãªãœãŒã¹ã¯ãã¡ãã§ãã IPEKïŒåæPINæå·åããŒã®èšç®æ¹æ³ïŒã«ã€ããŠã¯ããªãè¯ã説æããããŸãã æ®å¿µãªãããããã¯å®å šãªã¹ããŒã ã®äžéšã«ãããŸããã ãã®æçš¿ã§ã¯ãDUKPTã¹ããŒã ãå æ¬çã«èª¬æããããšããŸãã
å®çŸ©
BDK ïŒããã¯ãBase Derivation Keyã®ç¥èªã§ãã ãã®ããŒã¯ãç£æ°ãã©ãã¯ã¹ãã£ããŒãšå¯Ÿè©±ãããœãããŠã§ã¢ã®è£œé å ãšéçºè ã®ã¿ãç¥ã£ãŠããŸãã
IPEK ïŒããã¯ãåæPINæå·åããŒã®ç¥ã§ãã ãã®ããŒã¯BDKãã決å®ãããŸãã ãã®ããŒã¯è£œé å ã«ãã£ãŠããã€ã¹ã«ããŠã³ããŒããããå°æ¥ã®ããŒã®çæã«äœ¿çšãããŸãã IPECã®äŸµå®³ã¯BDKã䟵害ããŸããã
KSN ïŒããã¯ããŒã·ãªã¢ã«çªå·ã®ç¥ã§ãã KSNã¯ãç£æ°ãã©ãã¯ã¹ãã£ããŒã®ã·ãªã¢ã«çªå·ãšãããã€ã¹ã§è¡ãããã«ãŒãã¬ã³ã¿ã«æ°ã®ã«ãŠã³ã¿ãŒã®çµã¿åããã§ãã
ä»çµã¿
ã¡ãŒã«ãŒã¯BDKã䜿çšããŠIPEKãçæããŸããIPEKã¯éçºäžã«ããã€ã¹ã«ããŠã³ããŒããããŸãã ããã€ã¹ã¯ãIPEKããã³KSNã䜿çšããŠã»ãã·ã§ã³ããŒãèšç®ããã«ãŒãããèªã¿åã£ãããŒã¿ãæå·åããŸãã
ãœãããŠã§ã¢éçºè ã¯ãIPEKãèšç®ããããã«BDKãå¿ èŠãšããŸãã IPEKãåä¿¡ãããšãããã€ã¹ããKSNãèŠæ±ã§ããŸãã IPEKãšKSNã¯ãå¥ã®ãã©ã³ã¶ã¯ã·ã§ã³/ã«ãŒãã¬ã³ã¿ã«ã®ããŒãååŸããããã«äœ¿çšãããŸãã ãããã®ããŒã䜿çšããŠãéçºè ã¯ã«ãŒãããŒã¿ã解èªã§ããŸãã
IPECèšç®
ããŒãèšç®ããããã®åæããŒïŒIPEKïŒãååŸããã«ã¯ãåºæ¬ã¢ã«ãŽãªãºã ããŒïŒBDKïŒãšããŒã·ãªã¢ã«çªå·ïŒKSNïŒãå¿ èŠã§ãã IPEKã¯ãTripleDESã¢ã«ãŽãªãºã ã䜿çšããŠæ±ºå®ãããŸãã TripleDESã¯ãåçŽãª3ãã¹DESã¢ã«ãŽãªãºã ã§ãã
ã¢ã«ãŽãªãºã ã¯24ãã€ãã®ããŒã䜿çšããŸãã DESã¢ã«ãŽãªãºã ã¯3å䜿çšãããŸããæåã«1ã8ãã€ãã®ããŒã次ã«9ã16ãã€ããæåŸã«åãã¹ããšã«17ã24ãã€ãã®ããŒã䜿çšãããŸãã
TripleDESã¯ã16ãã€ãã®ããŒãEDE3ãšåŒã°ããã¡ãœããã䜿çšã§ããŸãã ãã€ã1ã8ãæåã«äœ¿çšããã次ã«9ã16ã次ã«1ã8ã䜿çšããã24ãã€ãããŒãçºè¡ãããŸãã
äžéšã®TripleDESå®è£ ã§ã¯ãçãããŒãèªåçã«äœ¿çšã§ããŸããã ãããç解ããåã«ãåé¡ãäœã§ããããç解ããããšããŠå€ãã®æéãè²»ãããŸããã ãããTripleDESã®ç¹å¥ãªå®è£ ã§ãããšä»®å®ããŠã16ãã€ãã®çºè¡ããã24ãã€ãããŒã䜿çšããŸããã
å€ãã®èŠæ©ã®æ«ãTripleDESã¢ã«ãŽãªãºã ã«è»¢éããåã«ãæåã®8ãã€ããããŒã®æåŸã«è¿œå ããããšããããšã«æ°ä»ããŸããã ããã§åé¡ã¯è§£æ±ºããŸããã
詳现
IPEKã¯ãTripleDESã¢ã«ãŽãªãºã ã®2ã€ã®å¥ã ã®ãã¹ã®çµæãšããŠååŸããã2ã€ã®8ãã€ãéšåã§æ§æãããŸãã äž¡æ¹ãšãããªã»ããã«ãŠã³ã¿ãŒã§KSNã®äžäœ8ãã€ããæå·åããããšã«ãã£ãŠååŸãããŸãã å·Šéšåãšå³éšåã®éãã¯ãBDKã®ãããã«å€æŽãããããŒãžã§ã³ã䜿çšããŠKSNãæå·åããããšã«ãããå³åŽãååŸãããããšã§ãã ãã®ããã»ã¹ã以äžã«èª¬æããŸãã
16é²æååã0123456789ABCDEFFEDCBA9876543210ãã§è¡šããã16ãã€ãã®BDKããããšããŸãã ãŸãã16é²æ°ã®æååãFFFF9876543210E00008ãã§è¡šãããã8ã«çããã«ãŠã³ã¿ãŒãæã€10ãã€ãã®KSNããããŸãã
æåã®8ãã€ããBDKã®æ«å°Ÿã«è¿œå ããããšã«ãããBDKãååŸããŠIPEKã®å·ŠåŽãæå·åããŸããããã¯æ¬¡ã®24ãã€ãã®ããŒã«ãªããŸãã
0123456789ABCDEFFEDCBA98765432100123456789ABCDEF
KSNã®é·ãã10ãã€ãã«çãããªãå Žåã10ãã€ãã®16é²æ°ãFãïŒ1111ïŒã§è£å®ããŸãã IPEKãããã€ã¹ã®æåã®ããŒã§ããããšã«æ³šæããããšãéèŠã§ãã ããã¯ã0ã«çããKSNã®ã«ãŠã³ã¿ãŒã§èšç®ããããšãæå³ããŸããã«ãŠã³ã¿ãŒ0ã®KSNãååŸããã«ã¯ã16é²è¡šçŸã®ã¹ããªã³ã°ãFFFFFFFFFFFFFFEFE000ãã§ãã¹ã¯ã課ããŸãã
FFFF9876543210E00008 and FFFFFFFFFFFFFFE00000 = FFFF9876543210E00000
ããã ããã§KSNã¯ãŒãã«ãªããŸããã ãã ããäžäœ8ãã€ãã®KSNãå¿ èŠã§ãã KSNã16ãããå³ã«ã·ããããããšã§ååŸã§ããŸãã
FFFF9876543210E00000 >> 16 = FFFF9876543210E0
çŽ æŽãããã 次ã®ã¹ãããã¯ã24ãã€ãã®BDKããŒã0123456789ABCDEFFEDCBA98765432100123456789ABCDEFãã䜿çšããã¹ãââãªã³ã°ãFFFF9876543210E0ãã®TripleDESæå·åã§ãã ãã®æå·åã®çµæã¯ãIPEKã®å·ŠåŽã«ãªããŸãã
6AC292FAA1315B4D
èŠããŠãããªããBDKã®ãããã«ä¿®æ£ãããããŒãžã§ã³ãæ£ããéšåãåŸãããã«äœ¿çšããããšè¿°ã¹ãŸããã ãããã£ãŠããããè¡ãã«ã¯ãå ã®16ãã€ãã®BDKã0123456789ABCDEFFEDCBA9876543210ããååŸãã次ã®ãã¹ã¯ãC0C0C0C000000000C0C0C0C000000000ãã§XORãå®è¡ããå¿ èŠããããŸãã ããã¯å®å šã«ä»»æã®ãã¹ã¯ã®ããã«èŠããŸãããæ²ããããªãæ£ããIPEKãååŸããå¿ èŠããããŸãã
0123456789ABCDEFFEDCBA9876543210 xor C0C0C0C000000000C0C0C0C000000000 = C1E385A789ABCDEF3E1C7A5876543210
å·ŠåŽã®ããŒã§è¡ã£ãã®ãšåãããšãè¡ããäžäœ8ãã€ããååŸããŠæåŸã«è¿œå ãã次ã®24ãã€ãã®ããŒãååŸããŸãã
C1E385A789ABCDEF3E1C7A5876543210C1E385A789ABCDEF
次ã«ããŒãã«ãŠã³ã¿ãŒïŒä»¥åã«èšç®ããïŒã§KSNã®äžäœ8ãã€ããååŸããèšç®ããã°ããã®ããŒã§TripleDESã䜿çšããŠæå·åããŸãã ããã«ãããé©åãªIPEKã¬ãžã¹ã¿ãåŸããã次ã®16ãã€ãIPEKãåŸãããŸãïŒããããããããããã«ãå·Šãšå³ã®éšåãåããŠããŸãïŒã
6AC292FAA1315B4D 858AB3A3D7D5933A
ã»ãã·ã§ã³ããŒã®èšç®
IPEKããããŸãã 次ã«ãå¥ã®ã«ãŒãã¬ã³ã¿ã«çšã«IPEKããäžæã®ããŒïŒã»ãã·ã§ã³ããŒïŒãååŸããå¿ èŠããããŸãã ãããååŸããã«ã¯ãããã€ãã®ãµãã«ãŒãã³ã䜿çšããŸãããã©ãã¯ããã¯ã¹ãšåŒã³ãŸãããããã®ç®çã¯ãå¥ã®ã»ãã·ã§ã³ããŒãè¿ãããšã§ãã ãã©ãã¯ããã¯ã¹ã§äœãèµ·ãã£ãŠãããã¯ããŸã æžå¿µäºé ã§ã¯ãããŸããã ä»ããã®ãµãã«ãŒãã³ã®å ¥åãèŠãŠã¿ãŸãããã
ãã©ãã¯ããã¯ã¹ã«ã¯2ã€ã®å ¥ãå£ããããŸãã 1ã€ã¯ããŒã§ããã1ã€ã¯æå·åæååã§ãã æååã¯å€æŽãããKSNã§ãã
èŠããŠãããªããKSNã®äžäœ21ãããã«ã¯ãããã€ã¹äžã®ã«ãŒãã¬ã³ã¿ã«æ°ã®ã«ãŠã³ã¿ãŒãå«ãŸããŠããŸãã ä¿®æ£ãããKSNããã«ãŠã³ã¿ãŒã®ãã€ããªè¡šçŸã«ãããŠãããã®æ°ã ããµãã«ãŒãã³ã«æž¡ããŸãã å€æŽãããKSNã§éä¿¡ãããããŒã¯ãæåã®å埩ã§IPEKã§ããã次ã®å埩ã§ã¯ãåã®å埩ã§ãã©ãã¯ããã¯ã¹ããååŸãããããŒã«ãªããŸãã
KSNãå€æŽããããšããå§ããŸãããã ãŸããKSNã®äžäœ8ãã€ããååŸããã«ãŠã³ã¿ãŒå€ãKSNã«ãªã»ããããŸãã ããã¯ã次ã®ãã¹ã¯ã䜿çšããŠKSNããã¹ã¯ããããšã§å®è¡ã§ããŸãã
FFFF9876543210E00008 and 0000FFFFFFFFFFE00000 = 00009876543210E00000
çµæã®å€ã䜿çšããŠããã©ãã¯ããã¯ã¹ã«éä¿¡ãããåã¡ãã»ãŒãžãèšç®ããŸãã ã«ãŠã³ã¿ãŒã8ã®äŸã§ã¯ãæ°å€8ïŒ1000ïŒã®ãã€ããªè¡šçŸããã©ãã¯ããã¯ã¹ã«è»¢éããå¿ èŠããããŸãã ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ããã«ãã«ãŠã³ã¿ãŒã®ããè€éãªå€ã10ïŒ1010ïŒã§ãããšããŸãã
ã«ãŠã³ã¿ãŒãã2é²æ°ã®ã»ãããæœåºããŸãã ç§ãã¡ã®å Žåã10ïŒ1010ïŒã®å Žåã2ã€ã®2é²æ°ã1000ãš0010ããããŸããã¹ããŒã ããã£ããããŸãããïŒ 10ã®åãã€ããªåäœãè¡šãæ°å€ã®ã»ãããååŸããŸãã
次ã«ãæåã®çªå·ãååŸããåè¿°ã®ããã«ãã«ãŠã³ã¿ãŒããŒãã«ãªã»ããããKSNã§ORæŒç®ã䜿çšããŸãïŒæåã®çªå·ã®16é²è¡šçŸã¯0008ã«ãªããŸãïŒã
9876543210E00000 OR 0000000000000008 = 9876543210E00008
ããã§ãIPEKãããŒãšããŠè»¢éããKSNããã©ãã¯ããã¯ã¹ã«å€æŽããŸããã ãã©ãã¯ããã¯ã¹ã¯æ°ããããŒãè¿ããŸãã ããã¯æåã®ã»ãã·ã§ã³ããŒïŒ16é²æ°ã§è¡šãããŸãïŒïŒ "27f66d5244ff62e1aa6f6120edeb4280"ã§ãã
次ã«ã以åã«èšç®ããã次ã®2é²æ°2ïŒ0010ïŒã䜿çšããŠããã»ã¹ãç¹°ãè¿ããŸãã ä»åã¯ãåä¿¡ããæåã®ã»ãã·ã§ã³ããŒã䜿çšããŠãæ°ããKSNå€æŽãèšç®ããŸãã
æ°ããKSNå€æŽãèšç®ããã«ã¯ãæåŸã«åä¿¡ããå€æŽ9876543210E00008ã§ORæŒç®ãå®è¡ããŸãã
9876543210E00008 OR 0000000000000002 = 9876543210E0000A
次ã«ãæ°ããããŒã27f66d5244ff62e1aa6f6120edeb4280ããšæ°ããKSNå€æŽã9876543210E0000Aãããã©ãã¯ããã¯ã¹ã«è»¢éããå¥ã®å°æ¥ã®ããŒã6cf2500a22507c7cc776ceadc1e33014ããååŸããŸãã ããã¯ãã«ãŠã³ã¿ã10ã®ããã€ã¹ã®ã»ãã·ã§ã³ããŒã§ãã
ãã ããå®éã®ã«ãŠã³ã¿ãŒã¯8ã§ãããæåã®æ®µéã§å®éã®ã»ãã·ã§ã³ããŒã27F66D5244FF62E1AA6F6120EDEB4280ããèšç®ããŸããã
ååŸããå€ã䜿çšããŠå®è¡ããå¿ èŠãããæåŸã®æäœã¯ãããŒã¿ã埩å·åããããŒã®æçµçãªå€æã§ãã ãã¹ã¯ã00000000000000FF00000000000000FFãã§ããŒã®XORãå®è¡ããå¿ èŠããããŸãã
27F66D5244FF62E1AA6F6120EDEB4280 XOR 00000000000000FF00000000000000FF = 27F66D5244FF621EAA6F6120EDEB427F
ããã¯ãããŒã¿ã埩å·åããããã«å¿ èŠãªããŒã§ãã
ãã©ãã¯ããã¯ã¹
ãã©ãã¯ããã¯ã¹ãã»ãã·ã§ã³ããŒãèšç®ããã¢ã«ãŽãªãºã ãšåŒã³ãŸããã ãã©ãã¯ããã¯ã¹ã¯çŸåšã®ã»ãã·ã§ã³ããŒãåãå ¥ããŸããããã¯current_skã瀺ããKSNå€æŽã¯ksn_modã瀺ããŸã ã
æåã«ãäžèšã§åãåã£ãIPEKãcurrent_skãšããŠæž¡ããã ksn_modãäžèšã§èšç®ããå€ "9876543210E00008"ãšçãããšä»®å®ããå Žåã
ãŸãã current_skãååŸããäžäœ8ãã€ããååŸããŠããããã64ãããå³ã«ã·ããããã6AC292FAA1315B4DããååŸããå¿ èŠããããŸãã ããã¯ãããããã¹ã¯ã䜿çšããŠååŸã§ããŸãã
6AC292FAA1315B4D858AB3A3D7D5933A AND FFFFFFFFFFFFFFFF0000000000000000 = 6AC292FAA1315B4D0000000000000000
ããã§ãã6AC292FAA1315B4DããååŸããã«ã¯ããã®å€ã64ãããå³ã«ã·ããããå¿ èŠããããŸãã left_keyãšåŒã³ãŸã ïŒ current_skã®å·ŠåŽã®ããã«èŠããŸã ïŒã
次ã«ããã¹ã¯ã䜿çšããŠcurrent_skã®äžäœ 8ãã€ããååŸããŸãã
6AC292FAA1315B4D858AB3A3D7D5933A AND 0000000000000000FFFFFFFFFFFFFFFF = 0000000000000000858AB3A3D7D5933A
ãã®å€ãïŒæšæž¬ããããã«ïŒ right_keyãšåŒã³ãŸãããã 次ã«ã right_keyãååŸã ã ksn_mod "9876543210E00008"ã§XORãå®è¡ããŸãã
858AB3A3D7D5933A AND 9876543210E00008 = 1DFCE791C7359332
ãã®å€ã¯ã¡ãã»ãŒãžãšåŒã°ããŸãã 次ã«ãã¡ãã»ãŒãžãååŸããDESïŒã·ã³ãã«DESïŒã§æå·åããŸãã æå·åããããŒã¿ãšããŠã¡ãã»ãŒãžãDESã«ãæå·åããããŒãšããŠleft_keyãæž¡ããŸãã çµæã¯ã2FE5D2833A3ED1BAãã§ãã ããã§ããã®å€ãšright_keyãXORããå¿ èŠããããŸãã
2FE5D2833A3ED1BA XOR 858AB3A3D7D5933A = AA6F6120EDEB4280
ãã®å€ã¯ãã»ãã·ã§ã³ããŒã®äžäœ8ãã€ãã§ãïŒ ããã§ãä»èª¬æããæäœãä»ã®å ¥åããŒã¿ã§ç¹°ãè¿ãå¿ èŠããããŸãã ä»åã¯ã current_skãååŸãããC0C0C0C000000000C0C0C0C000000000ããšXORãå®è¡ããŸãã ç§ã®ç¥ãéãããã®å€ã¯ä»»æã§ãããANSIæšæºã®äžéšã§ãããããããªãã¯ç§ã®èšèãä¿¡ããå¿ èŠããããŸãã
6AC292FAA1315B4D858AB3A3D7D5933A XOR C0C0C0C000000000C0C0C0C000000000 = AA02523AA1315B4D454A7363D7D5933A
äžèšã®æäœã§å€ãAA02523AA1315B4D454A7363D7D5933AããååŸãããããcurrent_skã§çœ®ãæãããšãã27F66D5244FF62E1ããåŸãããŸãã ãããã¯ãã»ãã·ã§ã³ããŒã®äžäœ8ãã€ãã§ãã ããããçµã¿åããããšãã27F66D5244FF62E1AA6F6120EDEB4280ããåŸãããŸãã
ãããã«
DUKPTåè·¯ãšããããç£æ°ãã©ãã¯ã¹ãã£ããŒã®ããã©ãŒãã³ã¹ã«ã©ã®ããã«é¢ä¿ããŠãããã説æããããšæããŸãã ã³ã¡ã³ãæ¬ã®èšæ£ãšè³ªåãåŸ ã£ãŠããŸãã