为RSA加密算法生成大素数

时间:2011-12-08 17:40:23

标签: algorithm math encryption rsa primes

如何为RSA生成大素数?

如您所知,我们需要大质数来为RSA加密算法制作私钥和公钥。

如果我想通过任何筛选算法来实现它,需要花费很多时间。 什么是最好的方式?

3 个答案:

答案 0 :(得分:2)

Miller Rabin可能的主要测试(更准确地说是复合性测试),通常用于工业强度素数。有一些方法可以生成可证明的素数,例如Maurer的算法。

关于素数的理论和实施的优秀资源是here

答案 1 :(得分:2)

如果你想制作一些大素数,你可以使用pycrypto模块在python中编写一个程序。此帖子将有所帮助Using RSA in Python

from Crypto.PublicKey import RSA
RSAkey = RSA.generate(1024)
print getattr(RSAkey.key, 'n')
print getattr(RSAkey.key, 'p')
print getattr(RSAkey.key, 'q')

答案 2 :(得分:1)

最好使用库来进行加密例程。有几个,它们充满了微妙的问题,希望其中大部分都在现有的实现中得到修复,而且还要在新的实现中修复。

然而,我已经玩过使用Python和GMP生成素数:

http://stromberg.dnsalias.org/svn/huge-prime/trunk/

简而言之,试用除法对于小数字来说是最好的,米勒 - 拉宾作为快速过滤/测试可以获得更大的数字,但是你有时仍然会使用试验部门获得保证素数。