RSA私钥解密的证明详解--个人笔记

RSA私钥解密的证明详解–个人笔记

本文主要参照了阮一峰的博文RSA算法原理(二),并添加了一些个人注解。

RSA的加密规则: m e ≡ c ( m o d n ) \color{blue}{m^e \equiv c\pmod n} mec(modn)
RSA的解密规则: c d ≡ m ( m o d n ) \color{red}{c^d \equiv m\pmod n} cdm(modn)
约束条件及规则说明:

  1. m为明文字符,c为密文字符
  2. m为0到n-1之间的数值
  3. n=pq,p,q为素数
  4. φ(n)=(p-1)*(q-1) [根据欧拉定理]
  5. e与φ(n)互素
  6. e d ≡ 1 ( m o d φ ( n ) ) ed \equiv 1\pmod {φ(n)} ed1(modφ(n))

要根据加密规则,数论及欧拉定理,来证明解密公式正确性: c d ≡ m ( m o d n ) \color{red}c^d \equiv m\pmod n cdm(modn)

证明过程

step1:

根据加密规则公式 m e ≡ c ( m o d n ) m^e \equiv c\pmod n mec(modn),可以得出
c = m e − k n \Large c=m^e - kn c=mekn

step2:

将上述的c代入解密公式,得到 ( m e − k n ) d ≡ m ( m o d n ) \Large (m^e-kn)^d \equiv m\pmod n (mekn)dm(modn)

step3:

将上述方程式的左侧用二项式定理展开, ( m e − k n ) d = C d 0 m e d ( − k n ) 0 + C d 1 m d − 1 ( − k n ) 1 + C d 2 m d − 2 ( − k n ) 2 + ⋯ + C d d m 0 ( − k n ) d (m^e-kn)^d = C_d^0m^{ed}(-kn)^0 + C_d^1m^{d-1}(-kn)^1+C_d^2m^{d-2}(-kn)^2 + \cdots + C_d^dm^0(-kn)^d (mekn)d=Cd0med(kn)0+Cd1md1(kn)1+Cd2md2(kn)2++Cddm0(kn)d
可以发现,由于第二项开始都是n的倍数,所以step2的证明可以简化为 m e d ≡ m ( m o d n ) \Large m^{ed} \equiv m\pmod n medm(modn)

step4:

由于 e d ≡ 1 ( m o d φ ( n ) ) ed \equiv 1\pmod {φ(n)} ed1(modφ(n)) ,所以
e d = h φ ( n ) + 1 \Large ed = hφ(n)+1 ed=hφ(n)+1

step5:

上述结论代入step3的公式,得到
m h φ ( n ) + 1 ≡ m ( m o d n ) \Large m^{ hφ(n)+1} \equiv m\pmod n mhφ(n)+1m(modn)

step6:

上述公式的证明需要分为两种情况。

(1)m与n互质

根据欧拉定理 m φ ( n ) ≡ 1 ( m o d n ) m^{φ(n)} \equiv 1\pmod n mφ(n)1(modn),可以得出 m φ ( n ) = k n + 1 m^{φ(n)} = kn+1 mφ(n)=kn+1,由二项式展开定理,可以得出下述结论:
( m φ ( n ) ) h × m ≡ m ( m o d n ) \Large (m^{ φ(n)})^h\times m \equiv m\pmod n (mφ(n))h×mm(modn)
step5的公式得到证明。

(2)m与n不是互质关系

此时,由于n等于质数p和q的乘积,所以m必然等于kp或kq。
以 m = kp为例,这时k与q必然互质。如果k与q 不为互质关系,则k=tq, m= tqp=tn, 但是按照RSA规范, m ∈ ( 0... n − 1 ) m\in(0...n-1) m(0...n1), m < n的,所以k与q肯定是互质关系的。由于k与q互质,怕与q互质,kp与q肯定互质,则根据欧拉定理,下面的式子成立:
( k p ) q − 1 ≡ 1 ( m o d q ) \Large (kp)^{ q-1} \equiv 1\pmod q (kp)q11(modq)
进一步扩展,可得:
[ ( k p ) q − 1 ] h ( p − 1 ) × k p ≡ k p ( m o d q ) \Large [(kp)^{ q-1}]^{h(p-1)}\times kp \equiv kp\pmod q [(kp)q1]h(p1)×kpkp(modq)

( k p ) e d ≡ k p ( m o d q ) \Large (kp)^{ed} \equiv kp\pmod q (kp)edkp(modq)
进一步改写成等式:
( k p ) e d = k p + t q \Large (kp)^{ed} = kp+tq (kp)ed=kp+tq
显然,t能被p整除, 即t=t’p,可以得出
( k p ) e d = k p + t ′ p q \Large (kp)^{ed} = kp+t'pq (kp)ed=kp+tpq
因为m=kp, n=pq, 最后得出
m e d ≡ m ( m o d n ) \Large m^{ed} \equiv m\pmod n medm(modn)
解密公式得到完全证明。


你可能感兴趣的:(区块链)