Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
encryption
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hirokazu Maruta
March 03, 2022
Science
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
encryption
Hirokazu Maruta
March 03, 2022
More Decks by Hirokazu Maruta
See All by Hirokazu Maruta
わかった気になるチューリングマシン
mochisuna
0
62
Elementary algorithm
mochisuna
0
30
ssh-dynamic-forward
mochisuna
0
65
ServerlessFramework-Trello
mochisuna
0
36
TechBash Slack Reaction Award
mochisuna
0
51
techbash-clasp
mochisuna
0
100
vuejs-night-publish
mochisuna
0
1.2k
surprise-lt-for-intern-vol-2
mochisuna
0
59
docker-multi-stage-build
mochisuna
0
170
Other Decks in Science
See All in Science
(メタ)科学コミュニケーターからみたAI for Scienceの同床異夢
rmaruy
0
240
Accelerating operator Sinkhorn iteration with overrelaxation
tasusu
0
360
Non-Gaussian, nonlinear causal discovery with hidden variables and application
sshimizu2006
0
130
HajimetenoLT vol.17
hashimoto_kei
1
240
機械学習 - 決定木からはじめる機械学習
trycycle
PRO
0
1.5k
人生を変えた一冊「独学大全」のはなし / Self-study ENCYCLOPEDIA: The Book Which Change My Life #独学大全 #EM推し本
expajp
0
160
DMMにおけるABテスト検証設計の工夫
xc6da
1
2k
Rashomon at the Sound: Reconstructing all possible paleoearthquake histories in the Puget Lowland through topological search
cossatot
0
990
アクシズを探せ! 各勢力の位置関係についての考察
miu_crescent
PRO
1
350
あなたに水耕栽培を愛していないとは言わせない
mutsumix
1
340
Bリーグのショットデータを活用した得点期待値モデルの構築 / Construction of expected points model using shot data of B.LEAGUE
konakalab
0
140
20251212_LT忘年会_データサイエンス枠_新川.pdf
shinpsan
0
290
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
A designer walks into a library…
pauljervisheath
211
24k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
580
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
830
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
Paper Plane (Part 1)
katiecoart
PRO
0
8.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Being A Developer After 40
akosma
91
590k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Transcript
҉߸ͷ ·Δͨ
ࣗݾհ https://github.com/mochisuna • ؙాʢ·ΔͨͻΖ͔ͣʣ • Twitter: @mochi_suna • ओʹαʔόʔαΠυΤϯδχΞ •
झຯɿϐΞϊɺϘυήɺΞΠίϯ࡞ʢΧούʣɺϓϨθϯ • ࣗಈԽେ͖ɻख࡞ۀ͖Β͍ • githubɿ @mochisuna
ٕज़໘
ઌͷͰ͕͢
None
ͱͯ໘ന͔ͬͨͰ͢
αϚʔΥʔζͱ͍͑
81438162575788886766923577992357799761466612018296721242362536256184293 57069352457338978305971235639587050589890751497599290026879543541629595 92635382962929999373527393893015272028273730979383739039731352452762289 78273826989822154612213136061942130302141133310346191812161211316661312 01213147641231316644363838839939653563739348463763839331543288789762383 98563738365433423534644888463839384643839396476573748938457345564245126 34844668758248726826859992922649392276265849264516138123892991049225475 36852165445266876331694975626214662621647516621654962162336214611564862 15622262254897462256624662062148316547254564902302454621245456232245162 31242456512434518164012651251812424321651845424612432464915548961562265
40431451494816121614652254654546432451891591646484645464242115159121215 12512462155666156124173641635467148361593823787985896185613764728526928 789895656425257381651935613893981991374836873823541837167837898784e7654 34576345637173823138479813768765238613741311236937264827654778277325473 89892815242254251552253613131331511313143646519194546121649460060457379 04647674872778721829547482997923937452456353215212517628516424172154621 85215216524128156631535133635135624373234146484945914624245144655937545 24315155236472864625463258642165376526875214636421645296605158216631616 52986915561678675254116565125134664256670262166165145634667412563523120 00214153442514256547456176523156416857441156514555136515571345216351461 34235531457514555135253466527524543412352416451251485413551355251511561 71956616756817356813613736137253824162482752642783523816583271845624165 54631567452166375415676516659156451553145235234613252553232516852127126 45162157232131522136725132143364221234162322654656432322163726142321427 82631674245423512542541436542154615244235542594181494224535650656526246 39606225635206461462565251661258214063232062267640333141325426372633225 33482372736524321232563425383425332436237028563074332531002322305236045 23214566316478571435215145571630232235224232436247022602702856079625164 32235723674724715613526215523165518237142314221623715637261634153471
҉߸จͰ͢Ͷ
҉߸จͱ͍͏ͷ جຊతͳߟ͑ͱͯ͠
௨৴จΛݟͯ ಛผͳࣝͳ͠Ͱ ༰ͷղಡ͕Ͱ͖ͳ͍ ͱ͍͏ͷʹͳΓ·͢
ʮୈࡾऀʹղ͚ͳ͍ʯ͔Β զʑͷใՊֶͷੈքͰ ͘࠾༻͞Ε͍ͯΔΜͰ͢
ͳΜ͔݈ೋ͘ΜࣗྗͰ ղ͍ͯ·͕ͨ͠ɾɾɾ
͍ͨ͜͠ͱ ʮͲΜͳ҉߸͕͋Δͷ͔ʯ ʮͲͷ͙Β͍ղ͘ͷ͕େม͔ʯ
҉߸ֶࣗମͱͯෳࡶ ࠓճβϧʹϐοΫΞοϓ ʢ؆୯ԽͷͨΊι͕ೖΔʣ
ࠓճͷ༰ • ҉߸ͷྺ࢙ • ҉߸Խʹ͍ͭͯ • ҉߸ͷछྨ • ΈʢΞϧΰϦζϜʣ •
Ͳͷ͙Β͍ղ͘ͷ͕େม͔ʢݎ࿚͞ʣ
҉߸ͷྺ࢙
҉߸Խࣗମلݩલ͔Β͋Δ • ҉߸ = cryptographyʢӳޠʣ • kryptosʢӅΕΔʣ + graphosʢॻ͘ʣ
҉߸Խࣗମلݩલ͔Β͋Δ • ҉߸ = cryptographyʢӳޠʣ • kryptosʢӅΕΔʣ + graphosʢॻ͘ʣ •
༨ஊ • ݪࢠͷΫϦϓτϯʢKrʣͷޠݯkryptos • ΞϧΰϯʹӅΕͯݟ͔ͭΒͳ͔ͬͨͨΊ
ݹͷ҉߸ͨͪ εΩϡλϨʔ҉߸ εύϧλ ʢلݩલ5ੈلʣ γʔβʔ҉߸ ϩʔϚఇࠃ ʢلݩલ1ੈلʣ
ݹͷ҉߸ͨͪ εΩϡλϨʔ҉߸ εύϧλ ʢلݩલ5ੈلʣ γʔβʔ҉߸ ϩʔϚఇࠃ ʢلݩલ1ੈلʣ ઓ૪ͷͨΊʹٻΊΒΕͨ
࣮ࡍ͍ͭ͜Βղಡ͕͘͠ͳ͍ ҰݟͲͪΒ؆୯ʹݟ͑Δ Ͱר͖औΔ͜ͱ͕ࣗ໌ ҙຯͷ͋Δจઅ͕ݟ͔ͭΔ αϯϓϧ͕ेଟ͚Ε ҙຯͷ͋Δจઅ͔Βݟ͔ͭΔ
ҰݟͲͪΒ؆୯ʹݟ͑Δ ݱ҉߸Ͱར༻͞ΕΔྨͷجຊܗ సஔࣜ҉߸ ࣈࣜ҉߸ มଇʹै͍ จࣈͷॱ൪Λฒͼସ͑Δ มଇʹै͍ จࣈͷׂΓͯΛͣΒ͢ సஔࣜ҉߸
҉߸Խʹ͍ͭͯ
ݹయత҉߸ͷࠜຊతͳ • ҉߸Խͷํࣜ ≒ ҉߸Խ伴 • ҉߸ํ͕ࣜόϨΔ → ೋͱ͑ͳ͘ͳΔ ҉߸จ
҉߸ํࣜΛղಡ ӬٱʹղಡՄೳ
ݹయత҉߸ˠݱత҉߸ έϧΫϗϑεͷݪཧ • 1883: Auguste Kerckhoffs • ҉߸ํࣜࣗମൿີͰ͋Δ͜ͱ͕ඞཁͳ͍ ʢఢͷखʹམͪͯෆ߹͕ͳ͍ʣ
ݹయత҉߸ˠݱత҉߸ Claude Elwood Shannon • ʮγϟϊϯʹϋʔτϨʔͷఆཧʯͷ࡞ऀ • ϫϯλΠϜύουͷจͰݴٴ • ʮఢγεςϜΛ͍ͬͯΔʯ
܉༻҉߸ʹؔ͢Δ6ͭͷϧʔϧ ͔ͳΓࡶʹҎԼ 1. ҉߸ํࣜݱ࣮తʹٯมෆೳ 2. ҉߸ํࣜࣗମൿີͰ͋Δ͜ͱ͕ඞཁͳ͍ 3. 伴จॻΛݟͳ͘ͱୡɾهԱͰ͖มߋՄೳ 4. ిؾ௨৴ʹదͨ͠ͷͰ͋Δ͜ͱ
5. ܞଳՄೳͰӡൖૢ࡞͕গਓͰՄೳ 6. ͍͘͢ख͕͔͔ؒΒͣɺଟͷنଇΛकΔ ඞཁͳ͍
܉༻҉߸ʹؔ͢Δ6ͭͷϧʔϧ ͔ͳΓࡶʹҎԼ 1. ҉߸ํࣜݱ࣮తʹٯมෆೳ 2. ҉߸ํࣜࣗମൿີͰ͋Δ͜ͱ͕ඞཁͳ͍ 3. 伴จॻΛݟͳ͘ͱୡɾهԱͰ͖มߋՄೳ 4. ిؾ௨৴ʹదͨ͠ͷͰ͋Δ͜ͱ
5. ܞଳՄೳͰӡൖૢ࡞͕গਓͰՄೳ 6. ͍͘͢ख͕͔͔ؒΒͣɺଟͷنଇΛकΔ ඞཁͳ͍ ͜ͷϧʔϧʹ͍ͭͯ ߟ͑ΒΕ͍ͯΔͷ͕ݱత҉߸
҉߸Խʹ͏ʮ伴ʯൿີ ҉߸ํࣜࣗମެ։ ҉߸Խํࣜ ར༻ऀ ҉߸จ ҉߸Խʹ༻͍Δ伴 ฏจ ެ։ใ ൿಗใ
• ݹయతʮ҉߸จ͔Β҉߸ํࣜΛਪଌ͢Δ͠͞ʯ ҉߸ͷ͠͞ ҉߸จ ҉߸ํࣜΛղಡ ͕͜͜؍
• ݱతʮฏจ҉߸伴Λਪଌ͢Δ͠͞ʯ ҉߸ͷ͠͞ ҉߸จ ҉߸ํࣜط 伴ฏจ ղੳͰ͖ͳ͍ ҉߸ԽʹΘΕͨ ʮ伴ʯൿಗ
҉߸Խͷछྨ
େ͖̎͘छྨ ڞ௨伴҉߸ ެ։伴҉߸ ಉҰ ҉߸Խɾ෮߸Ͱ ಉ͡伴Λ͏ ҉߸Խɾ෮߸Ͱ ҟͳΔ伴Λ͏ ҟͳΔ
• ҉߸Խɾ෮߸Ͱಉ͡伴Λ͏ ڞ௨伴҉߸ ૹ৴ऀ ड৴ऀ ൿີ伴 ҉߸Խ
• ҉߸Խɾ෮߸Ͱಉ͡伴Λ͏ ڞ௨伴҉߸ ᶃ伴ͷૹ ૹ৴ऀ ड৴ऀ ൿີ伴 ҉߸Խ
• ҉߸Խɾ෮߸Ͱಉ͡伴Λ͏ ڞ௨伴҉߸ ҉߸ํࣜ ᶃ伴ͷૹ ૹ৴ऀ ड৴ऀ ฏจ ൿີ伴 ҉߸Խ
• ҉߸Խɾ෮߸Ͱಉ͡伴Λ͏ ڞ௨伴҉߸ ҉߸ํࣜ ᶃ伴ͷૹ ૹ৴ऀ ड৴ऀ ฏจ ᶄ伴Λͬͯ ҉߸Խ
ൿີ伴 ҉߸จ ҉߸Խ
• ҉߸Խɾ෮߸Ͱಉ͡伴Λ͏ ڞ௨伴҉߸ ҉߸ํࣜ ᶃ伴ͷૹ ૹ৴ऀ ड৴ऀ ฏจ ᶄ伴Λͬͯ ҉߸Խ
ൿີ伴 ड৴ऀ ҉߸จ ҉߸จ ෮߸ํࣜ ෮߸ ҉߸Խ ൿີ伴
• ҉߸Խɾ෮߸Ͱಉ͡伴Λ͏ ڞ௨伴҉߸ ҉߸ํࣜ ᶃ伴ͷૹ ૹ৴ऀ ड৴ऀ ฏจ ᶄ伴Λͬͯ ҉߸Խ
ൿີ伴 ड৴ऀ ҉߸จ ൿີ伴 ฏจ 伴Λͬͯ෮߸ ҉߸จ ෮߸ํࣜ ෮߸ ҉߸Խ
• ҉߸Խɾ෮߸Ͱಉ͡伴Λ͏ • 伴ͷऔΓѻ͍Λ৻ॏʹߦͳ͏ඞཁ͕͋Δ ڞ௨伴҉߸ ҉߸ํࣜ ᶃ伴ͷૹ ૹ৴ऀ ड৴ऀ ฏจ
ᶄ伴Λͬͯ ҉߸Խ ൿີ伴 ड৴ऀ ҉߸จ ൿີ伴 ฏจ 伴Λͬͯ෮߸ ҉߸จ ෮߸ํࣜ ෮߸ ҉߸Խ
ߟ͑ํͱͯ͠ݹయ҉߸ํ͕͍ࣜۙ ڞ௨伴҉߸ εΩϡλϨʔͷ ҉߸ԁ൫ ϰΟδϡωϧͷද ΤχάϚมػ ͜ΕΒࣗମΛڞ༗伴ͱͯ͠ߟ͑Δ͜ͱͰ͖Δ
• ҉߸Խɾ෮߸ͰҟͳΔ伴Λ͏ ެ։伴҉߸ ૹ৴ऀ ड৴ऀ ൿີ伴 ҉߸Խ ެ։伴
• ҉߸Խɾ෮߸ͰҟͳΔ伴Λ͏ ެ։伴҉߸ ᶃެ։伴ͷૹ ૹ৴ऀ ड৴ऀ ެ։伴 ҉߸Խ ൿີ伴
• ҉߸Խɾ෮߸ͰҟͳΔ伴Λ͏ • ެ։伴Ͱ҉߸Խ ެ։伴҉߸ ҉߸ํࣜ ᶃެ։伴ͷૹ ૹ৴ऀ ड৴ऀ ฏจ
ᶄެ։伴Λ ͬͯ ҉߸Խ ެ։伴 ҉߸Խ ൿີ伴 ҉߸จ
• ҉߸Խɾ෮߸ͰҟͳΔ伴Λ͏ • ެ։伴Ͱ҉߸Խ ެ։伴҉߸ ड৴ऀ ҉߸จ ෮߸ํࣜ ෮߸ ҉߸ํࣜ
ᶃެ։伴ͷૹ ૹ৴ऀ ड৴ऀ ฏจ ᶄެ։伴Λ ͬͯ ҉߸Խ ެ։伴 ҉߸จ ҉߸Խ ൿີ伴 ެ։伴 ൿີ伴
• ҉߸Խɾ෮߸ͰҟͳΔ伴Λ͏ • ެ։伴Ͱ҉߸Խ / ൿີ伴Ͱ෮߸ ެ։伴҉߸ ड৴ऀ ҉߸จ ൿີ伴
ฏจ ൿີ伴Λͬͯ෮߸ ෮߸ํࣜ ෮߸ ҉߸ํࣜ ᶃެ։伴ͷૹ ૹ৴ऀ ड৴ऀ ฏจ ᶄެ։伴Λ ͬͯ ҉߸Խ ެ։伴 ҉߸จ ҉߸Խ ൿີ伴 ެ։伴
ڞ༗伴ͷͰ͋Δ伴ཧΛղফ͢Δํࣜ • ࿙ग़ʹΑΔͷͳ͍ެ։伴Ͱ҉߸Խ • ݶΒΕͨਓؒͷΈ͕Δൿີ伴Ͱ෮߸ 伴ͷϦεΫΛେ͖͘ݮ ެ։伴҉߸
Έ
ࡶʹΈΛհ • DES҉߸ • AES҉߸ • RSA҉߸
DES҉߸
DESʢData Encryption Standardʣ • ΞϝϦΧͷچࠃՈ҉߸ن֨ • ڞ௨伴҉߸ํࣜ • 1976ɺΞϝϦΧ߹ऺࠃͷެࣜ࿈ใॲཧ ඪ४ͱͯ͠࠾༻
• ͦͷޙࠃࡍతʹ͘ΘΕ͍ͯͨ
جຊతͳΞΠσΞ • 64BitϏοτ୯Ґʹղ • ؆୯ͳBitԋࢉʢXORʣʴBitγϑτ • 伴ͷஞ࣍ߋ৽ • 16ճ܁Γฦ͢͜ͱͰ҉߸ͷڧԽ
ΞϧΰϦζϜʢࡶʹʣ 32bitͰׂ ฏจ ҉߸จ 64bitຖʹׂ CJU5FYU CJUΛฒସ͑ʢॳظసஔʣ ্ҐCJU ԼҐCJU CJUΛฒସ͑ʢ࠷ऴసஔʣ
ॖసஔʢCJUʣ 8ͷഒbitΛॖ ԼҐCJU ্ҐCJU ԼҐCJU ্ҐCJU 28bitͰׂ ॖసஔʢCJUʣ #JUTIJGU ҉߸Խؔ ×16ճ ҉߸Խ伴
ར • ࣮͕؆୯ • Bitԋࢉ • Bitγϑτ • ςʔϒϧࢀরఔ •
伴ͷϏοτ͕nʹର͠O(2n)ͷࢼߦճ • 20ੈل࣌ͱͯ͠࠷ڧͷ҉߸ͩͬͨ
• 伴ͷ͞ • 64bitɾɾɾͱݟ͔͚ͤͯΞϧΰϦζϜ্56bit • 1999ͷஈ֊ͰBruteForceʹΑΔղ๏͕ެද • վྑܕͷ3-DESͳΜͯͷग़͕ͨࠜຊղܾͯ͠ͳ͍ • NSAؔ༩ͷӄ
• ৭ʑ͋ΔΑͶɻ
AES҉߸
AESʢAdvanced Encryption Standardʣ • DESʹΘΔ৽͍͠ඪ४҉߸ΞϧΰϦζϜ • Rijndael ʢϥΠϯμʔϧʣ • ϑΟϯηϯτɾϥΠϝϯ
(Vincent Rijmen) • ϗΝϯɾμʔϝϯ(Joan Daemen) • ڞ௨伴҉߸
جຊతͳΞΠσΞ • 4छྨͷมϩδοΫΛෳճΈ߹ΘͤΔ 1. SubBytes 2. ShiftRows 3. MixColumns 4.
AddRoundKey • 伴ͰϥϯυΛม͑Δ
جຊతͳΞΠσΞ • 4छྨͷมϩδοΫΛෳճΈ߹ΘͤΔ 1. SubBytesɿࣈදʹΑΔ1byte୯Ґͷஔ 2. ShiftRowsɿ4byte୯ҐͷߦΛҰఆنଇͰࠨγϑτ 3. MixColumnsɿbitԋࢉʹΑΔ̐byte୯Ґͷߦྻม 4.
AddRoundKeyɿround伴ͱXOR • 伴ͰϥϯυΛม͑Δ
ΞϧΰϦζϜ ฏจ ҉߸Խ伴 ฏจ "EE3PVOE,FZ 4VC#ZUFT 4IJGU3PXT .JY$PMVNOT "EE3PVOE,FZ Round伴
×9ճ 4VC#ZUFT 4IJGU3PXT "EE3PVOE,FZ ҉߸จ
SubBytes • S-BOXʹΑΔࣈॲཧΛߦͳ͏ • ࠜຊతʹγʔβʔ҉߸ͱಉ͡ʢࡶʣ
ShiftRows • 4Byte୯ҐͷߦΛࠨγϑτ͢Δ • ҎԼྫ
MixColumns • Rijindealͷߦྻܭࢉ • https://en.wikipedia.org/wiki/Rijndael_MixColumns • ͘͢͝ݡ͍ʢ໘ന͍ʣߦྻܭࢉΛߦͳ͏
ΞϧΰϦζϜʢ1ϥϯυʣ
༻్ • ແઢLANͷ҉߸Խ௨৴Ͱར༻͞Ε͍ͯΔ • ʮAESʯͱ͍͏໊લ͚ͩͬͯΔਓଟͦ͏ • SSL/TLSԽ௨৴Ͱར༻
ݎ࿚͞ʹ͍ͭͯ • 伴͕128,192,256bit • ܻతʹेؤৎ • ༗ޮੑͷ͋Δ߈ܸࣗମଘࡏ͢Δ • બฏจ߈ܸ •
ؔ࿈伴߈ܸ • ࠷ऴϥϯυ·ͰഁΒΕ͍ͯͳ͍
RSA҉߸
RSA҉߸ • ެ։伴҉߸ • ൃ໌ऀ໊͕લͷ༝དྷ • ϩφϧυɾϦϕετɿRonald Rivest • ΞσΟɾγϟϛΞɿAdi
Shamir • ϨΦφϧυɾΤʔσϧϚϯɿLeonard Adleman • νϡʔϦϯά
ݪཧ • ૉҼղͱϑΣϧϚʔͷখఆཧΛར༻ • ҉߸Խʢฏจm͔Β҉߸จc Λ࡞ʣ C = Me (mod
n) • ෮߸ʢ҉߸จc͔ΒݩͷฏจmΛ֫ಘʣ M = Cd (mod n) • ҉߸Խ୭ͰͰ͖Δ͕෮߸ຊਓ͔͠Ͱ͖ͳ͍
ΞϧΰϦζϜ ૹ৴ऀ ड৴ऀ Q Rͷ࣌ ެ։伴OQR ПO Q R
ПOͱޓ͍ʹૉͳࣗવ F FE㲇 NPEП O Λຬͨ͢ ൿີ伴E ൿີ伴
ΞϧΰϦζϜ ૹ৴ऀ ड৴ऀ Q Rͷ࣌ ެ։伴OQR ПO Q R
ПOͱޓ͍ʹૉͳࣗવ F FE㲇 NPEП O Λຬͨ͢ ൿີ伴E ൿີ伴 OQR F ެ։伴
ΞϧΰϦζϜ ૹ৴ऀ ड৴ऀ Q Rͷ࣌ ެ։伴OQR ПO Q R
ПOͱޓ͍ʹૉͳࣗવ F FE㲇 NPEП O Λຬͨ͢ ൿີ伴E ൿີ伴 OQR F ެ։伴 ެ։伴 ૹ৴
ΞϧΰϦζϜ ૹ৴ऀ ड৴ऀ ฏจʢM=63ʣ Q Rͷ࣌ ެ։伴OQR ПO Q R
ПOͱޓ͍ʹૉͳࣗવ F FE㲇 NPEП O Λຬͨ͢ ൿີ伴E ൿີ伴 OQR F ެ։伴 ެ։伴 ૹ৴
ΞϧΰϦζϜ ૹ৴ऀ ड৴ऀ ฏจʢM=63ʣ ҉߸จʢC=33ʣ Q Rͷ࣌ ެ։伴OQR ПO Q
R ПOͱޓ͍ʹૉͳࣗવ F FE㲇 NPEП O Λຬͨ͢ ൿີ伴E ൿີ伴 OQR F ެ։伴 ެ։伴 ૹ৴ .ͷͱ͖ ҉߸จ $.F NPEO ҉߸Խ
ΞϧΰϦζϜ ૹ৴ऀ ड৴ऀ ฏจʢM=63ʣ ҉߸จʢC=33ʣ Q Rͷ࣌ ެ։伴OQR ПO Q
R ПOͱޓ͍ʹૉͳࣗવ F FE㲇 NPEП O Λຬͨ͢ ൿີ伴E ൿີ伴 OQR F ެ։伴 ެ։伴 ૹ৴ .ͷͱ͖ ҉߸จ $.F NPEO ҉߸Խ ฏจʢM=63ʣ .$E NPEO ෮߸
Ͷʁ؆୯Ͱ͠ΐʁ
p=37, q=71, e=79Ͱ͋Δͱ͖҉߸จʮ904ʯΛղಡͤΑ • ݅ • pq=n • m(p-1)(q-1)
≡ -1(mod e)ͱͳΔΑ͏ͳ࠷খͷࣗવ mΛ༻ҙ͢Δͱൿີ伴d = (m(p-1)(q-1)+1)/e • ҉߸จcʹ͍ͭͯce ≡ M(mod n) • M͕ฏจͱͳΔ
ਓ͕ؒΔ༰͡Όͳ͍Ͱ͢ ൿີ伴ͷܭࢉ • m(p-1)(q-1) ≡ -1(mod e) • m(37-1)(71-1) ≡
78(mod 79) • 2520m ≡ 78(mod 79) → 2520ͷഒͷ͏ͪ79ͰׂΔͱ78͋·Δ
ൿີ伴͕ٻ·ͬͨʂ • d = 319ͩͬͯΑ • ෮߸͠Α͏ • ce ≡
M(mod n)Λຬͨ͢M͕ٻ·ΕOK 904319 ≡ M(mod 2627) 914ͷ319Λ2627Ͱׂͬͨ͋·Γ
όΧ࡞ۀ͚ͩͲ
جఈͷૉp , q ެ։伴e ͕Θ͔͍ͬͯΕҰԠղ͚Δ ड৴ऀଆͷใ
ૹ৴ऀͲ͏ͳͷ͔ʁ
ૹ৴ऀͷطͷใ • ߹n • ެ։伴e n͔ΒجఈͷૉΛٻΊΕOK 2͔ͭ͠Β͑ͳ͍
ૹ৴ऀͷطͷใ • ߹n • ެ։伴e N͔ΒجఈͷૉΛٻΊΕɾɾɾʁ 2͔ͭ͠Β͑ͳ͍
ૉҼղͰ͖Δɾɾɾʁ pq = 1143368469Λຬͨ͢ p, qΛٻΊΑ
ૉҼղͰ͖Δɾɾɾʁ pq = 1143368469Λຬͨ͢ p, qΛٻΊΑ • p =19059 •
q = 59991
ૉҼղͰ͖Δɾɾɾʁ pq = 1143368469Λຬͨ͢ p, qΛٻΊΑ • p =19059 •
q = 59991 ্ܻ͕͕ΕίϯϐϡʔλʔͰݫ͍͠ 10ܻ
ݎ࿚͞ • ૉҼղͷಛੑΛར༻͍ͯ͠Δ • طͷύϥϝʔλʹΑΔܭࢉ؆୯ • eܭࢉPCతʹ༰қ • ະͷύϥϝʔλʹΑΔղಡࠔ •
P vs NPΛղ͘͜ͱͱಉٛ • ϛϨχΞϜݒۚʢະղܾʣ
ݎ࿚͞ • ૉҼղͷಛੑΛར༻͍ͯ͠Δ • طͷύϥϝʔλʹΑΔܭࢉ؆୯ • eܭࢉPCతʹ༰қ • ະͷύϥϝʔλʹΑΔղಡࠔ •
P vs NPΛղ͘͜ͱͱಉٛ • ϛϨχΞϜݒۚʢະղܾʣ ݱ ʹ ͓ ͍ ͯ ߈ ུ ͠ ͍
ࠓճͷ༰ • ҉߸ͷྺ࢙ʢέϧΫϗϑεͷݪཧʣ • ҉߸Խʹ͍ͭͯʢݹయత҉߸ɺݱత҉߸ʣ • ҉߸ͷछྨʢDES, AES, RSAʣ •
ΈʢΞϧΰϦζϜʣ • Ͳͷ͙Β͍ղ͘ͷ͕େม͔ʢݎ࿚͞ʣ
༨ஊ
݈ೋ͘Μ͕ղ͍͍ͯͨ
81438162575788886766923577992357799761466612018296721242362536256184293 57069352457338978305971235639587050589890751497599290026879543541629595 92635382962929999373527393893015272028273730979383739039731352452762289 78273826989822154612213136061942130302141133310346191812161211316661312 01213147641231316644363838839939653563739348463763839331543288789762383 98563738365433423534644888463839384643839396476573748938457345564245126 34844668758248726826859992922649392276265849264516138123892991049225475 36852165445266876331694975626214662621647516621654962162336214611564862 15622262254897462256624662062148316547254564902302454621245456232245162 31242456512434518164012651251812424321651845424612432464915548961562265
40431451494816121614652254654546432451891591646484645464242115159121215 12512462155666156124173641635467148361593823787985896185613764728526928 789895656425257381651935613893981991374836873823541837167837898784e7654 34576345637173823138479813768765238613741311236937264827654778277325473 89892815242254251552253613131331511313143646519194546121649460060457379 04647674872778721829547482997923937452456353215212517628516424172154621 85215216524128156631535133635135624373234146484945914624245144655937545 24315155236472864625463258642165376526875214636421645296605158216631616 52986915561678675254116565125134664256670262166165145634667412563523120 00214153442514256547456176523156416857441156514555136515571345216351461 34235531457514555135253466527524543412352416451251485413551355251511561 71956616756817356813613736137253824162482752642783523816583271845624165 54631567452166375415676516659156451553145235234613252553232516852127126 45162157232131522136725132143364221234162322654656432322163726142321427 82631674245423512542541436542154615244235542594181494224535650656526246 39606225635206461462565251661258214063232062267640333141325426372633225 33482372736524321232563425383425332436237028563074332531002322305236045 23214566316478571435215145571630232235224232436247022602702856079625164 32235723674724715613526215523165518237142314221623715637261634153471
81438162575788886766923577992357799761466612018296721242362536256184293 57069352457338978305971235639587050589890751497599290026879543541629595 92635382962929999373527393893015272028273730979383739039731352452762289 78273826989822154612213136061942130302141133310346191812161211316661312 01213147641231316644363838839939653563739348463763839331543288789762383 98563738365433423534644888463839384643839396476573748938457345564245126 34844668758248726826859992922649392276265849264516138123892991049225475 36852165445266876331694975626214662621647516621654962162336214611564862 15622262254897462256624662062148316547254564902302454621245456232245162 31242456512434518164012651251812424321651845424612432464915548961562265
40431451494816121614652254654546432451891591646484645464242115159121215 12512462155666156124173641635467148361593823787985896185613764728526928 789895656425257381651935613893981991374836873823541837167837898784e7654 34576345637173823138479813768765238613741311236937264827654778277325473 89892815242254251552253613131331511313143646519194546121649460060457379 04647674872778721829547482997923937452456353215212517628516424172154621 85215216524128156631535133635135624373234146484945914624245144655937545 24315155236472864625463258642165376526875214636421645296605158216631616 52986915561678675254116565125134664256670262166165145634667412563523120 00214153442514256547456176523156416857441156514555136515571345216351461 34235531457514555135253466527524543412352416451251485413551355251511561 71956616756817356813613736137253824162482752642783523816583271845624165 54631567452166375415676516659156451553145235234613252553232516852127126 45162157232131522136725132143364221234162322654656432322163726142321427 82631674245423512542541436542154615244235542594181494224535650656526246 39606225635206461462565251661258214063232062267640333141325426372633225 33482372736524321232563425383425332436237028563074332531002322305236045 23214566316478571435215145571630232235224232436247022602702856079625164 32235723674724715613526215523165518237142314221623715637261634153471 ͜͜ʹ͋ΔeΛج४ʹύϥϝʔλ͕͔ΕͯΔʁ
81438162575788886766923577992357799761466612018296721242362536256184293 57069352457338978305971235639587050589890751497599290026879543541629595 92635382962929999373527393893015272028273730979383739039731352452762289 78273826989822154612213136061942130302141133310346191812161211316661312 01213147641231316644363838839939653563739348463763839331543288789762383 98563738365433423534644888463839384643839396476573748938457345564245126 34844668758248726826859992922649392276265849264516138123892991049225475 36852165445266876331694975626214662621647516621654962162336214611564862 15622262254897462256624662062148316547254564902302454621245456232245162 31242456512434518164012651251812424321651845424612432464915548961562265
40431451494816121614652254654546432451891591646484645464242115159121215 12512462155666156124173641635467148361593823787985896185613764728526928 789895656425257381651935613893981991374836873823541837167837898784e7654 34576345637173823138479813768765238613741311236937264827654778277325473 89892815242254251552253613131331511313143646519194546121649460060457379 04647674872778721829547482997923937452456353215212517628516424172154621 85215216524128156631535133635135624373234146484945914624245144655937545 24315155236472864625463258642165376526875214636421645296605158216631616 52986915561678675254116565125134664256670262166165145634667412563523120 00214153442514256547456176523156416857441156514555136515571345216351461 34235531457514555135253466527524543412352416451251485413551355251511561 71956616756817356813613736137253824162482752642783523816583271845624165 54631567452166375415676516659156451553145235234613252553232516852127126 45162157232131522136725132143364221234162322654656432322163726142321427 82631674245423512542541436542154615244235542594181494224535650656526246 39606225635206461462565251661258214063232062267640333141325426372633225 33482372736524321232563425383425332436237028563074332531002322305236045 23214566316478571435215145571630232235224232436247022602702856079625164 32235723674724715613526215523165518237142314221623715637261634153471 ύϥϝʔλB ύϥϝʔλA
͋Εʁ
ૹ৴ऀͷطͷใʢ࠶ܝʣ • ߹n • ެ։伴e n͔ΒجఈͷૉΛٻΊΕOK 2͔ͭ͠Β͑ͳ͍
ૹ৴ऀͷطͷใ • ߹n • ެ։伴e ίϨΒͱผʹ҉߸จຊମ͕ඞཁ 2͔ͭ͠Β͑ͳ͍ ʢ伴ʣ
81438162575788886766923577992357799761466612018296721242362536256184293 57069352457338978305971235639587050589890751497599290026879543541629595 92635382962929999373527393893015272028273730979383739039731352452762289 78273826989822154612213136061942130302141133310346191812161211316661312 01213147641231316644363838839939653563739348463763839331543288789762383 98563738365433423534644888463839384643839396476573748938457345564245126 34844668758248726826859992922649392276265849264516138123892991049225475 36852165445266876331694975626214662621647516621654962162336214611564862 15622262254897462256624662062148316547254564902302454621245456232245162 31242456512434518164012651251812424321651845424612432464915548961562265
40431451494816121614652254654546432451891591646484645464242115159121215 12512462155666156124173641635467148361593823787985896185613764728526928 789895656425257381651935613893981991374836873823541837167837898784e7654 34576345637173823138479813768765238613741311236937264827654778277325473 89892815242254251552253613131331511313143646519194546121649460060457379 04647674872778721829547482997923937452456353215212517628516424172154621 85215216524128156631535133635135624373234146484945914624245144655937545 24315155236472864625463258642165376526875214636421645296605158216631616 52986915561678675254116565125134664256670262166165145634667412563523120 00214153442514256547456176523156416857441156514555136515571345216351461 34235531457514555135253466527524543412352416451251485413551355251511561 71956616756817356813613736137253824162482752642783523816583271845624165 54631567452166375415676516659156451553145235234613252553232516852127126 45162157232131522136725132143364221234162322654656432322163726142321427 82631674245423512542541436542154615244235542594181494224535650656526246 39606225635206461462565251661258214063232062267640333141325426372633225 33482372736524321232563425383425332436237028563074332531002322305236045 23214566316478571435215145571630232235224232436247022602702856079625164 32235723674724715613526215523165518237142314221623715637261634153471 ύϥϝʔλB ύϥϝʔλA
݈ೋ͕ղ͍͍ͯͨ
ԾʹeΛϑΣϧϚʔૉͱ͢Δ 65537
ɾɾɾͰʁ
ૉҼղͰ͖Δʁʢ࠶ܝʣ pq = 1143368469Λຬͨ͢ p, qΛٻΊΑ • p =19059 •
q = 59991 ্ܻ͕͕ΕίϯϐϡʔλʔͰݫ͍͠ 10ܻ
81438162575788886766923577992357799761466612018296721242362536256184293 57069352457338978305971235639587050589890751497599290026879543541629595 92635382962929999373527393893015272028273730979383739039731352452762289 78273826989822154612213136061942130302141133310346191812161211316661312 01213147641231316644363838839939653563739348463763839331543288789762383 98563738365433423534644888463839384643839396476573748938457345564245126 34844668758248726826859992922649392276265849264516138123892991049225475 36852165445266876331694975626214662621647516621654962162336214611564862 15622262254897462256624662062148316547254564902302454621245456232245162 31242456512434518164012651251812424321651845424612432464915548961562265
40431451494816121614652254654546432451891591646484645464242115159121215 12512462155666156124173641635467148361593823787985896185613764728526928 789895656425257381651935613893981991374836873823541837167837898784e7654 34576345637173823138479813768765238613741311236937264827654778277325473 89892815242254251552253613131331511313143646519194546121649460060457379 04647674872778721829547482997923937452456353215212517628516424172154621 85215216524128156631535133635135624373234146484945914624245144655937545 24315155236472864625463258642165376526875214636421645296605158216631616 52986915561678675254116565125134664256670262166165145634667412563523120 00214153442514256547456176523156416857441156514555136515571345216351461 34235531457514555135253466527524543412352416451251485413551355251511561 71956616756817356813613736137253824162482752642783523816583271845624165 54631567452166375415676516659156451553145235234613252553232516852127126 45162157232131522136725132143364221234162322654656432322163726142321427 82631674245423512542541436542154615244235542594181494224535650656526246 39606225635206461462565251661258214063232062267640333141325426372633225 33482372736524321232563425383425332436237028563074332531002322305236045 23214566316478571435215145571630232235224232436247022602702856079625164 32235723674724715613526215523165518237142314221623715637261634153471 918ܻ 1137ܻ
ԾʹͰ͖ͨͱͯ͠ɾɾɾ
࣍ʹདྷΔͷ͕Α͏͘RSA
ͳΜͳΒ3ܻͰϠό͍ • d = 319ͩͬͯΑ • ෮߸͠Α͏ • ce ≡
M(mod n)Λຬͨ͢M͕ٻ·ΕOK 904319 ≡ M(mod 2627) 914ͷ319Λ2627Ͱׂͬͨ͋·Γ
ඓ݂ग़Δͱ͔ͦ͏͍͏Ϩϕϧ͡Όͳ͍
༨ஊ2
ͦͦղ͍ͯͨͷ RSAͳͷʁ
AɿΒΜ
RSAͰ͋ΔՄೳੑߴ͍ • ࠷ॳʹ൴Β͕ղ͍͍ͯͨ͑ • 1977ʹݒ͖ۚͰܝࡌ͞ΕͨRSA҉߸จ ͷ͕͑ “The ~ ossifrage”·Ͱͷ෦ The
magic words are squeamish ossifrage. To know is to know that you know nothing That is the true meaning of knowledge
༨ஊ3
ʮΑΖ͓͘͠ئ͍͠·͊͊͢ʂʂʯ
ղ͍ͨ҉߸Λ ೖྗ͍ͯ͠ΔΘ͚͡Όͳ͍
҉ࢉͨ͠ஈ֊Ͱ ϩοΫղআ͞ΕͯΔ
GPSʹิਖ਼ใೖΕΔ࣌ͷ ֬ೝը໘ͷΤϯλʔ
͓͠·͍
ࠓճͷ༰ͱ࣭ٙԠ • ҉߸ͷྺ࢙ʢέϧΫϗϑεͷݪཧʣ • ҉߸Խʹ͍ͭͯʢݹయత҉߸ɺݱత҉߸ʣ • ҉߸ͷछྨʢDES, AES, RSAʣ •
ΈʢΞϧΰϦζϜʣ • Ͳͷ͙Β͍ղ͘ͷ͕େม͔ʢݎ࿚͞ʣ