根據上一篇的數學理論,可以證明RSA演算法的解密是正確的
先把RSA產生key的過程再寫一次
1.
選擇兩相異質數p,q,求得N=pq
2.
ϕ(N)=(p-1)(q-1)
3.
選一數e當公鑰1≤e<ϕ(N),求出模反原數,ed≡1(modϕ(N))
接下來就能加解密了
訊息為
m
加密後為
C,
C=memodN
解密方法
CdmodN
也就是要證明
med≡m(modN)
分成m=0,m≠0來討輪
m=0時,0ed≡0(modN)
med≡m(modN)
m≠0時
ed≡1(modϕ(N))
ed≡1(mod(p-1)(q-1))
⇒ed≡1(mod(p-1)),ed≡1(mod(q-1))
可以看成ed除以(p-1)的餘數是1,把它寫成ed=k(p-1)+1
med=mk(p-1)m=(mp-1)km
再利用費馬小定理
mp-1≡1(modp)
med=(mp-1)km≡1km≡m(modp)
同理
med≡m(modq)
p,q為質數,lcm(p,q)=pq
⇒med≡m(modpq)
⇒med≡m(modN)
沒有留言:
張貼留言