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

3,205 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,205
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

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

×