rsa加密原理 RSA加密算法原理是什么
1.首先要用概率算法来验证随机生成的大整数是否是素数。这种算法速度更快,可以消除大部分非质数。如果一个数通过了这个测试,那么应该使用一个精确的测试来确保它确实是一个质数。
2.另外,这样求出的P和Q也要满足一定的要求。首先,它们不能靠得太近。而且p-1或者q-1的因子也不能太小,否则N分解的很快。
3.况且求素数的算法也不能给攻击者任何信息。这些质数是怎么找到的?尤其是生成随机数的软件一定要非常好。需求是随机的,不可预测的。这两个要求是不一样的。一个随机过程可能产生一系列不相关的数字,但如果有人能预测(或部分预测)这个序列,那么它就是不可靠的。比如有一些非常好的随机数算法,但是都已经发表了,所以不能用,因为如果一个攻击者能猜出P和Q的一半比特,那么他就能很容易地计算出另一半。
4.此外,密钥D必须足够大。1990年证明了如果P大于Q小于2q(这是很常见的情况),d5。最后,RSA的原理保证D和E一定是因子为(p-1)(q-1)的互质,所以D和E都不能。