30. RSA暗号
公開 暗号として、現在最も使用されている実装
その暗号の強度の保証に、素数のかけ算と素因数分解の不可逆性を
使用している
アルゴリズム:二つの素数を掛け合わせた巨大な合成数による剰余
計算
:二つの巨大な素数をp,qとし、N=pgとする
暗号 :N、LCM(p-1,q-1)=Lと互いに素である2以上L未満の数
復号 :N、DE mod L = 1 を満たす、2以上L未満の数D
31. RSA暗号の仕組み
暗号化
公開 ペアE,Nを使って次の計算をする
C = ME mod N
復号化
秘密 ペアD,Nを使って次の計算をする
M = CD mod N
32. なぜRSAは を公開できるのか
C= ME mod N
M= C D mod N
攻撃するには、公開 から秘密 を割り出すこと
が出来ればいい
EとNから、Dを求めることが可能か?
実はそれがメチャクチャ難しいことが、RSA
の安全性の根拠なのです
33. ペアのおさらい
N = pq (pとqは、巨大な素数)
L は p-1 と q-1 の最小公倍数
Eは 1 < E < Lとなる、EとLの最大公約数が1とな
る数字(互いに素)
Dは、1 < D < Lとなる、ED mod L = 1 を満たす
数
34. EとNからDを求めるには
C = ME mod Nを逆算する
この計算は、離散対数を求めるという非常に難しい問題
ED mod L = 1 を解く
しかし、Lは公開されていない(pとqがわからない)
Nからpとqを求める
二つの素数からなる合成数を素因数分解するとは難しい
一方向性関数という、逆算が困難な計算
35. を公開することによる問題
暗号化の は、誰もが知ることが可能
つまり、暗号の送信者へのなりすましが
可能である
Man in the Middle 攻撃という
どのようにして、送信者を保証するのか?