我认为大约5年前1024位RSA密钥被认为是安全的,但是我认为这不再是事实。是否仍然可以依赖2048或4096键,或者同时获得了太多的计算能力?

编辑:让我们假设一个适当的填充策略。另外,我同时询问签名的安全性和数据加密的安全性。

评论

确实是个好问题

防范什么?我,脚本小子,NSA。答案取决于威胁。安全多久?一天,一年,五十年?

#1 楼

自2000年以来,在给定的$ \ text {year} $上,没有公开使用大于$(\ text {year}-2000)\ cdot 32 + 512 $位的RSA密钥,而不是利用密钥缺陷生成器(在性能不佳的设备(包括智能卡)中观察到的陷阱)。这种对学术保理工作进度的线性估计不应用于选择密钥长度,以免受到高置信度的攻击(或等效地符合该目标的标准),这是本网站在密钥长度上最好的目标。 br />当前的保理记录是2020年2月下旬的829位RSA-250,请参阅CADO-NFS团队的摘要。那是在2019年12月发布795位RSA-240之后不久,请参阅详细论文。据我们所知,黑客一直落后几年(见下文)。另一方面,可以想象的是,资金雄厚的政府机构在保理业务中领先许多年。他们拥有硬件和CPU时间。并且周围有太多的1024位密钥,因此很可能值得打破这些密钥。对于国家安全局(NSA)提出的密码分析突破,这是为数不多的可信和推测性的解释之一。另外,专用硬件有一天可能会改变图片。例如正如Daniel Bernstein和Tanja Lange概述的那样:Batch NFS(在SAC 2014程序中;也在Cryptology ePrint Archive中,2014年11月)。或在不久的将来,可用于密码分析的量子计算机。
到2020年,对于仍使用1024位RSA保护商业资产的系统,主要的实际威胁通常不是分解公共模数;而是通过其他手段(例如黑客入侵)和对颁发给不应信任的实体的数字证书的信任来渗透IT基础架构。使用2048位或更多位,我们可以在公平(但不是绝对)信心的情况下,在大约二十年内免受这种分解威胁。
分解过程最好在图形上显示(以获取原始数据,例如,制作更好的图形,编辑此答案)
<!
大约日期算法名称位数
1992/04 / 01 MPQS RSA-110 364 110
1993/06/01 MPQS RSA-120 397 120
1994/04/01 MPQS RSA-129 426 129
1996/04/10 GNFS RSA- 130430130
1999/02/02 GNFS RSA-140 463 140
1999/08/22 GNFS RSA-155 512155
2003/04/01 GNFS RSA-160 530 160
2003/12/03 GNFS RSA-576 576 174
2005/05/09 GNFS RSA-200 663 200
2009/12/12 GNFS RSA-768 768 232
2019/12 / 02 GNFS RSA-240 795 240
2020/02/28 GNFS RSA-250 829 250



这也显示了在开始时的线性近似这个答案实际上是我在2002年左右私下做出的[2000-2016]时期猜想中的一个猜想,它决定了欧洲数字行驶记录仪项目应该推迟升级其1024位RSA加密货币(今天仍然广泛使用)。我于2004年公开承诺(使用法语)。我还了解了关于RSA密钥的敌对分解的三个单个事件(这些事件的模仿者或对有缺陷的密钥生成器的利用除外):


1995年。Alec Muffett,Paul Leyland,Arjen Lenstra和Jim Gillogly秘密地设计了一个384位RSA密钥,该密钥用于PGP加密在许多Usenet新闻组中发送的“ BlackNet消息”。没有金钱损失。


大约在1998年的法国“ YesCard”。一个人考虑了当时用于法国借记/信用卡智能卡的发行者证书中的321位密钥(尽管显然太短了)。通过律师的代理,他联系了发卡机构,试图通过他的工作获利。为了证明自己的观点,他制作了一些伪造的智能卡,并将其实际用于地铁售票机中。他被捕并被判处10个月缓刑(以法语判决)。在2000年,同一密钥的因式分解被发布(用法语),随后不久,伪造的智能卡迅速出现。它们与任何PIN一起使用,因此名称为YesCard(法文)(其他帐户为英文)。有一段时间,它们在自动贩卖机中造成了一些金钱损失。这款计算器,简化了自定义操作系统的安装,因此使他成为机器爱好者中的英雄。没有直接的金钱损失,但是制造商显然不那么开心。之后,许多512位密钥(包括其他计算器的密钥)也已考虑在内。


注意:到2000-2005年,512位RSA不再提供实质性的安全性。尽管如此,据报道,具有此密钥大小的证书是由官方证书颁发机构颁发的,直到2011年为止,并且可能用于恶意软件的签名。

评论


$ \ begingroup $
以为您有兴趣知道我已提交此问题以在Stack Exchange社交媒体上推广-也可以是问题-因为您已经将答案编辑了很多次,因此变成了“社区Wiki”,即编辑栏较低,您无法获得任何投票支持。要我回头吗?这是一项自动功能,旨在向多位作者致谢(本例中没有),但是如果mod还原了CW转换,它将永远保持还原状态。
$ \ endgroup $
–user46
2012年4月3日9:57



$ \ begingroup $
@Ninefingers:我同意担任CW。几天前通过电子邮件发送了更长的答案。
$ \ endgroup $
–fgrieu♦
2012年4月7日14:07



$ \ begingroup $
还需要考虑-分解越来越多地在GPU而不是CPU系统上进行,而GPU系统提供了更高的并行化和更短的破解时间(至少在对称系统上)
$ \ endgroup $
–沃伦
2012-4-10 22:39



$ \ begingroup $
@warren:您是否有描述GPU上的筛分或线性代数(GNFS的瓶颈)的链接?
$ \ endgroup $
–fgrieu♦
2012年4月11日下午7:49

$ \ begingroup $
@fgrieu-杰夫·阿特伍德(Jeff Atwood)最近关于哈希的博客文章中的一些更详细的参考资料可能包含其中一些细节
$ \ endgroup $
–沃伦
2012年4月11日18:26

#2 楼

您可能需要查看NIST SP800-57的5.2节。自2011年起,由美国联邦政府使用的未分类应用程序生成的新RSA密钥的模数至少应为2048位,相当于112位安全性。如果您不是代表美国联邦政府或美国联邦政府提供未分类软件应用程序的供应商,当然也可能适用其他规则。

但是,这些数字至少表明了美国联邦政府对敌人的计算资源的看法,并假定他们知道自己在说什么,并且对故意公开自己的利益没有兴趣敏感信息,它应该可以提供有关最新技术的一些提示。

评论


$ \ begingroup $
相关的表位于5.6.1表2和5.6.2表4中。在NIST SP800-57修订版4中已租用。
$ \ endgroup $
– jtpereyda
16-09-21在21:19

#3 楼

最简单的答案是查看keylength.com网站,如果您不信任该链接,尤其是NIST和ECRYPT II链接的文件。请注意,这些主要与Lenstra方程式吻合,因此您也可以使用它们。

您可能会有其他限制,并且-如果您勇敢或愚蠢-取决于使用情况,可以放松。但是至少他们建立了您可以使用的基准。

#4 楼

Lenstra最初提出的另一种确定提供“足够安全性”的密钥大小的方法是对称和非对称密钥长度之间的等效性,如果在给定时间访问允许成功进行攻击的硬件,则两个系统可以提供与成本相当的安全性在一定的固定时间内,两个系统的成本相同。充分的安全性定义为DES在1982年提供的安全性。

有几个因素会影响密钥长度的选择,例如,您要保护的数据的寿命,对数据的估计。计算资源(考虑摩尔定律)以及多年来的密码分析进展(整数分解)。 Lenstra认为,到2013年,对称密钥大小为80位,并且非对称密钥大小至少为1184位,可以提供足够的安全性。 (“使用云来确定密钥强度”)是通过使用云服务来估计分解因子所需的计算成本,假设最快的方法是数字字段筛选算法。他使用Amazon的云服务来开发他的基于成本的模型。 />在最近的调查中,人们发现人们倾向于使用2048位密钥,尽管拥有1024位密钥的证书只要没有过期就没有理由被撤销。

#5 楼

在我的网站上,我描述了为什么我亲自选择10kbit RSA密钥:


如果未来不出意外,那么10 kbit密钥应该可以使用一生。
10 kbit密钥不会给通信合作伙伴带来明显的性能损失


评论


$ \ begingroup $
“不花费大量的性能代价”在很大程度上取决于上下文。对于可能是正确的电子邮件,因为您通常每秒不会收到几封电子邮件。对于许多其他上下文(例如SSL),单个握手的解密时间为几百毫秒是不可接受的。另一个大问题是许多RSA实现不支持这么大的密钥。
$ \ endgroup $
– CodesInChaos
14年6月20日在9:55

$ \ begingroup $
它并不能改变两个总体结论:罚款完全由密钥持有者支付-而不是由通信合作伙伴支付,并且在您认为10kbit密钥会成为问题之前采取措施。
$ \ endgroup $
–奥雷·丹吉(Ole Tange)
14年6月20日在18:29

$ \ begingroup $
“先采取措施,然后再采取行动” –只是出于乐趣,我还是这样做了,结果发现您的主张是基于错误的结论。略过一些关于您比较幼稚的基准策略的潜在讨论,我想指出您网站上的数字是错误的。例如:您声明CPU性能4kbit --encrypt = <0.001-0.004秒,而CPU性能10kbit --encrypt = 0.004-0.012秒,但是您得出的结论是--encrypt = 0秒的额外成本?另外,在一种情况下,您甚至声称4kbit比10kbit慢...我希望您注意到这是怎么回事!
$ \ endgroup $
– e-sushi
2014年6月20日20:25



$ \ begingroup $
额外费用为0秒,四舍五入为0小数。当测量不确定度大于数值时,将四舍五入到小数点后0位是有意义的(在这种情况下,不确定度约为0.008,并且差异小于0.008)。我试图弄清楚您正在谈论哪种情况,却找不到。我也不主张:我测量并报告测量结果。当您在系统上重新进行测试时,是否愿意分享您得到的数字?
$ \ endgroup $
–奥雷·丹吉(Ole Tange)
2014年6月20日在22:57



$ \ begingroup $
“如果未来没有惊喜,应该延续一生”一生是很长的时间,而未来总是充满惊喜。考虑一下计算的进步-现在,您可以将比50年前的房间大小的计算器强大数十亿倍的设备放在口袋里。
$ \ endgroup $
–user26033
18年1月30日在10:50



#6 楼

具有运行Shor算法的中等大型量子计算机的对手将像黄油一样通过热刀切入1024位RSA模数,而像黄油刀一样通过一块坚硬的牛排切入2048位RSA模数。

“黄油”和“牛排”之间的数量差异在于,攻击者运行的Shor算法的成本是合法用户计算RSA成本的二次函数。传统上,在加密货币中,我们希望攻击的成本在使用成本中成倍增长,例如尝试使用橡皮鸭来刺穿一米厚的钢制银行保险库门。 RSA,NFS和ECM上最好的经典攻击的成本实际上并不是用户成本的指数函数,但它比多项式舒适得多,这就是为什么我们例如使用2048位模而不是256位模数大于100位的安全级别。

然而,尽管Shor算法的成本是用户成本的二次函数,但它是$ \ lg n $的函数,其中$ n $是模数。用户可以使用众所周知的多重质数技术来提高$ \ lg n $的成本,从而使Shor的算法(和传统的NFS)变得更加昂贵,对用户而言或多或少具有线性成本。在这种情况下,最好的经典攻击不再是NFS,而是ECM,其成本取决于$ \ lg y $,其中$ y> p_i $是$ n $的所有因素$ p_i $的上限。

带有大型量子计算机的对手将ECM与Grover的算法结合在一起,以实现二次加速,要求合法用户仅将其主要大小增加一倍。 1024位素数已被认为足以抵抗ECM的危害,因此我们可以将其提高一倍至2048位素数,以抵御Grover–ECM,但出于谨慎考虑,我们可能选择4096位素数。 >
Shor算法的成本在多大的模数下超过了Grover–ECM的成本?很难确定如何推断出这么远的距离,但我们可能会从保守的成本估算中推测出什么可能是足够好的。

因此,可以抵御当今已知或合理想象的所有攻击,包括大型量子计算机的对手,密码学家建议使用4096位素数的1 TB RSA模数。密码学家还建议您每天刷牙和牙线两次。

请注意,这些估计是非常初步的,因为还没有人建造出足以将比令人眼花large乱的21大的因子计算机分解为大的量子计算机。 Shor的算法经过修改,可以从已经知道这些因素的人那里获得一些帮助。 (绝热量子计算机上已经考虑了诸如291311 = 523 * 557的较大数字,但似乎没有人知道即使我们有足够的量子位,运行时间也将如何扩展。)

因此,此建议可能不必要保守:也许一旦我们达到了qubit运算成本的极限,事实证明只需要几GB的容量就可以抵制Shor的算法。此外,标准的多素RSA可能不是最高效的量子后RSA变体:对于偏执狂,传统RSA和RSA之间可能存在中间立场,它将胜过最初的pqRSA提议。

评论


$ \ begingroup $
反对这一点的每个人都是荒谬的。
$ \ endgroup $
–吱吱作响的s骨
19年3月12日在3:49

#7 楼

根据Schneier的书《密码学工程》,n = pq

...应该大约6800位...系统将使用30年,并且必须在第一次处理数据后对其进行安全保存20年。

...可变大小...公共密钥只需要保护21年的数据,
而不是对称密钥需要50年的数据。每年,您
生成一个新的公钥,随着
计算技术的发展,您可以选择更大的公钥。因为系统的其他部分通常较弱。