是否有任何文档包括生成强RSA密钥的提示?
我的意思不仅仅是'使用带有-X标志的XXX实用程序'。
我的意思是理论上的一些规则。例如,模块n应不小于1024位等
有人可以告诉我吗?
答案 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是一个很好的经验法则。它取决于:
如果您的钥匙破裂只是一个不会影响您的财务状况或健康的不便,那么您可能会在方便时犯错误。但如果您真的关心隐私,请使用最强的密钥(不低于2048)。
一个好的文档是OpenPGP最佳实践
https://we.riseup.net/riseuplabs+paow/openpgp-best-practices