(1) 选择密文(chosen-ciphertext)攻击:
令密文为 c=m^e mod n ; //其中公钥为(e,n),私钥为d;
明文为m=c^d mod n ;
选择密文攻击即在不知道密钥d的情况下,最终能得到明文m:
<1>攻击者首先任选 r<n ,并且计算如下参数:
x=r^e mod n ; (那么利用RSA的加密解密的原理我们就知道有:r=x^d mod n)
y=x*c mod n ;
t=r^-1 mod n;
<2>攻击者向私钥d的拥有者发送 y, 使其对 y 签名,得到 u =y^d mod n ;
<3>那么就有:
t*u =( r^-1 mod n) *(y^d mod n )
=(r^-1 * y^d ) mod n 又r=x^d mod n
=[(x^-d)* (x*c)^d ] mod n
= [(x^-d) *(x^d) *(c^d)] mod n
=(c^d) mod n
=m (即恢复出明文m即恢复出明文m)