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

Coin Locker - Time Operation

Coin Locker - Time Operation

現代暗号理論の輪講講義用のスライド.
公開鍵暗号・RSAを理解するための準備.
教科書:暗号技術入門 第3版(著:結城 浩)

29d1647494c7eab70c334c0d309c5ca6?s=128

Kensuke Kosaka

October 20, 2015
Tweet

Transcript

  1. ݱ୅҉߸ཧ࿦_ྠߨ ίΠϯϩοΧʔͷ࢖͍ํ ࣌ܭԋࢉ 15M7112 ∁ࡔ ݡ༎ 1

  2. ίΠϯϩοΧʔͷ࢖͍ํ 2

  3. ίΠϯϩοΧʔͷ࢖͍ํ • ϩοΧʔʹՙ෺ΛೖΕΔ • ίΠϯΛ౤ೖ͠ɼΩʔΛൈ͖औΔ 3

  4. ίΠϯͱΩʔͷ໾ׂ • ίΠϯɿϩοΧʔΛด͡ΔͨΊͷ伴 • ΩʔɿϩοΧʔΛ։͚ΔͨΊͷ伴 • ίΠϯ͕͋Ε͹୭Ͱ΋ϩοΧʔΛด͡ΒΕΔ͕ɼίΠ ϯͰ͸ϩοΧʔΛ։͚ΒΕͳ͍ • ։͚ΔͨΊʹ͸Ωʔ͕ඞཁ

    4
  5. 伴഑ૹ໰୊ • ରশ҉߸Ͱ͸҉߸Խ伴ͱ෮߸伴͕ಉҰ • ड৴ऀ͕෮߸͢Δҝʹ͸ɼ͜ͷ伴΋ૹΒͳ͍ͱ͍͚ͳ͍ • ௨৴Λ౪ௌ͞Εɼ෮߸͞ΕΔ • 伴ΛૹΒͳ͍ͱ͍͚ͳ͍ͷʹɼૹͬͯ͸͍͚ͳ͍ 5

  6. 伴഑ૹ໰୊ͷղܾࡦ • 伴ͷࣄલڞ༗ʹΑΔղܾ • 伴഑෍ηϯλʔʹΑΔղܾ • Diffie-Hellman伴ަ׵ • ެ։伴҉߸ʹΑΔղܾ 6

  7. 伴ͷࣄલڞ༗ʹΑΔղܾ • ࣄલʹ҆શͳํ๏Ͱ伴Λ౉͓ͯ͘͠ • Ͳ͏΍ͬͯ伴Λ҆શʹ౉͢ʁ • ΍ΓऔΓ͢Δਓ͕ଟ͘ͳΔͱɼͦΕͧΕͷਓʹରͯ͠ઐ ༻ͷ伴͕ඞཁ • ๲େͳྔͷ伴͕ඞཁʹͳΔՄೳੑ͕͋Δ

    7
  8. 伴഑෍ηϯλʔʹΑΔղܾ • 伴഑෍ηϯλʔͱͯ͠ػೳ͢ΔαʔόΛ༻ҙ • 伴഑෍ηϯλʔʹ҉߸௨৴Λߦ͍͍ͨશͯͷਓͦΕͧΕ ͷ伴Λొ࿥ 8

  9. 伴഑෍ηϯλʔΛ༻͍ͨ
 ҉߸௨৴ • ٖࣅཚ਺ੜ੒ثͰηογϣϯ伴Λ࡞੒ • σʔλϕʔε͔ΒૹΓखAͱड͚खBͷ伴ΛऔΓग़͢ • ͦΕͧΕͷ伴Ͱ҉߸Խͨ͠ηογϣϯ伴ΛɼͦΕͧΕͷ 伴ͷॴ༗ऀʹૹ৴ 9

  10. 伴഑෍ηϯλʔΛ༻͍ͨ
 ҉߸௨৴ • ҉߸Խ͞Εͨηογϣϯ伴͸ɼA΍Bͷ伴Ͱ҉߸Խ͞Εͯ ͍ΔͨΊɼͦΕͧΕ෮߸Ͱ͖Δ • ಘΒΕͨηογϣϯ伴Λ༻͍ͯ҉߸௨৴͢Δ • ௨৴ऴྃޙɼηογϣϯ伴Λ࡟আ͢Δ 10

  11. 伴഑෍ηϯλʔͷ໰୊఺ • ҉߸௨৴͢Δͨͼʹαʔό͕ॲཧΛߦ͏ • ར༻ऀ͕ଟ͘ͳΔ΄Ͳɼෛՙ͕૿େ͢Δ • ނো͢Ε͹ɼ҉߸௨৴Λར༻Ͱ͖ͳ͘ͳΔ • σʔλϕʔεΛΫϥοΫ͞ΕΔͱ… 11

  12. Diffie-Hellman伴ަ׵ʹΑΔղܾ • ҉߸௨৴Λߦ͍͍ͨAͱB͕ɼ͋Δ৘ใΛަ׵͢Δ • ͜ͷ৘ใ͸ɼ౪ௌ͞Εͯ΋ߏΘͳ͍ • AͱB͸ɼަ׵ͨ͠৘ใΛ΋ͱʹಉ͡伴Λ࡞Γग़ͤΔ • ౪ௌऀ͸ɼಉ͡伴Λ࡞Γग़ͤͳ͍ 12

  13. ެ։伴҉߸ʹΑΔղܾ • ҉߸Խ伴ͱ෮߸伴Λ෼͚Δ • ૹ৴ऀ͸҉߸Խ伴Λ༻͍ͯ҉߸Խ • ड৴ऀ͸෮߸伴Λ༻͍ͯ෮߸ • ౪ௌ͞ΕͯࠔΔͷ͸෮߸伴ͷΈ 13

  14. 伴഑ૹ໰୊ͷղܾ • ෮߸伴͸୭ʹ΋ݟͤͯ͸ͳΒͳ͍ʢൿີ伴ʣ • ҉߸Խ伴͸ެ։ͯ͠΋໰୊ແ͍ʢެ։伴ʣ • ެ։伴ͰϝοηʔδΛ҉߸Խͯ͠ૹ৴ͯ͠΋Β͏ • ड৴ͨ͠Βɼൿີ伴Ͱ෮߸͢Δ 14

  15. ެ։伴҉߸ͷྺ࢙ • ެ։伴҉߸ͷΞΠσΞΛൃදʢ1976೥ʣ • Merkle-HellmanφοϓαοΫ҉߸͕։ൃ͞ΕΔʢ1977೥ʣ • RSA͕ൃද͞ΕΔʢ1978೥ʣ • ݱࡏͷެ։伴҉߸ʹ͓͚Δɼࣄ্࣮ͷඪ४ •

    Merkle-HellmanφοϓαοΫ҉߸ʹ͍ͭͯɼAdi Shamir͕ ղಡํ๏Λൃݟʢ1982೥ʣ 15
  16. ެ։伴҉߸Λ༻͍ͨ
 ௨৴ͷྲྀΕ • B͸ɼެ։伴ͱൿີ伴ͷ伴ϖΞΛੜ੒͢Δ • B͸ɼެ։伴ΛAʹૹ৴͢Δ • A͸ɼBͷެ։伴Λ༻͍ͯϝοηʔδΛ҉߸Խ͠ɼ͜ΕΛ Bʹૹ৴͢Δ •

    B͸ɼൿີ伴ͰA͔ΒૹΒΕ͖ͯͨ҉߸จΛ෮߸͢Δ 16
  17. ެ։伴҉߸Ͱ΋ղܾͰ͖ͳ͍
 ໰୊ • ެ։伴҉߸ʹΑͬͯ҉߸ͷ伴഑ૹ໰୊͸ղܾͨ͠ • ೖखͨ͠ެ։伴͕ɼຊ౰ʹਖ਼͍͠΋ͷ͔෼͔Βͳ͍ • ެ։伴ͷೝূ໰୊ʢman-in-the-middle߈ܸʣ • ରশ҉߸ʹൺ΂ɼॲཧ଎౓͕஗͍

    17
  18. ࣌ܭԋࢉ 18

  19. ࣌ܭԋࢉͱ͸ • ӈਤͷΑ͏ͳ࣌ܭΛΠϝʔδ • ͜ͷ্ͰՃݮ৐আͱྦྷ৐ɼ
 ର਺Λԋࢉ͢Δ • 11 + 1͸ɼ0ʹͳΔ

    19
  20. Ճࢉ • ӈਤͷঢ়ଶ͔Β13Λ଍͢ͱɼ ݁Ռతʹ਑͸1Λࢦ͢ • (0 + 13) mod 12

    = 1 • modͱ͸ɼׂΓࢉΛͯ͠༨Γ ΛٻΊΔܭࢉΛද͢ • ී௨ʹ଍͠ࢉΛ͠ɼͦͷ݁Ռ Λ12Ͱׂͬͨ༨Γ͕਑ͷҐஔ ʹͳΔ 20
  21. ݮࢉ • ਑͸ӈճΓʹ͔͠ճΒͳ͍ • ͲͷΑ͏ʹͯ͠਑Λ0ʹ
 ࣋ͬͯߦ͔͘ • (3 + 9)

    mod 12 = 0 • ࣌ܭԋࢉʹ͓͍ͯɼ9͸–3ͱ
 ಉ͡໾ׂΛՌͨ͢ • ݮࢉΛՃࢉʹม׵͢Δ 21
  22. ৐ࢉ • ৐ࢉ͸ՃࢉΛ܁Γฦͨ͠΋ͷ • ӈਤͷঢ়ଶ͔Βɼ7×4Λߦ͏ • “7໨੝Γӈʹճ͢”ૢ࡞Λ
 4ճ܁Γฦ͢ • (0

    + 7 × 4) mod 12 = 4 22
  23. আࢉ • ৐ࢉͷٯԋࢉΛߟ͑Δ • (0 + 7 × A) mod

    12 = 1 • ͜Ε͸ɼmod12ͷੈքʹ͓͚ ΔҎԼͷࣜͱಉ͡ • 0 + A = 1 ÷ 7 • Ұͭ໨ͷࣜΑΓɼAʹ0͔Βॱ ʹ౰ͯ͸Ί͍ͯ͘ͱ7͕ٻ·Δ • mod12ͷੈքͰ͸ɼ1 ÷ 7ͷ౴ ͑͸7ʹͳΔ 23
  24. ٯ਺ • mod12ͷੈքʹ͓͚Δɼm × n = 1 • mͱn͸ɼٯ਺ͷؔ܎ʹ͋Δʢֻ͚Δͱ1ʹͳΔʣ •

    0͔Β11ͷதͰɼͲΜͳ਺ʹ΋ٯ਺͕͋Δͷ͔ʁ • RSAͰެ։伴ͱϖΞʹͳΔϓϥΠϕʔτ伴͕ଘࡏ͢Δ ͔Ͳ͏͔ͱ͍͏໰୊ʹͭͳ͕Δ 24
  25. ٯ਺ • mod12ͷੈքʹ͓͚Δٯ਺Λ࣋ͭ਺ • ͦͷ਺ͱ12ͷ࠷େެ໿਺͕1Ͱ͋Ε͹ɼٯ਺Λ࣋ͭ • 5 × 5 mod

    12 = 1 • 7 × 7 mod 12 = 1 • 12ͱޓ͍ʹૉͳ਺ʢ12ʹͱͬͯͷૉ਺ʣ 25
  26. ྦྷ৐ʢ΂͖৐ʣ • ྦྷ৐͸ɼ৐ࢉΛ܁Γฦͨ͠΋ͷ • 74 = 7 × 7 ×

    7 × 7 • ࣌ܭԋࢉͰ͸ɼྦྷ৐ͷܭࢉΛ͔ͯ͠ΒmodΛऔΕ͹͍͍ • 74 mod 12 = 7 × 7 × 7 × 7 mod 12
 = 2401 mod 12
 = 1 • ·ͨɼྦྷ৐ͷܭࢉ్தʹmodͷܭࢉΛڬΜͰ΋ྑ͍ • ܭࢉաఔͰѻ͏਺͕େ͖͘ͳΔͨΊʢRSAͷॲཧͰ΋࢖ΘΕΔʣ 26
  27. ର਺ • ྦྷ৐ͷٯԋࢉ • 7k = 49 • kʹ͸2͕ద౰Ͱ͋ΔͱΘ͔Δ •

    ී௨ͷ਺ֶͰ͸ɼ͞΄Ͳ೉͍͠ܭࢉͰ͸ͳ͍ 27
  28. ཭ࢄର਺ • ࣌ܭԋࢉʹ͓͚Δର਺ͷ͜ͱ • 7k mod 13 = 8 •

    0͔Β౰ͯ͸Ί͍ͯ͘ͱɼk͸9ͩͱ෼͔Δ 28
  29. ཭ࢄର਺໰୊ • y = gx mod p ʹ͓͍ͯ • x͔Βܭࢉ͢Δ͜ͱ͸؆୯͕ͩɼy͔ΒxΛٻΊΔͷ͸ɼ

    ޮ཰ͷ͍͍ΞϧΰϦζϜ͕஌ΒΕ͍ͯͳ͍ҝʹ೉͍͠ 29
  30. ࣌ܭͷ਑͔ΒɼRSA΁ • 74 mod 12ͱ͸ͭ·Γɼ7Λ4৐ͯ͠ɼ12Ͱׂͬͨ༨Γ • RSAͷ҉߸Խͱ෮߸Ͱɼ͜ͷܭࢉΛߦ͏ 30