-
RSA算法大概描述:
密钥产生:
选择p,q(p,q不相等且均为素数);
计算n=p*q ;
计算 ;
选择整数e,满足条件:gcd(,e)=1; 1<e< ;
计算 ;
公钥PU={ e,n } ;
私钥PR={ d,n } ;
加密过程:
明文:M<n
密文:C=
解密过程:
密文:C
明文:M=
2. 证明题目分析:
假设RSA算法解密过程是正确的,则应有:
左式=M
右式===
即:=M
其中算法的成立条件为:e和d模是乘法互逆,即ed的关系表示为:
ed mod=1,另一种表达方式为:
存在整数k满足ed=k+1
所以,必须证明:
==M
-
具体证明过程:
在此需考虑两种情况:
情况1:M和p非互素
此时p整除M,即M mod p=0,
所以,= M mod p=0
情况2:M和p互素
由欧拉定理:
= [M* mod p
= [M*]mod p
=(M mod p)*
=(M mod p)*
=M mod p
结合情况1和2:
= M mod p
因此,- M mod p=[] mod p=0
即能被p整除
同理,该式也能被q整除
又因p,q为不相等的素数,故必存在一个整数r,
使得
即] mod n=0
所以mod n=M mod n
又因算法要求M<n ,即M mod n=M
综上
==M
RSA解密算法正确性得证