版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/82729044
一 对RSA的攻击
1 密码破译者知道的信息
密文:可以通过窃听来获取。
数E和N:公钥是公开的信息,因此密码破译者知道E和N。
2 密码破译者不知道的信息
明文:需要破译的内容。
数D:私钥至少D是不知道的信息。
其他:密码破译者不知道生成密钥对时所使用的p、q和L
二 通过密文来求明文
RSA的加密过程如下。
密文=明文的E次方 mod N
由于密码破译者知道密文、E和N,那么有没有一种方法能够用E次方 mod N之后的密文求出原来的明文呢?如果没有 mod
N的话,即:
密文=明文的E次方
通过密文求明文的难度不大,因为这可以被看作是一个求对数的问题。
但是,加上 mod N之后,求明文就变成了求离散对数的问题,这是非常困难的,因为人类还没有发现求离散对数的高效算法。
三 通过暴力破解来找出D
只要知道数D,就能够对密文进行解密。因此,可以逐一尝试有可能作为D的数字来破译RSA,也就是暴力破解法。暴力破解的难度会随着D的长度增加而变大,当D足够长时,就不可能在现实的时间内通过暴力破解找出数D。
现在,RSA中所使用的p和q的长度都在1024比特以上,N的长度为2048比特以上。由于E和D的长度可以和N差不多,因此要找出D,就需要进行2048比特以上的暴力破解。要在这样的长度下用暴力破解找出D是极其困难的。