Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Coin Locker - Time Operation
Search
Kensuke Kosaka
October 20, 2015
Technology
54
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Coin Locker - Time Operation
現代暗号理論の輪講講義用のスライド.
公開鍵暗号・RSAを理解するための準備.
教科書:暗号技術入門 第3版(著:結城 浩)
Kensuke Kosaka
October 20, 2015
More Decks by Kensuke Kosaka
See All by Kensuke Kosaka
How to make your first mechanical keyboard
arkenous
0
75
スマートフォンのモーションセンサを利用した,個人認証アプリケーションの開発に関する研究
arkenous
0
79
スマートフォンのモーションセンサを利用した個人認証アプリケーションの開発に関する研究
arkenous
0
89
スマートフォンのモーションセンサを利用した個人認証アプリケーションの開発
arkenous
0
67
Random number, PRNG
arkenous
0
180
Another Digital Signature, How to attack digital signature
arkenous
0
59
SHA3, Cryptographic hash function
arkenous
0
140
CMC SemiFinal Introduce
arkenous
0
72
CMC Introduce
arkenous
0
81
Other Decks in Technology
See All in Technology
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
4
1.1k
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
860
Rust で関数型ドメインモデリング
takonda
0
140
大型犬好きによるPugの紹介
yamanoku
1
160
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
580
継続的なAIコスト最適化
bgpat
1
340
今さら理解するウェブフォントver.2026
takanorip
3
770
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
1
150
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
570
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
600
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
What's in a price? How to price your products and services
michaelherold
247
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Site-Speed That Sticks
csswizardry
13
1.6k
Visualization
eitanlees
153
17k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Statistics for Hackers
jakevdp
799
230k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
Transcript
ݱ҉߸ཧ_ྠߨ ίΠϯϩοΧʔͷ͍ํ ࣌ܭԋࢉ 15M7112 ∁ࡔ ݡ༎ 1
ίΠϯϩοΧʔͷ͍ํ 2
ίΠϯϩοΧʔͷ͍ํ • ϩοΧʔʹՙΛೖΕΔ • ίΠϯΛೖ͠ɼΩʔΛൈ͖औΔ 3
ίΠϯͱΩʔͷׂ • ίΠϯɿϩοΧʔΛด͡ΔͨΊͷ伴 • ΩʔɿϩοΧʔΛ։͚ΔͨΊͷ伴 • ίΠϯ͕͋Ε୭ͰϩοΧʔΛด͡ΒΕΔ͕ɼίΠ ϯͰϩοΧʔΛ։͚ΒΕͳ͍ • ։͚ΔͨΊʹΩʔ͕ඞཁ
4
伴ૹ • ରশ҉߸Ͱ҉߸Խ伴ͱ෮߸伴͕ಉҰ • ड৴ऀ͕෮߸͢Δҝʹɼ͜ͷ伴ૹΒͳ͍ͱ͍͚ͳ͍ • ௨৴Λ౪ௌ͞Εɼ෮߸͞ΕΔ • 伴ΛૹΒͳ͍ͱ͍͚ͳ͍ͷʹɼૹ͍͚ͬͯͳ͍ 5
伴ૹͷղܾࡦ • 伴ͷࣄલڞ༗ʹΑΔղܾ • 伴ηϯλʔʹΑΔղܾ • Diffie-Hellman伴ަ • ެ։伴҉߸ʹΑΔղܾ 6
伴ͷࣄલڞ༗ʹΑΔղܾ • ࣄલʹ҆શͳํ๏Ͱ伴Λ͓ͯ͘͠ • Ͳ͏ͬͯ伴Λ҆શʹ͢ʁ • ΓऔΓ͢Δਓ͕ଟ͘ͳΔͱɼͦΕͧΕͷਓʹରͯ͠ઐ ༻ͷ伴͕ඞཁ • େͳྔͷ伴͕ඞཁʹͳΔՄೳੑ͕͋Δ
7
伴ηϯλʔʹΑΔղܾ • 伴ηϯλʔͱͯ͠ػೳ͢ΔαʔόΛ༻ҙ • 伴ηϯλʔʹ҉߸௨৴Λߦ͍͍ͨશͯͷਓͦΕͧΕ ͷ伴Λొ 8
伴ηϯλʔΛ༻͍ͨ ҉߸௨৴ • ٖࣅཚੜثͰηογϣϯ伴Λ࡞ • σʔλϕʔε͔ΒૹΓखAͱड͚खBͷ伴ΛऔΓग़͢ • ͦΕͧΕͷ伴Ͱ҉߸Խͨ͠ηογϣϯ伴ΛɼͦΕͧΕͷ 伴ͷॴ༗ऀʹૹ৴ 9
伴ηϯλʔΛ༻͍ͨ ҉߸௨৴ • ҉߸Խ͞Εͨηογϣϯ伴ɼABͷ伴Ͱ҉߸Խ͞Εͯ ͍ΔͨΊɼͦΕͧΕ෮߸Ͱ͖Δ • ಘΒΕͨηογϣϯ伴Λ༻͍ͯ҉߸௨৴͢Δ • ௨৴ऴྃޙɼηογϣϯ伴Λআ͢Δ 10
伴ηϯλʔͷ • ҉߸௨৴͢Δͨͼʹαʔό͕ॲཧΛߦ͏ • ར༻ऀ͕ଟ͘ͳΔ΄Ͳɼෛՙ͕૿େ͢Δ • ނো͢Εɼ҉߸௨৴Λར༻Ͱ͖ͳ͘ͳΔ • σʔλϕʔεΛΫϥοΫ͞ΕΔͱ… 11
Diffie-Hellman伴ަʹΑΔղܾ • ҉߸௨৴Λߦ͍͍ͨAͱB͕ɼ͋ΔใΛަ͢Δ • ͜ͷใɼ౪ௌ͞ΕͯߏΘͳ͍ • AͱBɼަͨ͠ใΛͱʹಉ͡伴Λ࡞Γग़ͤΔ • ౪ௌऀɼಉ͡伴Λ࡞Γग़ͤͳ͍ 12
ެ։伴҉߸ʹΑΔղܾ • ҉߸Խ伴ͱ෮߸伴Λ͚Δ • ૹ৴ऀ҉߸Խ伴Λ༻͍ͯ҉߸Խ • ड৴ऀ෮߸伴Λ༻͍ͯ෮߸ • ౪ௌ͞ΕͯࠔΔͷ෮߸伴ͷΈ 13
伴ૹͷղܾ • ෮߸伴୭ʹݟͤͯͳΒͳ͍ʢൿີ伴ʣ • ҉߸Խ伴ެ։ͯ͠ແ͍ʢެ։伴ʣ • ެ։伴ͰϝοηʔδΛ҉߸Խͯ͠ૹ৴ͯ͠Β͏ • ड৴ͨ͠Βɼൿີ伴Ͱ෮߸͢Δ 14
ެ։伴҉߸ͷྺ࢙ • ެ։伴҉߸ͷΞΠσΞΛൃදʢ1976ʣ • Merkle-HellmanφοϓαοΫ҉߸͕։ൃ͞ΕΔʢ1977ʣ • RSA͕ൃද͞ΕΔʢ1978ʣ • ݱࡏͷެ։伴҉߸ʹ͓͚Δɼࣄ্࣮ͷඪ४ •
Merkle-HellmanφοϓαοΫ҉߸ʹ͍ͭͯɼAdi Shamir͕ ղಡํ๏Λൃݟʢ1982ʣ 15
ެ։伴҉߸Λ༻͍ͨ ௨৴ͷྲྀΕ • Bɼެ։伴ͱൿີ伴ͷ伴ϖΞΛੜ͢Δ • Bɼެ։伴ΛAʹૹ৴͢Δ • AɼBͷެ։伴Λ༻͍ͯϝοηʔδΛ҉߸Խ͠ɼ͜ΕΛ Bʹૹ৴͢Δ •
Bɼൿີ伴ͰA͔ΒૹΒΕ͖ͯͨ҉߸จΛ෮߸͢Δ 16
ެ։伴҉߸ͰղܾͰ͖ͳ͍ • ެ։伴҉߸ʹΑͬͯ҉߸ͷ伴ૹղܾͨ͠ • ೖखͨ͠ެ։伴͕ɼຊʹਖ਼͍͠ͷ͔͔Βͳ͍ • ެ։伴ͷೝূʢman-in-the-middle߈ܸʣ • ରশ҉߸ʹൺɼॲཧ͕͍
17
࣌ܭԋࢉ 18
࣌ܭԋࢉͱ • ӈਤͷΑ͏ͳ࣌ܭΛΠϝʔδ • ͜ͷ্ͰՃݮআͱྦྷɼ ରΛԋࢉ͢Δ • 11 + 1ɼ0ʹͳΔ
19
Ճࢉ • ӈਤͷঢ়ଶ͔Β13Λ͢ͱɼ ݁Ռతʹ1Λࢦ͢ • (0 + 13) mod 12
= 1 • modͱɼׂΓࢉΛͯ͠༨Γ ΛٻΊΔܭࢉΛද͢ • ී௨ʹ͠ࢉΛ͠ɼͦͷ݁Ռ Λ12Ͱׂͬͨ༨Γ͕ͷҐஔ ʹͳΔ 20
ݮࢉ • ӈճΓʹ͔͠ճΒͳ͍ • ͲͷΑ͏ʹͯ͠Λ0ʹ ࣋ͬͯߦ͔͘ • (3 + 9)
mod 12 = 0 • ࣌ܭԋࢉʹ͓͍ͯɼ9–3ͱ ಉׂ͡ΛՌͨ͢ • ݮࢉΛՃࢉʹม͢Δ 21
ࢉ • ࢉՃࢉΛ܁Γฦͨ͠ͷ • ӈਤͷঢ়ଶ͔Βɼ7×4Λߦ͏ • “7Γӈʹճ͢”ૢ࡞Λ 4ճ܁Γฦ͢ • (0
+ 7 × 4) mod 12 = 4 22
আࢉ • ࢉͷٯԋࢉΛߟ͑Δ • (0 + 7 × A) mod
12 = 1 • ͜Εɼmod12ͷੈքʹ͓͚ ΔҎԼͷࣜͱಉ͡ • 0 + A = 1 ÷ 7 • ҰͭͷࣜΑΓɼAʹ0͔Βॱ ʹͯΊ͍ͯ͘ͱ7͕ٻ·Δ • mod12ͷੈքͰɼ1 ÷ 7ͷ ͑7ʹͳΔ 23
ٯ • mod12ͷੈքʹ͓͚Δɼm × n = 1 • mͱnɼٯͷؔʹ͋Δʢֻ͚Δͱ1ʹͳΔʣ •
0͔Β11ͷதͰɼͲΜͳʹٯ͕͋Δͷ͔ʁ • RSAͰެ։伴ͱϖΞʹͳΔϓϥΠϕʔτ伴͕ଘࡏ͢Δ ͔Ͳ͏͔ͱ͍͏ʹͭͳ͕Δ 24
ٯ • mod12ͷੈքʹ͓͚ΔٯΛ࣋ͭ • ͦͷͱ12ͷ࠷େެ͕1Ͱ͋ΕɼٯΛ࣋ͭ • 5 × 5 mod
12 = 1 • 7 × 7 mod 12 = 1 • 12ͱޓ͍ʹૉͳʢ12ʹͱͬͯͷૉʣ 25
ྦྷʢ͖ʣ • ྦྷɼࢉΛ܁Γฦͨ͠ͷ • 74 = 7 × 7 ×
7 × 7 • ࣌ܭԋࢉͰɼྦྷͷܭࢉΛ͔ͯ͠ΒmodΛऔΕ͍͍ • 74 mod 12 = 7 × 7 × 7 × 7 mod 12 = 2401 mod 12 = 1 • ·ͨɼྦྷͷܭࢉ్தʹmodͷܭࢉΛڬΜͰྑ͍ • ܭࢉաఔͰѻ͏͕େ͖͘ͳΔͨΊʢRSAͷॲཧͰΘΕΔʣ 26
ର • ྦྷͷٯԋࢉ • 7k = 49 • kʹ2͕దͰ͋ΔͱΘ͔Δ •
ී௨ͷֶͰɼ͞΄Ͳ͍͠ܭࢉͰͳ͍ 27
ࢄର • ࣌ܭԋࢉʹ͓͚Δରͷ͜ͱ • 7k mod 13 = 8 •
0͔ΒͯΊ͍ͯ͘ͱɼk9ͩͱ͔Δ 28
ࢄର • y = gx mod p ʹ͓͍ͯ • x͔Βܭࢉ͢Δ͜ͱ؆୯͕ͩɼy͔ΒxΛٻΊΔͷɼ
ޮͷ͍͍ΞϧΰϦζϜ͕ΒΕ͍ͯͳ͍ҝʹ͍͠ 29
࣌ܭͷ͔ΒɼRSA • 74 mod 12ͱͭ·Γɼ7Λ4ͯ͠ɼ12Ͱׂͬͨ༨Γ • RSAͷ҉߸Խͱ෮߸Ͱɼ͜ͷܭࢉΛߦ͏ 30