是否有任何文档,包括生成强 RSA 密钥的提示?
我的意思不仅仅是“使用带有 -X 标志的 XXX 实用程序”。
我的意思是理论上的一些规则。例如,模块 n 应不小于 1024 位等。
谁能告诉我?
是否有任何文档,包括生成强 RSA 密钥的提示?
我的意思不仅仅是“使用带有 -X 标志的 XXX 实用程序”。
我的意思是理论上的一些规则。例如,模块 n 应不小于 1024 位等。
谁能告诉我?
在回答您的问题时,有这样的文档: ANSI X9.31 标准要求使用强素数来生成数字签名的 RSA 密钥。这使得使用 Pollard 的 p-1 算法对 n = pq 进行因式分解在计算上是不可行的。然而,强素数并不能防止使用较新的算法(例如 Lenstra 椭圆曲线分解和数域筛算法)进行模分解。
第 4 版RSA 实验室关于当今密码学的常见问题解答于 1998 年出版,可在此处找到ftp://ftp.rsa.com/pub/labsfaq/labsfaq4.pdf 请注意以下问题:
问题 3.1.4。什么是强素数,它们对于 RSA 是必需的吗?
在有关 RSA 的文献中,经常建议在选择密钥对时,应使用所谓的“强”素数 p 和 q 来生成模数 n。强素数具有某些特性,使得乘积 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 是安全的。
密钥强度通常遵循当前最先进的计算能力。密钥大小只是安全计划的一部分。您还需要考虑密钥的安全存储以及更改密钥的频率。
基本上,您需要选择与您将使用的软件兼容的最宽键宽。
目前,从 2014 年起使用最低 2048 位 RSA 是一个很好的经验法则。它确实取决于:
如果您的密钥被破解只是一种不便,不会影响您的财务或健康,那么您可能会为了方便而犯错。但如果你真的很在意隐私,就用你能忍受的最强的钥匙(不少于2048)。
一个好的文档是 OpenPGP Best Practices
https://we.riseup.net/riseuplabs+paow/openpgp-best-practices