Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Random number, PRNG

Random number, PRNG

現代暗号理論の輪講講義用のスライド.
乱数,擬似乱数生成器,擬似乱数生成器への攻撃について.
教科書:暗号技術入門 第3版(著:結城 浩)

29d1647494c7eab70c334c0d309c5ca6?s=128

Kensuke Kosaka

December 12, 2015
Tweet

Transcript

  1. ϩόͷৣલ԰ʙ ٖࣅཚ਺ੜ੒ثʹର͢Δ߈ܸ 15M7112 ∁ࡔ ݡ༎

  2. ϩόͷৣલ԰ ৣલ͕͍͘Βৎ෉Ͱ΋ɼ࢖ΘΕ͍ͯΔ伴͕༧ଌՄೳ Ͱ͋Ε͹ഁΒΕͯ͠·͏ 伴͸༧ଌෆՄೳͰͳ͚Ε͹ͳΒͳ͍

  3. ཚ਺ͷ໾ׂ 伴ͷੜ੒ 伴ϖΞͷੜ੒ ॳظԽϕΫτϧʢIVʣͷੜ੒ ϊϯεͷੜ੒ ιϧτͷੜ੒ 伴ΛݟഁΒΕͳ͍ͨΊʹཚ਺Λ࢖͏

  4. ཚ਺ͷੑ࣭ ແ࡞ҝੑ ౷ܭతͳภΓ͕ͳ͍ ༧ଌෆՄೳੑ աڈͷ਺ྻ͔Β࣍ͷ਺Λ༧ଌͰ͖ͳ͍ ࠶ݱෆՄೳੑ ಉ͡਺ྻΛ࠶ݱͰ͖ͳ͍ ҉߸ٕज़ʹ͓͚Δཚ਺͸ɼগͳ͘ͱ΋༧ଌෆՄೳੑΛ࣋ͭඞཁ͕͋Δ

  5. ແ࡞ҝੑ ٖࣅཚ਺ྻͷ౷ܭతͳੑ࣭Λௐ΂ͯภΓ͕ͳ͍ ཚ਺ͷݕఆʹΑͬͯௐ΂Δ ҉߸ٕज़ʹ࢖͏ཚ਺͸ɼภΓͷͳ͚ͩ͞Ͱͳ͘ݟഁ ΒΕͳ͞ʢ=༧ଌෆՄೳੑʣΛඋ͍͑ͯΔඞཁ͕͋Δ

  6. ༧ଌෆՄೳੑ աڈʹग़ྗٖͨ͠ࣅཚ਺ྻΛ߈ܸऀʹ஌ΒΕͯ΋ɼ ࣍ʹग़ྗ͢Δٖࣅཚ਺Λ߈ܸऀ͸ݴ͍౰ͯΔ͜ͱ͸ Ͱ͖ͳ͍ ٖࣅཚ਺ੜ੒ثͷΞϧΰϦζϜ͸ެ։͞Ε͍ͯΔ͕ɼ ٖࣅཚ਺ͷछ͸ൿີɼͱ͍͏ঢ়ଶ աڈͷٖࣅཚ਺ྻ͕߈ܸऀʹ஌ΒΕͯ΋ɼ࣍ʹग़ྗ ͢Δٖࣅཚ਺͸༧ଌͰ͖ͳ͍

  7. ༧ଌෆՄೳੑͷ࣮ݱํ๏ ଞͷ҉߸ٕज़Λ࢖ͬͯ༧ଌෆՄೳੑΛ࣮ݱ͢Δ Ұํ޲ੑϋογϡؔ਺ͷҰํ޲ੑ ҉߸ͷػີੑ

  8. ࠶ݱෆՄೳੑ ͋Δཚ਺ྻͱಉ͡਺ྻΛ࠶ݱ͢Δ͜ͱ͸Ͱ͖ͳ͍ ιϑτ΢ΣΞ͚ͩͰ͸͜ͷੑ࣭Λ࣮ݱͰ͖ͳ͍ ίϯϐϡʔλ͕༗ݶͷ಺෦ঢ়ଶ͔࣋ͯͣ͠ɼιϑτ ΢ΣΞ͕ಉ͡಺෦ঢ়ଶ͔Βඞͣಉ͡਺Λੜ੒͢Δ ιϑτ΢ΣΞ͕ੜ੒͢Δ਺ྻ͸ৗʹ༗ݶͷपظΛ࣋ ͭ

  9. ࠶ݱෆՄೳੑͷ࣮ݱ ࠶ݱෆՄೳͳ෺ཧݱ৅͔Β৘ใΛಘΔඞཁ͕͋Δ पΓͷԹ౓΍ԻͷมԽɼΩʔϘʔυͷଧ伴ִؒ… ೤ࡶԻΛ΋ͱʹཚ਺ྻΛੜ੒͢Δϋʔυ΢ΣΞ ࠶ݱෆՄೳੑΛ࣋ͭɼRDSEED ༧ଌෆՄೳੑΛ࣋ͭɼRDRAND

  10. ٖࣅཚ਺ੜ੒ث

  11. ٖࣅཚ਺ੜ੒ث ཚ਺ੜ੒ث ༧ଌ΍࠶ݱ͕ෆՄೳͳࣗવݱ৅ΛηϯαͰݕ஌͠ɼ݁Ռ Λ΋ͱʹཚ਺ྻΛੜ੒͢Δ ٖࣅཚ਺ੜ੒ث ཚ਺Λੜ੒͢Διϑτ΢ΣΞ ιϑτ΢ΣΞ͚ͩͰ͸࠶ݱෆՄೳੑΛ࣋ͭཚ਺Λੜ੒Ͱ ͖ͳ͍ͨΊɼ“ٖࣅ”ཚ਺ੜ੒ثͱ͍͏

  12. ٖࣅཚ਺ੜ੒ثͷߏ଄ ٖࣅཚ਺ੜ੒ث͸಺෦ ঢ়ଶΛ࣋ͪɼ֎෦͔Β ༩͑ΒΕͨछΛ΋ͱʹ ٖࣅཚ਺ྻΛੜ੒͢Δ

  13. ٖࣅཚ਺ੜ੒ثͷ಺෦ঢ়ଶ ٖࣅཚ਺ੜ੒ث͕؅ཧ͍ͯ͠ΔϝϞϦͷ஋ ϝϞϦͷ஋ʢ಺෦ঢ়ଶʣΛݩʹܭࢉΛ͠ɼ͜ͷ݁ՌΛٖࣅཚ਺ͱͯ͠ ग़ྗ ͦͷޙɼ಺෦ঢ়ଶΛมԽͤ͞Δ ٖࣅཚ਺ੜ੒ͷΞϧΰϦζϜ ಺෦ঢ়ଶ͔Βٖࣅཚ਺Λܭࢉ͢Δํ๏ͱ಺෦ঢ়ଶΛมԽͤ͞Δํ๏ͷ 2ͭΛ߹Θͤͨ΋ͷ ಺෦ঢ়ଶʹΑͬͯ࣍ͷٖࣅཚ਺͕ఆ·ΔͨΊɼ಺෦ঢ়ଶ͸ൿಗ͢Δ

  14. ٖࣅཚ਺ੜ੒ثͷछ ٖࣅཚ਺ੜ੒ثͷ಺෦ঢ়ଶΛॳظԽ͢Δ໨తͰ࢖༻ ϥϯμϜͳϏοτྻɼൿಗ͕ඞਢ छʹ༧ଌՄೳͳ஋Λ࢖ͬͯ͸ͳΒͳ͍

  15. ҉߸ͷ伴ͱٖࣅཚ਺ͷछ

  16. ۩ମతͳٖࣅཚ਺ੜ੒ث

  17. ٖࣅཚ਺ੜ੒ثͷछྨ σλϥϝͳํ๏ ઢܗ߹ಉ๏ Ұํ޲ϋογϡؔ਺Λ࢖͏ํ๏ ҉߸Λ࢖͏ํ๏ ANSI X9.17

  18. σλϥϝͳํ๏ ϓϩάϥϚ͢ΒৄࡉΛཧղͰ͖ͳ͍Α͏ͳɼσλϥϝʹෳࡶʹͳͬͯ ͍ΔΞϧΰϦζϜΛ࢖͏ํ๏ ୯ʹෳࡶʹ͚ͨͩ͠ͷΞϧΰϦζϜΛ҉߸ٕज़Ͱ࢖ͬͯ͸͍͚ͳ͍ ෳࡶʹ͚ͨͩ͠ͷΞϧΰϦζϜʹΑΔ਺ྻ͸ɼଟ͘ͷ৔߹
 ୹͍पظʹؕΔ ༧ଌෆՄೳੑΛ࣋ͨͤΒΕͳ͍ ϓϩάϥϚ͕ৄࡉΛཧղͰ͖ͳ͍Α͏ͳΞϧΰϦζϜͰ͸ɼ
 ੜ੒ͨ͠਺ྻ͕༧ଌෆՄೳੑΛ͔࣋ͭͲ͏͔ධՁͰ͖ͳ͍

  19. ઢܗ߹ಉ๏ ٖࣅཚ਺R0 ɼR1 ɼR2 ɼ…Λ࡞Δ ٖࣅཚ਺ͷछ͔Β࣍ͷܭࢉࣜͰ࠷ॳͷٖࣅཚ਺Λ࡞Δ R0 = ( A

    × छ + C ) mod M AɼCɼM͸ఆ਺ɼA < MɼC < M ࣍ʹɼR0 ͔Βಉ͡ܭࢉࣜͰR1 Λ࡞Δ R1 = ( A × R0 + C ) mod M ͜ΕΛ܁Γฦ͢
  20. ઢܗ߹ಉ๏ ݱࡏͷٖࣅཚ਺ͷ஋ΛAഒͯ͠CΛՃ͑ɼMͰׂͬͨ ༨ΓΛ࣍ͷٖࣅཚ਺ʹ͢Δ

  21. ઢܗ߹ಉ๏ AɼCɼMͷ஋ʹΑͬͯ͸पظੑ͕୹͘ͳΔ AɼCɼMͷ஋Λ஫ҙਂ͘બ୒͢Ε͹ɼແ࡞ҝੑΛٖ࣋ͭࣅཚ ਺ྻΛ؆୯ʹ࡞ΕΔ ༧ଌෆՄೳੑ͸࣋ͨͳ͍ͷͰɼ҉߸ٕज़ʹ࢖ͬͯ͸͍͚ͳ͍ AɼCɼM͕ط஌ͷ৔߹ɼ͋Δٖࣅཚ਺Rn ΛಘΒΕΕ͹Rn+1 Λ ܭࢉՄೳͰ͋Γɼ༧ଌ͕ՄೳͰ͋Δʢछ͸ෆඞཁʣ ઢܗ߹ಉ๏Ͱੜ੒͞Εͨ਺ྻ͔ΒɼAɼCɼMΛٯࢉՄೳ

  22. Ұํ޲ϋογϡؔ਺Λ
 ࢖͏ํ๏ Ұํ޲ϋογϡؔ਺Λ࢖ͬͯɼ༧ଌෆՄೳੑΛ࣋ͬ ٖͨࣅཚ਺ྻΛੜ੒͢Δٖࣅཚ਺ੜ੒ثΛ࡞ΕΔ

  23. Ұํ޲ϋογϡؔ਺Λ
 ࢖͏ํ๏ ߈ܸऀ͕͜ͷੜ੒ثʹΑͬͯաڈʹ࡞ΒΕٖͨࣅཚ਺ྻΛ஌ͬͨͱ Ծఆ ࣍ͷٖࣅཚ਺Λ༧ଌ͢ΔͨΊʹ͸ݱࡏͷΧ΢ϯλ஋Λ஌Δඞཁ ͕͋Δ աڈͷٖࣅཚ਺ྻ͸Ұํ޲ϋογϡؔ਺ͷϋογϡ஋ Χ΢ϯλ஋Λ஌ΔͨΊʹ͸Ұํ޲ϋογϡؔ਺ͷҰํ޲ੑΛഁ Δඞཁ͕͋ΔͨΊɼ༧ଌ͸͖ΘΊͯࠔ೉ Ұํ޲ϋογϡؔ਺ͷҰํ޲ੑ͕༧ଌෆՄೳੑΛࢧ͍͑ͯΔ

  24. ҉߸Λ࢖͏ํ๏ AESͷΑ͏ͳରশ҉߸΍RSAͷΑ͏ͳެ։伴҉߸Λ༻ ͍ͯɼ༧ଌෆՄೳੑΛٖ࣋ͭࣅཚ਺ੜ੒ث͕࡞ΕΔ

  25. ҉߸Λ࢖͏ํ๏ ߈ܸऀ͕͜ͷੜ੒ثʹΑͬͯաڈʹ࡞ΒΕٖͨࣅཚ਺ྻΛ஌ͬͨͱ Ծఆ ࣍ͷٖࣅཚ਺Λ༧ଌ͢ΔͨΊʹ͸ݱࡏͷΧ΢ϯλ஋Λ஌Δඞཁ ͕͋Δ աڈͷٖࣅཚ਺ྻ͸҉߸จ Χ΢ϯλ஋Λ஌ΔͨΊʹ͸҉߸Λղಡ͢Δ͜ͱʹͳΓɼ༧ଌ͸ ͖ΘΊͯࠔ೉ ҉߸ͷػີੑ͕༧ଌෆՄೳੑΛࢧ͍͑ͯΔ

  26. ANSI X9.17 ҉߸Λ࢖ٖͬͨࣅཚ਺ੜ੒ثͷɼΑΓ۩ମతͳߏ੒ ํ๏ ҉߸ιϑτ΢ΣΞPGPͰ࢖ΘΕ͍ͯΔ ग़ྗ͞ΕΔٖࣅཚ਺ྻ͔Β಺෦ঢ়ଶΛਪଌͰ͖ͳ͍ Α͏ʹɼ҉߸Λར༻͍ͯ͠Δ ٖࣅཚ਺ੜ੒ثͷ಺෦ঢ়ଶΛ҉߸͕क͍ͬͯΔ

  27. ͦͷଞͷΞϧΰϦζϜ ཚ਺ͱͯ͠༏Ε͍ͯΔΞϧΰϦζϜͰ͋ͬͯ΋ɼ༧ଌ ෆՄೳੑΛඋ͍͑ͯͳ͍΋ͷ͸҉߸΍ηΩϡϦςΟ ͷ༻్ʹ͸࢖͑ͳ͍ ϝϧηϯψɾπΠελɿηΩϡϦςΟ༻ʹ͸࢖͑ͳ ͍ े෼ͳ௕͞ͷཚ਺ྻΛ؍࡯͢Ε͹ɼཚ਺ྻΛ༧ଌ Մೳ

  28. ٖࣅཚ਺ੜ੒ثʹର͢Δ
 ߈ܸ

  29. ٖࣅཚ਺ੜ੒ثʹର͢Δ
 ߈ܸ छʹର͢Δ߈ܸ ϥϯμϜϓʔϧʹର͢Δ߈ܸ

  30. छʹର͢Δ߈ܸ ٖࣅཚ਺ͷ“छ”ͷॏཁੑ͸ɼ҉߸ͷ“伴”ʹඖఢ छ͕஌ΒΕͨΒɼٖࣅཚ਺ྻΛશͯ஌ΒΕΔ ࠶ݱෆՄೳੑΛ࣋ͭ“ਅͷཚ਺”Λछʹ͢Δ

  31. ϥϯμϜϓʔϧʹର͢Δ
 ߈ܸ ϥϯμϜϓʔϧͱ͍͏ϑΝΠϧʹϥϯμϜͳϏοτྻ Λ஝͓͑ͯ͘ ҉߸ιϑτ΢ΣΞ͕ٖࣅཚ਺ͷछΛඞཁͱ͢Δͱ ͖ʹɼ͔͜͜Βඞཁͳ͚ͩͷϏοτྻΛऔΓग़͠ ͯ࢖͏ ϥϯμϜϓʔϧͷ಺༰Λ஌ΒΕΔͱɼٖࣅཚ਺ͷछΛ ༧ଌ͞Εͯ͠·͏