RSA推导

在公钥加密系统中,信息接收方 A l i c e Alice Alice 产生公钥私钥对 ( a , b ) (a,b) (a,b) a a a 为私钥 A l i c e Alice Alice 持有, b b b 为公钥 B o b Bob Bob 持有,公钥对任何人可见,私钥仅信息接收方 A l i c e Alice Alice 可见,信息发送方 B o b Bob Bob 发送信息 M M M 时,利用加密函数 e K ( x ) e_K(x) eK(x) 对原信息加密,信息接收方 A l i c e Alice Alice 利用解密函数 d K ( x ) d_K(x) dK(x) 对信息进行解密。其中 K = ( n , p , q , a , b ) K=(n,p,q,a,b) K=(n,p,q,a,b)
加解密过程如下:

  1. A l i c e Alice Alice 选择两个大素数 p , q p,q p,q,且令 n = p q n = pq n=pq,,产生公钥私钥对 ( a , b ) (a,b) (a,b) 使得 a b ≡ 1   m o d   ϕ ( n ) ab\equiv 1\ mod\ \phi (n) ab1 mod ϕ(n),其中 n , b n,b n,b 为公钥, p , q , a p,q,a p,q,a 为私钥。
  2. B o b Bob Bob 发送明文信息 P P P,利用加密函数 e K ( x ) = x b   m o d   n e_K(x)=x^b\ mod\ n eK(x)=xb mod n 把明文加密成密文 C = P b   m o d   n C=P^b\ mod \ n C=Pb mod n
  3. A l i c e Alice Alice 利用解密函数 d K ( x ) = x a   m o d   n d_K(x)=x^a\ mod \ n dK(x)=xa mod n 对密文 C C C 进行解密 P = C a   m o d   n P=C^a\ mod \ n P=Ca mod n
    (注:这里 ϕ ( n ) \phi(n) ϕ(n) 为小于 n n n 的正整数中与 n n n 互素的数的个数,即数论中的欧拉函数)

要证明 R S A RSA RSA 的正确性,即需证明 P ≡ P ( a b )   m o d   n P \equiv P^{(ab)}\ mod\ n PP(ab) mod n

断 言 1 : 集 合 G = { x ∣   x ∈ Z n 且 g c d ( x , n ) = 1 } 构 成 群 断言1:集合G=\{x|\ x\in \mathbb{Z_n}且gcd(x,n)=1\}构成群 1G={x xZngcd(x,n)=1}
证明:对任意的 x , y ∈ G x,y\in G x,yG,有 g c d ( x y   m o d   n , n ) = 1 gcd(xy\ mod\ n,n)=1 gcd(xy mod n,n)=1,假设 g c d ( x y   m o d   n , n ) = r ≠ 1 gcd(xy\ mod\ n,n)=r\neq 1 gcd(xy mod n,n)=r=1,因为 g c d ( x , n ) = 1 , g c d ( y , n ) = 1 gcd(x,n)=1,gcd(y,n)=1 gcd(x,n)=1,gcd(y,n)=1 所以 g c d ( x y , n ) = 1 gcd(xy,n)=1 gcd(xy,n)=1,由于 r ∣ n , r ∣ ( x y   m o d   n ) , x y = k n + ( x y   m o d   n ) r|n,r|(xy\ mod\ n),xy=kn+(xy\ mod\ n) rn,r(xy mod n),xy=kn+(xy mod n),可以推出 r ∣ x y r|xy rxy,从而 g c d ( x y , n ) ≠ 1 gcd(xy,n)\neq 1 gcd(xy,n)=1,与已知条件矛盾,故 g c d ( x y   m o d   n , n ) = 1 gcd(xy\ mod\ n,n)=1 gcd(xy mod n,n)=1,从而 ( x y   m o d   n ) ∈ G (xy\ mod\ n)\in G (xy mod n)G,因而 G G G Z n \mathbb{Z_n} Zn 上的乘法闭包,对于任意的 x ∈ G x\in G xG 可以利用扩展的欧几里得算法找到 x − 1 x^{-1} x1 使得 x x − 1 ≡ 1   m o d   n xx^{-1}\equiv 1\ mod\ n xx11 mod n,由于 x x − 1 − k n = 1 xx^{-1}-kn=1 xx1kn=1,假设 g c d ( x − 1 , n ) = r ≠ 1 gcd(x^{-1},n)=r\neq 1 gcd(x1,n)=r=1,则 x x − 1 − k n = k ′ r ≠ 1 xx^{-1}-kn=k^{'}r\neq1 xx1kn=kr=1,与假设矛盾,所以 g c d ( x − 1 , n ) = 1 gcd(x^{-1},n)=1 gcd(x1,n)=1,即 x − 1 ∈ G x^{-1}\in G x1G,即集合 G G G 构成群。
为了简便,我们记集合 G G G 为 模 n n n 上的整数乘法群 Z n ∗ \mathbb{Z_n^*} Zn
E u l e r 定 理 : 对 任 意 的 正 整 数   x ∈ Z n ∗   有   x ϕ ( n ) ≡ 1   m o d   n Euler 定理:对任意的正整数\ x\in \mathbb{Z_n^*}\ 有\ x^{\phi(n)}\equiv 1\ mod\ n Euler xZn  xϕ(n)1 mod n

证明:假设群 G = { x 1 , x 2 , ⋯   , x ϕ ( n ) } G=\{x_1,x_2,\cdots,x_{\phi(n)}\} G={x1,x2,,xϕ(n)}
x ∈ Z n ∗ x\in \mathbb{Z_n^*} xZn ,可知 x G = { x x 1 , x x 2 , … , x x ϕ ( n ) } = G xG=\{xx_1,xx_2,\dots,xx_{\phi(n)}\}=G xG={xx1,xx2,,xxϕ(n)}=G,因为显然对于 x 1 ≠ x 2 x_1\neq x_2 x1=x2 x x 1 ≠ x x 2 xx_1\neq xx_2 xx1=xx2,即 x G xG xG G G G 的一个置换,于是 x x 1 ⋅ x x 2 ⋯ x x ϕ ( n ) ≡ x 1 ⋅ x 2 ⋯ x ϕ ( n )   m o d   n xx_1\cdot xx_2\cdots xx_{\phi(n)}\equiv x_1\cdot x_2 \cdots x_{\phi(n)}\ mod \ n xx1xx2xxϕ(n)x1x2xϕ(n) mod n,即有 x ϕ ( n ) ≡ 1   m o d   n x^{\phi(n)}\equiv 1\ mod\ n xϕ(n)1 mod n
综上 E u l e r Euler Euler 定理得证。
R S A RSA RSA 公钥加密系统中,我们知道 a b ≡ 1   m o d   ϕ ( n ) ab\equiv 1 \ mod\ \phi(n) ab1 mod ϕ(n),即 a b = k ϕ ( n ) + 1 ab=k\phi(n)+1 ab=kϕ(n)+1,所以 由 E u l e r Euler Euler 定理知 P a b ≡ P ( k ϕ ( n ) + 1 ) ≡ P   m o d   n P^{ab}\equiv P^{(k\phi(n)+1)}\equiv P\ mod\ n PabP(kϕ(n)+1)P mod n。综上 R S A RSA RSA 的正确性得证。

值得一提的是,费马小定理
F e r m a t 小 定 理 : 对 素 数   p   , 任 意 的 整 数   x ∈ Z p   有   x ( p − 1 ) ≡ 1   m o d   p Fermat小定理:对素数\ p\ ,任意的整数\ x\in \mathbb{Z_p}\ 有\ x^{(p-1)}\equiv 1\ mod\ p Fermat p , xZp  x(p1)1 mod p
是当 n = p , ϕ ( n ) = ϕ ( p ) = p − 1 n=p,\phi(n)=\phi(p)=p-1 n=p,ϕ(n)=ϕ(p)=p1时的 E u l e r Euler Euler 定理的特殊情形.。

你可能感兴趣的:(RSA推导)