SlideShare a Scribd company logo
彼女の作り方 RSA 暗号を暗算で解く
 
彼女の作り方 数学オリンピックの代表落ちする RSA 暗号を手で解く RSA 暗号を暗算で解く どう考えても3が一番難しい ↓ 3 ができれば 1,2 は大丈夫!
RSA 暗号 「二つの大きい素数の積から,もとの素数を求めることは困難である」ということを利用した公開鍵暗号
鍵生成 素数 p, q(p ≠ q) を用意する n = p * q ,  φ = (p – 1) * (q – 1) φ との最大公約数が 1 になるような  e  を選ぶ d * e ≡ 1 (mod φ)  である最小の d を求める ( d*e を n で割った余りが 1 ) n, e を公開鍵, p, q, d を秘密鍵とする
暗号化と復号 平文 m から暗号文 c を生成する c = m e  mod n 暗号文 c から平文 m に復号する m = c d  mod n
暗号解読 公開鍵 (n, e) から秘密鍵 (p, q, d) を割り出すには? n = p * q ->  素因数分解 φ = (p – 1) * (q – 1), d * e ≡ 1 (mod φ) ->   d * e + (-x) * φ= 1 ->  拡張ユークリッド互除法   
素因数分解を暗算 適当な整数 k を思い浮かべる (素数だとわかっていればなお良い) n  を k で割ってみる(暗算) 割り切れたら , p = k, q = n / k 割り切れなかったら, 1 へ戻る
運と気合!
拡張ユークリッド互除法を暗算 a = φ, b = e  とおく 右辺が 1 になるまで頑張る(暗算) r 0  :  1 * a + 0 * b = φ r 1  : 0 * a + 1 * b = e r 2  = r 0  – (r 0 /r 1 )*r 1  : 1 * a – (φ/e) * b = (φ mod e) … r k  = r k-2  – (r k-2 /r k-1 ) * r k-1  : x * a + y * b = z … r n  : -(d*e/φ) * a +  d  * b = 1
気合!
無事,秘密鍵 p, q, d を 求められました!
ここまで来たあなたなら, c d  mod n から 平文を復号するなんて簡単!
これで今日からモテライフ!

More Related Content

PDF
公開鍵暗号1: RSA暗号
PDF
公開鍵暗号(1): RSA暗号
PDF
AtCoder Regular Contest 030 解説
PDF
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
PDF
K2PC Div1 E 暗号化
PDF
AtCoder Regular Contest 026 解説
PPTX
SICP
 
PDF
RUPC2014_Day2_K
公開鍵暗号1: RSA暗号
公開鍵暗号(1): RSA暗号
AtCoder Regular Contest 030 解説
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
K2PC Div1 E 暗号化
AtCoder Regular Contest 026 解説
SICP
 
RUPC2014_Day2_K

What's hot (20)

PPT
アルゴリズムイントロダクション15章 動的計画法
DOC
04.第四章用Matlab求偏导数
PDF
CODE FESTIVAL 2015 予選B 解説
ODP
情報オリンピック夏合宿発表
PDF
Sanpo
PDF
公開鍵暗号2: NP困難性
PDF
日曜数学会_ガロア体上の符号とQRコード_Kuma
PDF
【展開用】日曜数学会 Sinc関数の積分について
PDF
最小カットを使って「燃やす埋める問題」を解く
PDF
AtCoder Regular Contest 046
PPTX
トーラスと平面の部分集合のホモロジー
PDF
表現行列問題
PPTX
表現行列の問題
PPTX
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~
PPTX
3次元の凸包を求める
PDF
abc032
PDF
Pool
PDF
Gcd
アルゴリズムイントロダクション15章 動的計画法
04.第四章用Matlab求偏导数
CODE FESTIVAL 2015 予選B 解説
情報オリンピック夏合宿発表
Sanpo
公開鍵暗号2: NP困難性
日曜数学会_ガロア体上の符号とQRコード_Kuma
【展開用】日曜数学会 Sinc関数の積分について
最小カットを使って「燃やす埋める問題」を解く
AtCoder Regular Contest 046
トーラスと平面の部分集合のホモロジー
表現行列問題
表現行列の問題
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~
3次元の凸包を求める
abc032
Pool
Gcd
Ad

Similar to Rsa暗号で彼女が出来るらしい (20)

PDF
RSA鍵生成脆弱性ROCAの紹介
KEY
Summer seminar
PDF
新しい暗号技術
PDF
楕円曲線入門 トーラスと楕円曲線のつながり
PDF
暗認本読書会13 advanced
PDF
楕円曲線と暗号
PDF
これは楽しい数学マジック(その1)
PDF
Seccamp2020L1
PDF
CRYPT+YOU, UNDERSTAND TODAY!
PPT
Provable Security1
PDF
暗号文のままで計算しよう - 準同型暗号入門 -
PDF
予想.pdf
PDF
RSA暗号運用でやってはいけない n のこと #ssmjp
KEY
20120922 勉強会スライド
PDF
暗号技術入門 秘密の国のアリス 総集編
PDF
これは楽しい数学マジック(その3)
PDF
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
PDF
Four op
PDF
暗号化の歴史と技術  〜古代の暗号から次世代の暗号技術について〜
PPTX
witchs_key_party.pptx
RSA鍵生成脆弱性ROCAの紹介
Summer seminar
新しい暗号技術
楕円曲線入門 トーラスと楕円曲線のつながり
暗認本読書会13 advanced
楕円曲線と暗号
これは楽しい数学マジック(その1)
Seccamp2020L1
CRYPT+YOU, UNDERSTAND TODAY!
Provable Security1
暗号文のままで計算しよう - 準同型暗号入門 -
予想.pdf
RSA暗号運用でやってはいけない n のこと #ssmjp
20120922 勉強会スライド
暗号技術入門 秘密の国のアリス 総集編
これは楽しい数学マジック(その3)
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
Four op
暗号化の歴史と技術  〜古代の暗号から次世代の暗号技術について〜
witchs_key_party.pptx
Ad

More from Yosuke Onoue (19)

PDF
Angular 2のRenderer
PDF
アニメーション(のためのパフォーマンス)の基礎知識
PDF
AngularJSでデータビジュアライゼーションがしたい
PDF
GDG DevFest Kobe Firebaseハンズオン勉強会
PDF
Polymerやってみた
PDF
asm.jsとWebAssemblyって実際なんなの?
PDF
AngularFireで楽々バックエンド
PDF
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
PDF
AngularJSでの非同期処理の話
PDF
社会的決定とAHP
PDF
CUDA 6の話@関西GPGPU勉強会#5
PDF
Anaconda & NumbaPro 使ってみた
PDF
PythonistaがOCamlを実用する方法
KEY
What's New In Python 3.3をざっと眺める
KEY
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
KEY
PyOpenCLによるGPGPU入門
PPTX
数理最適化とPython
PPTX
201010ksmap
PPTX
PyCUDAの紹介
Angular 2のRenderer
アニメーション(のためのパフォーマンス)の基礎知識
AngularJSでデータビジュアライゼーションがしたい
GDG DevFest Kobe Firebaseハンズオン勉強会
Polymerやってみた
asm.jsとWebAssemblyって実際なんなの?
AngularFireで楽々バックエンド
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSでの非同期処理の話
社会的決定とAHP
CUDA 6の話@関西GPGPU勉強会#5
Anaconda & NumbaPro 使ってみた
PythonistaがOCamlを実用する方法
What's New In Python 3.3をざっと眺める
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門
数理最適化とPython
201010ksmap
PyCUDAの紹介

Rsa暗号で彼女が出来るらしい