在公钥加密系统中,信息接收方 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) 。
加解密过程如下:
要证明 R S A RSA RSA 的正确性,即需证明 P ≡ P ( a b ) m o d n P \equiv P^{(ab)}\ mod\ n P≡P(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\}构成群 断言1:集合G={x∣ x∈Zn且gcd(x,n)=1}构成群
证明:对任意的 x , y ∈ G x,y\in G x,y∈G,有 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) r∣n,r∣(xy mod n),xy=kn+(xy mod n),可以推出 r ∣ x y r|xy r∣xy,从而 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 x∈G 可以利用扩展的欧几里得算法找到 x − 1 x^{-1} x−1 使得 x x − 1 ≡ 1 m o d n xx^{-1}\equiv 1\ mod\ n xx−1≡1 mod n,由于 x x − 1 − k n = 1 xx^{-1}-kn=1 xx−1−kn=1,假设 g c d ( x − 1 , n ) = r ≠ 1 gcd(x^{-1},n)=r\neq 1 gcd(x−1,n)=r=1,则 x x − 1 − k n = k ′ r ≠ 1 xx^{-1}-kn=k^{'}r\neq1 xx−1−kn=k′r=1,与假设矛盾,所以 g c d ( x − 1 , n ) = 1 gcd(x^{-1},n)=1 gcd(x−1,n)=1,即 x − 1 ∈ G x^{-1}\in G x−1∈G,即集合 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定理:对任意的正整数 x∈Zn∗ 有 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^*} x∈Zn∗ ,可知 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 xx1⋅xx2⋯xxϕ(n)≡x1⋅x2⋯xϕ(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) ab≡1 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 Pab≡P(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 ,任意的整数 x∈Zp 有 x(p−1)≡1 mod p
是当 n = p , ϕ ( n ) = ϕ ( p ) = p − 1 n=p,\phi(n)=\phi(p)=p-1 n=p,ϕ(n)=ϕ(p)=p−1时的 E u l e r Euler Euler 定理的特殊情形.。