关于RSA的FAQ

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/82810244

一 RSA与质数

问:

随着越来越多的人在不断地生成RSA的密钥对,质数会不会被用光呢?

答:

不需要担心。

512比特能够容纳的质数数量大约为10的150次方,这个数量比整个宇宙中的原子的数量还要多。

我们假设地球上有100亿人,每个人每秒生成100亿个密钥对,那么在经过100亿年之后会生成多少个密钥对呢?

1年最多366天,也就是366*24*60*60=31622400秒,因此

100亿人*100亿个*31622400秒*100亿年=31622400000000000000000000000000000000个

这个数量比10的39次方还少,和512比特能够容纳的质数的数量,即10的150次方相比还相差很远。

别人生成质数组合和自己生成质数组合偶然撞车的可能性,事实上也可以认为是没有的。

二 RSA与质因数分解

问:

RSA加密的过程,需要对大整数进行质因数分解吗?

答:

RSA在加密、解密、密钥对的生成过程中都不需要对大整数进行质因数分解。

只有在需要由数N求p和q的密码破译过程中才需要对大整数进行质因数分解,因此RSA的设计是将质因数分解这种困难留给了密码破译者。

问:

RSA的破译与大整数的质因数分解是等价的吗?

答:

2004年Alexander May证明了求RSA的私钥和对N进行质因数分解是等价的。

三 RSA的长度

问:

要抵御质因数分解,N的长度需要达到多少比特呢?

答:

N无论有多长,总有一个天能够被质因数分解,因此现在的问题是,在现实的时间内N是否能够被质因数分解。随着计算机性能的提高,对一定长度的整数进行质因数分解所需要的时间会逐步缩短,如果大型组织或国家投入其计算资源,则时间会进一步缩短。

在这一方面,一组被称为“RSA数”的整数可以作为参考。这些整数是截止2007年当时的RSA公司所举办的RSA Challenge活动中给出的题目,可以作为衡量质因数分解难度的一个指标。

RSA Challenge到2007年就结束了,截止2009年,有公开记录的被成功分解的最长的RSA数为RSA-768,就是下面这个232位的整数。

这个数是下面两个数的乘积

当然,有些人或组织在成功分解RSA数之后未必会将其公布出来,因此上面的证据只能说明“这么长的数能够被分解”,而不能说明“比这个更长的数就不能被分解”。

虽然只是一种预测,但在投入了非常大量的计算资源的情况下,现在可能已经能够分解长度为1024比特的整数了,但是长度为2048比特的整数目前看来还是安全的。因此,在一段时期内,下面这个RSA-2048(617位)的整数应该是不大可能被分解的。

随着计算机技术的进步,以前被认为是安全的密码会被破译,这一现象称为密码劣化。

针对这一点:NIST给出了如下方针。

1024比特的RSA不应该被用于新的用途。

2048比特的RSA可在2030年之前被用于的新的用途

4096比特的RSA在2031年之后仍可被用于新的用途

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/82810244
FAQ
RSA