RSAãšAESæå·åã¢ã«ãŽãªãºã ã®éããããããã®é·æãçæããããŠçŸä»£ã®ãµã€ããŒã»ãã¥ãªãã£ã«ããããŠãŒã¹ã±ãŒã¹ãæ¢ããŸãã
RSA察AESïŒæå·åã¢ã«ãŽãªãºã ã®åŸ¹åºæ¯èŒã¬ã€ã
仿¥ã®ããžã¿ã«äžçã«ãããŠãããŒã¿ã»ãã¥ãªãã£ã¯æéèŠã§ããæå·åã¢ã«ãŽãªãºã ã¯ãæ©å¯æ å ±ãäžæ£ã¢ã¯ã»ã¹ããä¿è·ããäžã§éèŠãªåœ¹å²ãæãããŸããæãåºã䜿çšãããŠããæå·åã¢ã«ãŽãªãºã ã®2ã€ããRSAïŒRivest-Shamir-AdlemanïŒãšAESïŒAdvanced Encryption StandardïŒã§ããã©ã¡ããå®å šãªéä¿¡ã«äžå¯æ¬ ã§ãããç°ãªãååã«åºã¥ããŠåäœããããããç°ãªãç®çãæãããŸãããã®ã¬ã€ãã§ã¯ãRSAãšAESã®å æ¬çãªæ¯èŒãæäŸããããããã®é·æãçæãããã³å®çšçãªã¢ããªã±ãŒã·ã§ã³ãæ¢ããŸãã
æå·åã®åºç€ãçè§£ãã
RSAãšAESã®è©³çްã«å ¥ãåã«ãæå·åã®åºæ¬æŠå¿µãçè§£ããããšãéèŠã§ãã
æå·åãšã¯ïŒ
æå·åãšã¯ãã¢ã«ãŽãªãºã ãšéµã䜿çšããŠãèªã¿åãå¯èœãªããŒã¿ïŒå¹³æïŒãèªã¿åãäžå¯èœãªåœ¢åŒïŒæå·æïŒã«å€æããããã»ã¹ã§ããæ£ããéµãæã€å人ã®ã¿ããæå·æãå ã®å¹³æåœ¢åŒã«åŸ©å·ã§ããŸãã
æå·åã®çš®é¡
æå·åã«ã¯äž»ã«2ã€ã®çš®é¡ããããŸãã
- å ±é鵿å·ïŒSymmetric EncryptionïŒ: æå·åãšåŸ©å·ã®äž¡æ¹ã«åãéµã䜿çšããŸããAESã¯å ±é鵿å·ã¢ã«ãŽãªãºã ã®ä»£è¡šäŸã§ãã
- å ¬é鵿å·ïŒAsymmetric EncryptionïŒ: æå·åçšã®å ¬ééµãšåŸ©å·çšã®ç§å¯éµãšãã2ã€ã®å¥ã ã®éµã䜿çšããŸããRSAã¯åºã䜿çšãããŠããå ¬é鵿å·ã¢ã«ãŽãªãºã ã§ãã
RSAïŒå ¬é鵿å·ã®è§£èª¬
RSAã®ä»çµã¿
RSAã¯ãçŽ æ°ã®æ°åŠçæ§è³ªã«åºã¥ããå ¬é鵿å·ã¢ã«ãŽãªãºã ã§ãã以äžã®ã¹ãããã§æ§æãããŸãã
- éµçæïŒ 2ã€ã®å€§ããªçŽ æ°ïŒpãšqïŒãéžæãããŸãããããã®çŽ æ°ã®ç©ãn = p * qãèšç®ãããŸãããªã€ã©ãŒã®ããŒã·ã§ã³ã颿°ãÏ(n) = (p-1) * (q-1)ãèšç®ãããŸãã
- å ¬ééµã®äœæïŒ 1 < e < Ï(n) ã§ãããeãÏ(n)ãšäºãã«çŽ ïŒã€ãŸããæå€§å ¬çŽæ°ã1ïŒã§ãããããªå ¬éææ°ïŒeïŒãéžæãããŸããå ¬ééµã¯(n, e)ã§æ§æãããŸãã
- ç§å¯éµã®äœæïŒ (d * e) mod Ï(n) = 1 ãšãªããããªç§å¯ææ°ïŒdïŒãèšç®ãããŸããç§å¯éµã¯(n, d)ã§æ§æãããŸãã
- æå·åïŒ ã¡ãã»ãŒãžïŒMïŒãæå·åããããã«ãéä¿¡è ã¯åä¿¡è ã®å ¬ééµïŒn, eïŒã䜿çšããæå·æïŒCïŒã C = Me mod nãšããŠèšç®ããŸãã
- 埩å·ïŒ æå·æïŒCïŒã埩å·ããããã«ãåä¿¡è ã¯èªèº«ã®ç§å¯éµïŒn, dïŒã䜿çšããå ã®ã¡ãã»ãŒãžïŒMïŒã M = Cd mod nãšããŠèšç®ããŸãã
RSAã®é·æ
- å®å šãªéµäº€æïŒ RSAã¯ãå®å šã§ãªãéä¿¡è·¯ãä»ããŠå®å šãªéµäº€æãå¯èœã«ããŸããå ¬ééµã¯ãç§å¯éµãå±éºã«ãããããšãªãèªç±ã«é åžã§ããŸãã
- é»å眲åïŒ RSAã¯ãèªèšŒãšåŠèªé²æ¢ãæäŸããé»å眲åã®äœæã«äœ¿çšã§ããŸããéä¿¡è ã¯èªèº«ã®ç§å¯éµã§ã¡ãã»ãŒãžã«çœ²åããåä¿¡è ã¯éä¿¡è ã®å ¬ééµã§çœ²åãæ€èšŒããŸãã
- äºåå ±æç§å¯ãäžèŠïŒ å ±é鵿å·ãšã¯ç°ãªããRSAã¯éä¿¡è ãšåä¿¡è ã®éã§äºåã«å ±æãããç§å¯ãå¿ èŠãšããŸããã
RSAã®çæ
- é床ãé ãïŒ RSAã¯ãç¹ã«å€§éã®ããŒã¿ãæå·åããå ŽåãAESã®ãããªå ±é鵿å·ã¢ã«ãŽãªãºã ãããå€§å¹ ã«äœéã§ãã
- ç¹å®ã®æ»æã«å¯ŸããŠèåŒ±ïŒ RSAã¯ãæ£ããå®è£ ãããŠããªãå Žåãã³ã¢ã³ã¢ãžã¥ã©ã¹æ»æãªã©ã®ç¹å®ã®æ»æã«å¯ŸããŠè匱ã«ãªãå¯èœæ§ããããŸãã
- éµé·ãéèŠïŒ 匷åãªRSAæå·åã«ã¯ã倧ããªéµé·ïŒäŸïŒ2048ããããŸãã¯4096ãããïŒãå¿ èŠã§ããããããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
RSAã®ãŠãŒã¹ã±ãŒã¹
- å®å šãªéµäº€æïŒ TLS/SSLã®ãããªãããã³ã«ã§ãå ±ééµãå®å šã«äº€æããããã«äœ¿çšãããŸãã
- ããžã¿ã«èšŒææžïŒ ãŠã§ããµã€ãããœãããŠã§ã¢ã®ä¿¡é Œæ§ãæ€èšŒããããã«äœ¿çšãããŸãã
- ã¡ãŒã«ã®æå·åïŒ PGPïŒPretty Good PrivacyïŒãS/MIMEïŒSecure/Multipurpose Internet Mail ExtensionsïŒã§ãã¡ãŒã«ã¡ãã»ãŒãžãæå·åããããã«äœ¿çšãããŸãã
- VPNïŒ VPNïŒä»®æ³ãã©ã€ããŒããããã¯ãŒã¯ïŒæ¥ç¶ã«ãããåæã®éµäº€æã«äœ¿çšãããããšããããŸãã
- æå·éè²šïŒ äžéšã®æå·é貚ã®å®è£ ã§ããã©ã³ã¶ã¯ã·ã§ã³ã®çœ²åã«äœ¿çšãããŸãã
äŸïŒ ã°ããŒãã«äŒæ¥ãSecureGlobalããããã¥ãŒãšãŒã¯ãšæ±äº¬ã®ãªãã£ã¹éã§æ©å¯æ§ã®é«ã財åããŒã¿ãå®å šã«éä¿¡ããå¿ èŠããããšããŸãã圌ãã¯RSAã䜿çšããŠAESæå·åçšã®ç§å¯éµã亀æããŸãããã¥ãŒãšãŒã¯ãªãã£ã¹ã¯AESéµãæ±äº¬ãªãã£ã¹ã®å ¬éRSAéµã§æå·åããŠéä¿¡ããŸããæ±äº¬ãªãã£ã¹ã¯èªèº«ã®ç§å¯RSAéµã§AESéµã埩å·ãããã以éããã¹ãŠã®è²¡åããŒã¿ã¯ãã®å ±æéµã䜿çšããŠAESã§æå·åãããŸããããã«ãããæ±äº¬ãªãã£ã¹ã®ã¿ãããŒã¿ãèªã¿åãããšãã§ããããšãéµäº€æãååãããŠããçèŽè ã¯æ±äº¬ãªãã£ã¹ã®ç§å¯RSAéµãªãã§ã¯AESéµã埩å·ã§ããŸããã
AESïŒå ±é鵿å·ã®è§£èª¬
AESã®ä»çµã¿
AESã¯ããŒã¿ããããã¯åäœã§æå·åããå ±é鵿å·ã¢ã«ãŽãªãºã ã§ãã128ãããã®ããŒã¿ãããã¯ãåŠçãã128ã192ããŸãã¯256ãããã®éµé·ã䜿çšããŸããæå·åããã»ã¹ã«ã¯ã以äžãå«ãæ°ã©ãŠã³ãã®å€æåŠçãå«ãŸããŸãã
- SubBytesïŒ ç¶æ é åã®åãã€ããæå衚ïŒS-boxïŒã®å¯Ÿå¿ãããã€ãã«çœ®ãæãããã€ã眮æã¹ãããã
- ShiftRowsïŒ ç¶æ é åã®åè¡ã®ãã€ããå·¡åã·ããããè¡ã·ããã¹ãããã
- MixColumnsïŒ ç¶æ é åã®ååã«å¯ŸããŠè¡åä¹ç®ãå®è¡ããåæ··åã¹ãããã
- AddRoundKeyïŒ ç¶æ é åãšãäž»æå·éµããæŽŸçããã©ãŠã³ãéµãšãXORããéµå ç®ã¹ãããã
ã©ãŠã³ãæ°ã¯éµé·ã«äŸåããŸãïŒ128ãããéµã§ã¯10ã©ãŠã³ãã192ãããéµã§ã¯12ã©ãŠã³ãã256ãããéµã§ã¯14ã©ãŠã³ãã§ãã
AESã®é·æ
- é«éïŒ AESã¯RSAã®ãããªå ¬é鵿å·ã¢ã«ãŽãªãºã ãããå€§å¹ ã«é«éã§ããã倧éã®ããŒã¿ã®æå·åã«é©ããŠããŸãã
- 匷åãªã»ãã¥ãªãã£ïŒ AESã¯éåžžã«å®å šãªæå·åã¢ã«ãŽãªãºã ãšèŠãªãããŠãããç±³åœæ¿åºã«ãã£ãŠæšæºãšããŠæ¡çšãããŠããŸãã
- ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ïŒ å€ãã®ææ°ããã»ããµã«ã¯AESæå·åã®ããã®ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãçµã¿èŸŒãŸããŠãããããã©ãŒãã³ã¹ãããã«åäžãããŸãã
AESã®çæ
- éµé éïŒ AESã¯éä¿¡è ãšåä¿¡è ã®éã§å ±ééµãé éããããã®å®å šãªæ¹æ³ãå¿ èŠãšããŸããããã¯äžéšã®ã·ããªãªã§ã¯èª²é¡ãšãªãããšããããŸãã
- ç·åœããæ»æã«å¯ŸããŠèåŒ±ïŒ AESã¯äžè¬çã«å®å šãšèŠãªãããŠããŸãããçè«çã«ã¯ãç¹ã«çãéµé·ã®å Žåãç·åœããæ»æã«å¯ŸããŠè匱ã§ããããããååã«å€§ããªéµé·ïŒäŸïŒ256ãããïŒã䜿çšããã°ãç·åœããæ»æã®èšç®ã³ã¹ãã¯æ³å€ãªãã®ã«ãªããŸãã
AESã®ãŠãŒã¹ã±ãŒã¹
- ä¿åããŒã¿ã®æå·åïŒ ããŒããã©ã€ããããŒã¿ããŒã¹ããã®ä»ã®ã¹ãã¬ãŒãžã¡ãã£ã¢ã«ä¿åãããŠããããŒã¿ãæå·åããããã«äœ¿çšãããŸãã
- ãã¡ã€ã«ã®æå·åïŒ åã ã®ãã¡ã€ã«ããã©ã«ããæå·åããããã«äœ¿çšãããŸãã
- ãããã¯ãŒã¯éä¿¡ïŒ TLS/SSLãIPsecã®ãããªãããã³ã«ã§ããããã¯ãŒã¯ãã©ãã£ãã¯ãæå·åããããã«äœ¿çšãããŸãã
- VPNïŒ VPNæ¥ç¶ãä»ããŠéä¿¡ãããããŒã¿ãæå·åããããã«äœ¿çšãããŸãã
- ã¢ãã€ã«ããã€ã¹ã®ã»ãã¥ãªãã£ïŒ ã¹ããŒããã©ã³ãã¿ãã¬ããã«ä¿åãããŠããããŒã¿ãæå·åããããã«äœ¿çšãããŸãã
- ã¯ã©ãŠãã¹ãã¬ãŒãžïŒ ã¯ã©ãŠãã¹ãã¬ãŒãžãããã€ããŒã«ãã£ãŠããµãŒããŒã«ä¿åãããããŒã¿ãæå·åããããã«äœ¿çšãããŸãã
äŸïŒ å€åœç±éè¡ãGlobalBankãã¯ãæ¯æ¥äœçŸäžãã®é¡§å®¢ååŒãä¿è·ããå¿ èŠããããŸãã圌ãã¯AES-256ã䜿çšããŠã転éäžããã³ä¿åäžã®ãã¹ãŠã®ååŒããŒã¿ãæå·åããŸããããã«ãããããšãããŒã¿ããŒã¹ã䟵害ããããããããã¯ãŒã¯ãã©ãã£ãã¯ãååããããããŠããååŒããŒã¿ã¯AESéµããªããã°èªã¿åãäžå¯èœãªãŸãŸã§ãããã®éè¡ã¯ãããŒããŠã§ã¢ã»ãã¥ãªãã£ã¢ãžã¥ãŒã«ïŒHSMïŒã䜿çšããŠAESéµãå®å šã«ç®¡çã»ä¿è·ãããããªãã»ãã¥ãªãã£å±€ã远å ããŠããŸãã
RSA察AESïŒäž»ãªéã
以äžã¯ãRSAãšAESã®äž»ãªéãããŸãšãã衚ã§ãã
| ç¹åŸŽ | RSA | AES |
|---|---|---|
| æå·åã¿ã€ã | å ¬ééµïŒéå¯Ÿç§°ïŒ | å ±ééµïŒå¯Ÿç§°ïŒ |
| éµã®ã¿ã€ã | å ¬ééµãšç§å¯éµ | åäžã®å ±æéµ |
| é床 | äœé | é«é |
| éµäº€æ | å®å šãªéµäº€æ | å®å šãªéµé éãå¿ èŠ |
| äž»ãªãŠãŒã¹ã±ãŒã¹ | éµäº€æãé»å眲å | ããŒã¿æå·å |
| ã»ãã¥ãªãã£äžã®èæ ®äºé | æ£ããå®è£ ãããŠããªãå Žåãäžéšã®æ»æã«è匱ãéµé·ãéèŠ | éµé éãéèŠãçè«çã«ã¯ç·åœããæ»æã«è匱ïŒå€§ããªéµé·ã§ç·©åïŒ |
RSAãšAESã®çµã¿åããïŒãã€ããªããæå·
å€ãã®å®éã®ã·ããªãªã§ã¯ãRSAãšAESã¯ãã€ããªããæå·æ¹åŒã§äžç·ã«äœ¿çšãããŸãããã®ã¢ãããŒãã¯ãäž¡æ¹ã®ã¢ã«ãŽãªãºã ã®é·æã掻çšããŸãã
ãã€ããªããæå·ã®äžè¬çãªä»çµã¿ã¯æ¬¡ã®ãšããã§ãã
- ã©ã³ãã ãªå ±ééµïŒäŸïŒAESéµïŒãçæãããŸãã
- å ±ééµã¯ãåä¿¡è ã®å ¬éRSAéµã䜿çšããŠæå·åãããŸãã
- æå·åãããå ±ééµãšããã®å ±ééµã§æå·åãããããŒã¿ãåä¿¡è ã«éä¿¡ãããŸãã
- åä¿¡è ã¯ãèªèº«ã®ç§å¯RSAéµã䜿çšããŠå ±ééµã埩å·ããŸãã
- åä¿¡è ã¯ã埩å·ãããå ±ééµã䜿çšããŠããŒã¿ã埩å·ããŸãã
ãã®ã¢ãããŒãã¯ãéµäº€æã®ããã®RSAã®ã»ãã¥ãªãã£ãšãããŒã¿æå·åã®ããã®AESã®é床ãæäŸããŸããããã¯ãTLS/SSLã®ãããªå®å šãªéä¿¡ãããã³ã«ã§äœ¿çšãããæãäžè¬çãªæ¹æ³ã§ãã
é©åãªã¢ã«ãŽãªãºã ã®éžæ
RSAãšAESã®ã©ã¡ããéžæãããã¯ãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãšã»ãã¥ãªãã£èŠä»¶ã«äŸåããŸãã
- RSAã䜿çšããå ŽåïŒ å®å šãªéµäº€æãé»å眲åãå¿ èŠã§ãããã©ãŒãã³ã¹ãæåªå äºé ã§ã¯ãªãå Žåã
- AESã䜿çšããå ŽåïŒ å€§éã®ããŒã¿ãè¿ éã«æå·åããå¿ èŠããããå ±ééµãé åžããããã®å®å šãªæ¹æ³ãããå Žåã
- ãã€ããªããæå·ã䜿çšããå ŽåïŒ å®å šãªéµäº€æãšé«éãªããŒã¿æå·åã®äž¡æ¹ãå¿ èŠãªå Žåã
ã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹
éžæããæå·åã¢ã«ãŽãªãºã ã«é¢ããããã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšãéèŠã§ãã
- 匷åãªéµã䜿çšããïŒ ååã«å€§ããªéµé·ïŒäŸïŒ2048ããããŸãã¯4096ãããã®RSAéµã128ãããã192ãããããŸãã¯256ãããã®AESéµïŒãéžæããŸãã
- éµãå®å šã«ç®¡çããïŒ ç§å¯éµãšå ±ééµãäžæ£ãªã¢ã¯ã»ã¹ããä¿è·ããŸããéµã®ä¿ç®¡ã«ã¯ããŒããŠã§ã¢ã»ãã¥ãªãã£ã¢ãžã¥ãŒã«ïŒHSMïŒã®äœ¿çšãæ€èšããŠãã ããã
- æå·åãæ£ããå®è£ ããïŒ è匱æ§ãé¿ããããã«ãæå·åã¢ã«ãŽãªãºã ãå®è£ ããããã®ãã¹ããã©ã¯ãã£ã¹ã«åŸããŸãã
- ãœãããŠã§ã¢ãææ°ã®ç¶æ ã«ä¿ã€ïŒ ãœãããŠã§ã¢ãšã©ã€ãã©ãªã宿çã«æŽæ°ããŠãã»ãã¥ãªãã£ã®è匱æ§ã«ããããé©çšããŸãã
- æå·è«çã«å®å šãªä¹±æ°çæåšïŒCSPRNGïŒã䜿çšããïŒ éµããã®ä»ã®ã©ã³ãã ãªå€ãçæããããã«äœ¿çšããŸãã
- èéåèšç®æ©æå·ãæ€èšããïŒ éåã³ã³ãã¥ãŒã¿ã®éçºã«äŒŽããæ¢åã®æå·åã¢ã«ãŽãªãºã ãè匱ã«ãªãå¯èœæ§ããããŸããéåã³ã³ãã¥ãŒã¿ããã®æ»æã«èæ§ã®ããèéåèšç®æ©æå·ã¢ã«ãŽãªãºã ã調æ»ããŠãã ããã
æå·åã®æªæ¥
æå·æè¡ã®åéã¯çµ¶ããé²åããŠããŸããæ°ããªè åšã«å¯Ÿå¿ããã»ãã¥ãªãã£ãåäžãããããã«ãæ°ããã¢ã«ãŽãªãºã ãæè¡ãéçºãããŠããŸããèéåèšç®æ©æå·ã¯ãéåã³ã³ãã¥ãŒã¿ããã®æ»æã«èæ§ã®ããæå·ã¢ã«ãŽãªãºã ã®éçºãç®æããŠãããããç¹ã«éèŠãªç ç©¶åéã§ãã
æè¡ã鲿©ããã«ã€ããŠãããŒã¿ã確å®ã«å®å šã«ä¿ã€ããã«ã¯ãæå·åãšãµã€ããŒã»ãã¥ãªãã£ã®ææ°ååã«ã€ããŠåžžã«æ å ±ãåŸãããšãäžå¯æ¬ ã§ãã
çµè«
RSAãšAESã¯ã仿¥ã®ããžã¿ã«äžçã§ããŒã¿ãä¿è·ããäžã§éèŠãªåœ¹å²ãæãã2ã€ã®åºæ¬çãªæå·åã¢ã«ãŽãªãºã ã§ããRSAãå®å šãªéµäº€æãšé»å眲åã«åªããŠããã®ã«å¯ŸããAESã¯ãã®é床ãšããŒã¿æå·åã®å¹çæ§ã§ç¥ãããŠããŸããåã¢ã«ãŽãªãºã ã®é·æãšçæãçè§£ããã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãæ©å¯æ å ±ãäžæ£ã¢ã¯ã»ã¹ãã广çã«ä¿è·ããããšãã§ããŸããRSAãšAESãçµã¿åããããã€ããªããæå·æ¹åŒã¯ãå€ãã®å®éã®ã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠãã»ãã¥ãªãã£ãšããã©ãŒãã³ã¹ã®äž¡æ¹ãæäŸããå ç¢ãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã
ãã®ã¬ã€ãã¯ãRSAãšAESãçè§£ããããã®åŒ·åºãªåºç€ãæäŸããŸãã匷åãªã»ãã¥ãªãã£äœå¶ãç¶æããããã«ãçµ¶ããå€åãããµã€ããŒã»ãã¥ãªãã£ã®ç¶æ³ã«ã€ããŠåŠã³ç¶ããé©å¿ããŠãã ããã
åèæç®
- NIST Special Publication 800-57 - Recommendation for Key Management
- RFC 5246 - The Transport Layer Security (TLS) Protocol Version 1.2
- Cryptography Engineering by Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno