ðŸ ãã®èšäºã®3ç§ãŸãšã
- 2000幎æ¥ã®é£é¡ïŒãç§å¯ã®éµãå®å šã«æž¡ããããšã¯ãã¹ãã€æ ç»ããªããã®åœããã®äœæ¥ã ã£ãã
- DHæ³ã®é©åœïŒ1976幎ïŒïŒçèŽãããŠã倧äžå€«ãªå ¬éåç·äžã§ãäºäººã ãã®ç§å¯ãæ°åŠçã«çã¿åºããéæ³ãèªçããã
- çŸä»£ã®æšæºïŒã¹ããæä»£ã«åãããŠè»œéåããããECDHEããTLS 1.3ã®å¿èéšãšããŠãä»ãã®ããŒãžã®éä¿¡ãå®ã£ãŠããã
- ãã®æè¡ã®å ã«ïŒã誰ã«ã管çãããªãéµããšããçºæ³ããåŸã®ãããã³ã€ã³ã®ææ³çåºç€ã«ãªã£ãã
ã€ã³ã¿ãŒããããå®å šã«äœ¿ãããã«æ¬ ãããªããæå·æè¡ãããã®äžã§ã極ããŠéèŠãªããŒãããéµã®å ±æãã§ãã
ð± ãªãéµã®ãããšãã¯é£ããã®ïŒïŒéµé éåé¡ã®ãžã¬ã³ã

ããããâéµã®ãããšãâãã©ãããŠãããªã«åé¡ã«ãªãã®ïŒ

çžæãšâå®å šã«âéµãå ±æããã£ãŠãå®ã¯å®å šãªãå ã å·¡ããã«ãªã£ãŠããŸããããªãã ã
å ±é鵿å·ã§ã¯ãéä¿¡è ãšåä¿¡è ãåãéµãäºåã«å ±æããŠããå¿ èŠããããŸãããããåŠè¡çã«ãéµé éåé¡ïŒKey Distribution ProblemïŒããšåŒã³ãŸãã
ð± éµé éåé¡ã®ãžã¬ã³ã
- æå·åãããéä¿¡ãããã«ã¯ãç§å¯ã®éµããäºåã«å ±æããå¿ èŠãããã
- ããããç§å¯ã®éµããå®å šã«éãã«ã¯ããã§ã«å®å šãªéä¿¡è·¯ãå¿ èŠã
- å®å šãªéä¿¡è·¯ããããªããæåããæå·éµãªã©éãå¿ èŠããªãââïŒ
ð 2000幎é誰ãè§£ããªãã£ããæŽå²ã®èŠåŽã
DHæ³ãšããéæ³ãç»å Žããåã人ã ã¯ãéµãå®å šã«æž¡ããã ãã®ããã«ãã¹ãã€æ ç»ã®ãããªåœããã®èŠåŽãããŠããŸããã
å€äº€æå·æžïŒã³ãŒãããã¯ïŒã®éæ¬
ç¬¬äžæ¬¡ã»ç¬¬äºæ¬¡äžçå€§æŠæä»£ãŸã§ãååœã®å€äº€å®ãè»ã¯ãã³ãŒãããã¯ããšåŒã°ããæå·åèšå·éã䜿ã£ãŠããŸããããããå®å šã«é åžããããã®èŠåŽã¯å£®å€§ã§ããïŒ
- å€äº€ããŒãïŒå€äº€å®ç¹æš©ã«ããè·ç©æ€æ»ãçŠæ¢ãããå€äº€çšãã°ãïŒéã§æéŠã«ã€ãªãããïŒã§ã³ãŒãããã¯ã鿬
- éããšæ²æ²¡ïŒè¹ã§ã®ã³ãŒãããã¯éæ¬æã«ãè¹ãæ»æããããå¿ ãæµ·ã«æ²ããã矩åã1914幎8æã«ãã€ãå·¡æŽèŠããã¯ããã«ã¯ãããã«ãæµ·ã§åº§ç€ãããã·ã¢æµ·è»ã溺æ»ãããã€ãæ°Žå µã®éºäœããã³ãŒãããã¯ãååããããã€ã®ãªã¹ã«å ±æããŸããã
- ã³ãŒãããã¯ã®å¯¿åœïŒæ¬ã奪ããããšå šãŠã®æå·ãè§£èªããããããæ°ã¶æããšã«å šäžçã®æ ç¹ã«æ°ããã³ãŒãããã¯ãé åžââèšå€§ãªã³ã¹ããšå±éºã䌎ããŸããã
OTPïŒã¯ã³ã¿ã€ã ãããïŒïŒå®å šãªç§å¿æ§ã ãææªã®éµé éåé¡
ã¯ã³ã¿ã€ã ãããã¯çè«çã«è§£èªäžå¯èœã§ãïŒ1949幎ã·ã£ãã³ã蚌æïŒããã ãçéã®ä¹±æ°éµãäºåã«å®å šã«æž¡ãå¿ èŠããããŸãââãéä¿¡ããããŒã¿ãšåãéã®éµãäºåã«ç©ççã«é éããããšããæ¬æ«è»¢åãªåé¡ãçããŸãã
â ïž OTPã®ç©¶æ¥µã®ççŸ
100GBã®æ©å¯æ åãéããã â 100GBã®ä¹±æ°éµãå¿ èŠ â ãã®100GBãå®å šã«çžæã«ææž¡ãããå¿ èŠããã â ããªãæåãã100GBã®æ åã®å ¥ã£ãããŒããã£ã¹ã¯ãææž¡ãããã°ãããªãïŒã
巿п代ãç±³ãœã®éŠè³éã®ãããã©ã€ã³ïŒ1963幎èšçœ®ïŒã«ã¯OTPã䜿ãããŠããŸãããå€äº€å®ãç©ççã«ããããææž¡ãã䜿ã£ãããŒãžã¯çŒåŽåŠåãããšããæç¶ããå¿ èŠã§ããã
n人éä¿¡ã§ã®éµã®ççºçå¢å
å ±é鵿å·ã§n人ãå šå¡ãã¢ã§éä¿¡ããã«ã¯ n(n-1)/2 åã®éµãå¿ èŠã§ãïŒ
- 2人ãªãïŒ1ã€ã®éµ
- 10人ãªãïŒ45ã€ã®éµ
- 100人ãªãïŒ4,950ã€ã®éµ
- 1å人ïŒã€ã³ã¿ãŒãããïŒãªãïŒçŽ5,000å åã®éµ ââ 管çäžå¯èœïŒ
éµé åžã»ã³ã¿ãŒïŒKDCïŒã¢ãããŒãã®éç
ä¿¡é Œã§ãã第äžè ãå šå¡ã®éµã管çãããéµé åžã»ã³ã¿ãŒãæ¹åŒã¯è»ãæ¿åºçµç¹ã§è©Šã¿ãããŸããããäžå€®éæš©ã®éçã«ã¶ã€ãããŸãã
- KDCãå šãŠã®éä¿¡ã埩å·ã§ããïŒãã©ã€ãã·ãŒãªãïŒ
- KDCãæ»æããããšå šãŠã®éä¿¡ãå±éºã«ïŒåäžé害ç¹ïŒ
- ãããããKDCã誰ã管çããã®ãïŒããšããä¿¡ä»»åé¡

ããããããåããŠäœ¿ãã·ã§ããã³ã°ãµã€ããAmazonãšéä¿¡ãããªããŠçµ¶å¯Ÿã«ç¡çã ãâŠâŠã

ããïŒãã®2000幎é誰ãè§£ããªãã£ããçµ¶æçãªç¶æ³ããããã£ãäžçºã®æ°åŠã®ã¢ã€ãã¢ã§ã²ã£ããè¿ããã®ããæ¬¡ã®DHæ³ãªãã ðŸ
ð 1976幎ã®å€§é©åœïŒDiffie-HellmanïŒDHïŒéµå ±ææ³
1976幎ããã€ãããã£ãŒã«ãã»ãã£ãã£ãŒãšããŒãã£ã³ã»ãã«ãã³ããå ¬éãããæ å ±ãããåãããã ãã§ããäºãã«å ±éã®ç§å¯ãçæã§ããããšããéæ³ã®ãããªæ°åŠçããªãã¯ãçºèŠããŸãããããããDiffie-HellmanïŒDHïŒéµå ±ææ³ãã§ãã
ã«ã©ãŒããã¯ã¹ïŒè²ã®æ··åïŒã§çè§£ããDHæ³
æ°åŒã®ä»£ããã«ãçµµã®å ·ã®è²ã®æ··åãã®æ¯å©ã䜿ããšããã®äžæè°ãªä»çµã¿ãçŽæçã«ããããŸãã
- ã¢ãªã¹ãšãããå ¬éã®å Žã§ãé»è²ããšããå ±éããŒã¹è²ã«åæããïŒçèŽãããŠãOKïŒã
- ã¢ãªã¹ã¯èªåã®ç§å¯è²ãéããæ··ããŠãé»ç·ããäœããããã«éãã
- ããã¯èªåã®ç§å¯è²ãèµ€ããæ··ããŠãæ©ããäœããã¢ãªã¹ã«éãã
- ã¢ãªã¹ã¯ãåãåã£ããæ©ãã«èªåã®ç§å¯è²ãéããæ··ãã â ãé»ïŒèµ€ïŒéãã®æ··åè²ã宿ã
- ããã¯ãåãåã£ããé»ç·ãã«èªåã®ç§å¯è²ãèµ€ããæ··ãã â ãé»ïŒéïŒèµ€ãã®æ··åè²ã宿ã
- çµæïŒã¢ãªã¹ãšããã®æå ã«ã¯ããŸã£ããåããç§å¯ã®æ··åè²ãã宿ïŒçèŽè ãåç·äžã®ãé»è²ããé»ç·ããæ©ããå šéšéããŠããç§å¯è²ãåé¢ã§ããªãããåãè²ã¯äœããŸããã
å®éã®æ°åŠïŒé¢æ£å¯Ÿæ°åé¡
DHæ³ã®å®éã®å®å šæ§ã¯ã颿£å¯Ÿæ°åé¡ã®å°é£æ§ïŒå·šå€§ãªçޝä¹ã®äœããèšç®ããã®ã¯ç°¡åã ããéç®ããã®ã¯çŸå®çãªæéã§ã¯äžå¯èœïŒãã«åºã¥ããŠããŸãã
ãå ¬éå€ã çŽ æ°p=23, åå§æ ¹g=5
ã¢ãªã¹ã®ç§å¯éµïŒa=6 â å ¬éå€ A = 5^6 mod 23 = 8
ããã®ç§å¯éµïŒb=15 â å ¬éå€ B = 5^15 mod 23 = 19
ã¢ãªã¹ã®èšç®ïŒ19^6 mod 23 = 2ïŒå ±ééµïŒ
ããã®èšç®ïŒ8^15 mod 23 = 2ïŒå ±ééµïŒ â èŠäºã«äžèŽïŒ
â»å®éã«ã¯çŽ æ°pã¯2048ããã以äžã®å·šå€§ãªæ°ã䜿ãããŸããã8ããa=6ãéç®ãããããšã¯çŸä»£ã®ã¹ãŒããŒã³ã³ãã¥ãŒã¿ã§ãå°é£ã§ãã
ð DHæ³ã®å¯äžã®åŒ±ç¹ãšãRSAæå·ãã®èªç
ãŸãã«éæ³ã®ãããªDHæ³ã§ãããå®ã¯ãäžéè æ»æïŒMan-in-the-middle attackïŒãã«åŒ±ããšããèŽåœçãªåŒ±ç¹ããããŸããã
ð äžéè æ»æïŒMITMïŒã®ææ
ã¢ãªã¹ãããã«ãé»ç·ããéã£ãã€ããããéäžã§æªæãã第äžè ïŒã€ãïŒã暪åãããã€ããäœã£ããåœã®é»ç·ããããã«éããŸããDHæ³ã«ã¯ãçžæãæ¬åœã«ãããªã®ãïŒãã蚌æãããèªèšŒæ©èœããåãã£ãŠããªããããã¢ãªã¹ã¯ã€ããšããããã€ããšéµãå ±æããŠããŸããå šéä¿¡ãã€ãã«çæãã«ãªããŸãã
ãçžæã®èº«å ãã©ã蚌æãããïŒãââãã®èª²é¡ãæ®ããDHæ³ã®è«æïŒ1976幎ïŒã¯äžçäžã«è¡æãäžããå€ãã®æ°åŠè ãç±çãããŸããã
ãããŠç¿å¹Žã®1977幎ããã®è«æã«è§Šçºããã3人ã®ç ç©¶è ïŒãªãã¹ããã·ã£ãã¢ãã¢ãã«ãã³ïŒããéµå ±æã ãã§ãªãã身å ã®èšŒæïŒããžã¿ã«çœ²åïŒããåæã«è¡ããæ±ºå®æãRSAæå·ïŒå ¬é鵿å·ïŒãçºæããããšã«ãªããŸãã
DHæ³ãåãæããéããçŸä»£ã€ã³ã¿ãŒãããã®åå°ãšãªãRSAæå·ãçã¿åºããã®ã§ãã
ðž çŸä»£ã®é²åïŒECDHãšããããã®éµå ±æ
DHæ³ãšRSAæå·ã®ç»å ŽããçŽåäžçŽãçŸåšã®ã€ã³ã¿ãŒãããïŒTLS 1.3ãªã©ïŒã§ã¯ãå€å žçãªDHæ³ã§ã¯ãªãæ¥åæ²ç·ãã£ãã£ãŒã»ãã«ãã³ïŒECDHïŒãäž»æµã§ãã
ð± ãªããæ¥åæ²ç·ïŒECDHïŒããå¿ èŠãªã®ãïŒ
å€å žçãªDHæ³ãRSAæå·ã¯ãå·šå€§ãªæ°ã®èšç®ããå¿ èŠã§ãéåžžã«éãåŠçã§ãããçŸä»£ã¯ããœã³ã³ã ãã§ãªããèšç®åã®äœãã¹ããŒããã©ã³ãIoTå®¶é»ãåžžã«æå·éä¿¡ãè¡ã£ãŠããŸããããããªãŒãç¡é§ã«æ¶è²»ãããäžç¬ã§å®å šã«éä¿¡ã確ç«ããããã«ã¯ãå§åçã«è»œããŠéµã®çããæ¥åæ²ç·ïŒECDHïŒãã®æè¡ãäžå¯æ¬ ã ã£ãã®ã§ãã
| æ¹åŒ | éµé·ïŒ2024幎å®å šæ°ŽæºïŒ | èšç®éã»é床 | çŸåšã®ç«ã¡äœçœ® |
|---|---|---|---|
| å€å žDHïŒæéäœïŒ | 2048ã4096ããã | èšç®ãéã | åŸã ã«ã¬ã¬ã·ãŒã·ã¹ãã ãž |
| ECDHïŒæ¥åæ²ç·ïŒ | 256ã384ããã | 軜ããŠè¶ é«é | â TLS 1.3ãªã©çŸä»£ã®æšæº |
📌 まとめ:DH法の誰生から現代のæ前ç·まで
- éµé éåé¡ã¯ããå®å šã«éµãéãã«ã¯å®å šãªéä¿¡è·¯ãå¿ èŠããšããæ°å幎æ¥ã®çµ¶æçãªãžã¬ã³ãã ã£ãã
- 1976幎ã«Diffie-HellmanïŒDHïŒéµå ±ææ³ãç»å Žãããéä¿¡è·¯ãçèŽãããŠããŠãå®å šã«éµãäœãåºããããšããæ°åŠçããžãã¯ã§ããã解決ããã
- DHæ³ã®åŒ±ç¹ïŒèªèšŒã®æ¬ åŠïŒãå æãããããç¿å¹ŽRSAæå·ãèªçããã
- çŸåšã¯ãã¹ããæä»£ã«åãããŠããçãé«éãªECDHïŒæ¥åæ²ç·DHïŒãçŸä»£ã€ã³ã¿ãŒãããã®æšæºãšããŠç§ãã¡ã®ç掻ãå®ã£ãŠããã
- 前方秘拹性(PFS):セッションごとに使い挘てéµ(ECDHE)を使い、å°æ¥の鵿ŒæŽ©から過去の通信を守る
- TLS 1.3:ECDHEをå¯一のéµ交換方式として損用。HKDFで用途別のè€数éµを安全にå°出
- Signalプロトコル(Double Ratchet):WhatsApp・Signalが損用するE2EEのæ前ç·。過去も未æ¥も守る二重の安全性
ð¡ DHæ³ãçãã ã誰ã«ã管çãããªãéµããšããææ³ã®å ã«âŠâŠ
éµé
éåé¡ããæ°åŠã ããã§è§£æ±ºããDHæ³ã®ææ³ã¯ãæå·è³ç£ïŒãããã³ã€ã³ïŒã®èªçã«ãæ·±ã圱é¿ããŠããŸãã
ð å§åйãµã€ãã§ãäžå€®ç®¡çäžèŠã®äŸ¡å€ã®äžçããèŠããŠã¿ã
ð DHæ³ãç¥ã£ãããªããžïŒæ¬¡ã®3ã€ã®ã¢ã¯ã·ã§ã³
- ã¢ã¯ã·ã§ã³1ïŒ ä»äœ¿ã£ãŠãããã©ãŠã¶ã®ã¢ãã¬ã¹ããŒã®ðããŒã¯ãã¯ãªãã¯ãããECDHEã§ä¿è·ãããŠãããããšã確èªããŠã¿ãã
- ã¢ã¯ã·ã§ã³2ïŒ LINEã®ãLetter SealingïŒECDHïŒããSignalã®Double RatchetãæãåºããªãããE2EEã¢ããªãæèããŠéžã¶ã
- ã¢ã¯ã·ã§ã³3ïŒ ã誰ã«ã管çãããªãéµããšããææ³ãã©ããžåãã£ãã®ããå§åйãµã€ãã§ãããã³ã€ã³ã®äžçãèŠããŠã¿ãã
ð¡ ããµããã®ã¢ããã€ã¹ðŸ
ããããå
ã¯æ°åŠãæè¡ã倧奜ããªäººåãã®è¶
ã»å°éèšäºã ãïŒãŸãã¯åºæ¬ã®STEP 5ãŸã§å®èµ°ããŠãããåŸã§æ»ã£ãŠããïŒããã¯ããŒã¯ããŠããïŒããšã匷ããããããããïŒ
ãã®èšäºïŒSTEP 7: éµå ±æã®èª²é¡ïŒã«é¢é£ãããããé«åºŠãªå°éæè¡ã«ã€ããŠè§£èª¬ããåèšäºã§ããèå³ãããã°ãã²é£ã³èŸŒãã§ã¿ãŠãã ããðŸ