生成强RSA密钥的提示

时间:2014-10-20 09:27:29

标签: cryptography rsa encryption-symmetric symmetric-key

是否有任何文档包括生成强RSA密钥的提示?

我的意思不仅仅是'使用带有-X标志的XXX实用程序'。

我的意思是理论上的一些规则。例如,模块n应不小于1024位等

有人可以告诉我吗?

2 个答案:

答案 0 :(得分:3)

在回答你的问题时,有这样的文件: ANSI X9.31标准要求强素数用于生成数字签名的RSA密钥。这使得使用Pollard的p-1算法的n = p q的因式分解在计算上是不可行的。然而,使用较新的算法(如Lenstra椭圆曲线分解和数字场筛选算法),强素数不能防止模数因子分解。

版本4 RSA实验室关于今日密码学的常见问题于1998年出版,可在此处找到ftp://ftp.rsa.com/pub/labsfaq/labsfaq4.pdf 请注意以下问题:

问题3.1.4。什么是强力素数并且它们是RSA必需的?

  

在有关RSA的文献中,经常有人建议在选择密钥对时,应该使用所谓的密钥对   “强”素数p和q产生模数n。强素数具有某些特性   产品难以通过特定的保理方法考虑因素;这些属性包括,例如,存在   p-1的大素因子和p + 1的大素因子。这些担忧的原因是一些因素   方法(例如,Pollard p-1和p + 1方法,见问题2.3.4)特别适用于素数p这样的   p-1或p + 1只有很小的因素;强大的素数抵抗这些攻击。   然而,过去十年的保理业务的进展似乎已经避免了强势素数的优势;   椭圆曲线分解算法就是这样一种进步。新的保理方法有很好的机会   强势素数的成功与“弱势”素数的成功。因此,单独选择传统的“强”素数并不是   显着提高安全性。选择足够大的素数是重要的。但是,没有危险   使用强大的素数,虽然生成强素数可能需要稍长的时间而不是任意素数。   有可能在未来开发出新的因子分解算法,它再次以质量为目标   某些属性。如果发生这种情况,选择强素数可能会再次有助于提高安全性。

问题3.1.5。在RSA中应该使用多大的密钥?

  

RSA密钥的大小通常是指模数n的大小。两个素数,p和q,组成了   模数,长度应大致相等;这使得模数比其中一个素数更难   比另一个小得多。如果选择使用768位模数,则质数应各自具有大约的长度   384位。如果两个质数非常接近(相同,例如,100 - 200位),或者更一般地说,如果   他们的差异接近任何预定的数额,那么就存在潜在的安全风险,但概率   两个随机选择的素数如此接近可以忽略不计。   RSA模数的最佳尺寸取决于一个人的安全需求。模数越大,越大   安全性,但RSA操作也较慢。首先应考虑选择模数长度   受保护数据的价值以及需要保护的时间长度,其次是一个人的潜力有多大   威胁可能是。

截至2010年,最大因子RSA数为768位长(232位十进制数)。通过最先进的分布式实现,其分解花费了大约1500个CPU年(两年的实时,在数百台计算机上)。这意味着,在此日期,没有考虑更大的RSA密钥。 实际上,RSA密钥通常为1024到2048位长。一些专家认为,1024位密钥可能在不久的将来变得易碎;很少有人认为在可预见的未来可能会破坏4096位密钥。因此,一般认为如果n足够大,RSA是安全的。

答案 1 :(得分:1)

关键强度通常遵循当前的现有计算能力。密钥大小只是安全计划的一部分。您还需要考虑密钥的安全存储以及更改密钥的频率。

基本上,您需要选择与您将使用的软件兼容的最宽的键宽。

目前,截至2014年,使用最低2048位RSA是一个很好的经验法则。它取决于:

  1. 速度和使用频率
  2. 你在保护什么
  3. 软件支持的最大宽度
  4. 如果您的钥匙破裂只是一个不会影响您的财务状况或健康的不便,那么您可能会在方便时犯错误。但如果您真的关心隐私,请使用最强的密钥(不低于2048)。

    一个好的文档是OpenPGP最佳实践

    https://we.riseup.net/riseuplabs+paow/openpgp-best-practices