暗号技術入門ゼミ 第 2 章前編/Cryptography Primer Semi s2-1

Edb0cd94a9eb173ba97ec48e9e586e77?s=47 y_k
February 06, 2019
41

暗号技術入門ゼミ 第 2 章前編/Cryptography Primer Semi s2-1

暗号技術入門 第3版 第 2 章 歴史上の暗号 -他人が読めない文章を作る- 前編

Edb0cd94a9eb173ba97ec48e9e586e77?s=128

y_k

February 06, 2019
Tweet

Transcript

  1. ҉߸ٕज़ೖ໳ ୈ 3 ൛ ୈ 2 ষ ྺ্࢙ͷ҉߸ -ଞਓ͕ಡΊͳ͍จষΛ࡞Δ- લฤ

    Koki Yamada February 6, 2019 Muroran-IT σʔλαΠΤϯεݚڀࣨ
  2. ͜ͷষͰֶͿ͜ͱ ྺ্࢙࣮ࡍʹ࢖ΘΕ͖ͯͨ༗໊ͳ҉߸: • γʔβʔ҉߸ • ୯Ұ׵ࣈ҉߸ • ΤχάϚ ҉߸ղಡ๏: •

    ϒϧʔτɾϑΥʔεɾΞλοΫ • ස౓෼ੳ 1
  3. ͜ͷষͰֶͿ͜ͱ ྺ্࢙࣮ࡍʹ࢖ΘΕ͖ͯͨ༗໊ͳ҉߸: • γʔβʔ҉߸ • ୯Ұ׵ࣈ҉߸ • ΤχάϚ ҉߸ղಡ๏: •

    ϒϧʔτɾϑΥʔεɾΞλοΫ • ස౓෼ੳ 1
  4. γʔβʔ҉߸

  5. γʔβʔ҉߸ͱ͸ • γʔβʔ҉߸ (caesar cipher) • δϡϦΞεɾγʔβʔʢϢϦ΢εɾΧΤαϧʣ͕࢖͍ͬͯͨ ͱݴΘΕΔ҉߸ • Ұఆͷจࣈ਺͚ͩʮͣΒ͢ʯ͜ͱʹΑͬͯ҉߸Խ

    B C D E F G H I % & ' ( ) จࣈͣΒ͢ 2
  6. ࢼͯ͠ΈΔ https://paiza.io/projects/tGZvu3P_NiusVSHU0cXKWw • encode('yamada') ˠ 'BDPDGD' • decode('BDPDGD') ˠ 'yamada'

    3
  7. Ͳ͏΍ͬͯղಡ͢Δʁ • γʔβʔ҉߸: ͣΒ͢෯Λಛఆ͢Ε͹ྑ͍ 4

  8. Ͳ͏΍ͬͯղಡ͢Δʁ • γʔβʔ҉߸: ͣΒ͢෯Λಛఆ͢Ε͹ྑ͍ ྫ: 'PXURUDQ' 4

  9. Ͳ͏΍ͬͯղಡ͢Δʁ • γʔβʔ҉߸: ͣΒ͢෯Λಛఆ͢Ε͹ྑ͍ ྫ: 'PXURUDQ' for i in range(1,

    27): print(i, decode('PXURUDQ', i)) 4
  10. Ͳ͏΍ͬͯղಡ͢Δʁ • γʔβʔ҉߸: ͣΒ͢෯Λಛఆ͢Ε͹ྑ͍ ྫ: 'PXURUDQ' 1. owtqtcp 2. nvspsbo

    3. muroran 4. ltqnqzm 5. kspmpyl 6. jroloxk 7. iqnknwj 8. hpmjmvi ˠ ʮϒϧʔτɾϑΥʔεɾΞλοΫʯ 4
  11. ϒϧʔτɾϑΥʔεɾΞλοΫ

  12. ϒϧʔτɾϑΥʔεɾΞλοΫͱ͸ • ϒϧʔτɾϑΥʔεɾΞλοΫ (brute-force attack) • ͢΂ͯͷݤͷީิΛࢼͯ͠ΈΔ΋ͷ • શ਺୳ࡧɼ૯౰ͨΓ๏ɼ͠ΒΈͭͿ͠๏ͳͲͱ΋ݺ͹ΕΔ 5

  13. ୯Ұ׵ࣈ҉߸

  14. ୯Ұ׵ࣈ҉߸ͱ͸ • ୯Ұ׵ࣈ҉߸ (simple substitution cipher) • จࣈಉ࢜ʹ 1 ର

    1 ͷରԠؔ܎ 6
  15. ۩ମྫ ʜ B C D E F G H I

    % & ' ( ) " # $ J K L M - * + , N O P 0 . / ʜ B C D E F G H I % & ' ( ) " # $ J K L M - * + , N O P 0 . / Figure 1: ׵ࣈදͷҰྫ 7
  16. ϒϧʔτɾϑΥʔεɾΞλοΫʹΑΔղಡ ݤύλʔϯ: 26 × 25 × 24 × · ·

    · × 1 = 403291461126605635584000000 ໿ 4 ஹͷ 1000 ஹഒ 8
  17. ϒϧʔτɾϑΥʔεɾΞλοΫʹΑΔղಡ ݤύλʔϯ: 26 × 25 × 24 × · ·

    · × 1 = 403291461126605635584000000 ໿ 4 ஹͷ 1000 ஹഒ ϒϧʔτɾϑΥʔεɾΞλοΫʹΑΔղಡ͸ࠔ೉ ˠผͷํ๏͕ͳ͍͔ʁ 8
  18. ස౓෼ੳʹΑΔղಡ

  19. ස౓෼ੳ • ฏจʹొ৔͢Δจࣈͷස౓ͱ҉߸จʹొ৔͢Δจࣈͷස౓͕ Ұக͢Δ͜ͱΛར༻ • ӳࣈͷొ৔ස౓: e ˠ t ˠ

    a ˠ o ˠ i ˠ n ˠ s ... (ΤυΨʔɾΞϥϯɾϙʔʰԫۚ஬ʱ) 9
  20. ස౓෼ੳͷཁ఺ • ස౓ͷߴ͍จࣈ͚ͩͰͳ͘ɼ௿͍จࣈ΋ख͕͔Γʹ • ͸͡ΊͱऴΘΓ͕Θ͔Δͱख͕͔Γʹɼ୯ޠͷ۠੾Γ΋Θ͔ Ε͹ख͕͔Γʹʁ • ҉߸จ͕௕͍ͱղಡ͠΍͍͢ • ಉ͡จࣈͷ࿈ଓ͸ख͕͔Γʹ

    ʢ͋Δจࣈ͕Ͳͷจࣈʹ҉߸Խ͞ΕΔ͔ܾ·͍ͬͯΔͨΊ • ղಡͷεϐʔυ͸ͩΜͩΜ্͕Δ 10
  21. ΫΠζ

  22. ΫΠζ 1: γʔβʔ҉߸ͷղಡ 'PELCGBTENCUL' 11

  23. ΫΠζ 2: ୯Ұ׵ࣈ҉߸ͷʮվྑʯ ಉ͡จࣈʹม׵ (c ˠ C, q ˠ Q)

    ͞Εͳ͍Α͏ͳ׵ࣈදΛ࢖͏ͱͲ ͏ͳΔ͔ʁ 12