RSA Security通常使用大小为1024位,2048位甚至3072位的密钥。而且大多数对称算法仅在112位和256位之间。我确实意识到当前的密钥对于当今的硬件已经足够安全了,但是随着计算机的发展,我们是否不应该考虑使用像百万位这样大的密钥来保护自己免受尚未发明的超级计算机系统的侵害? br />
换句话说,选择太大的密码密钥会有什么后果,为什么每个人都限制其密钥大小?

评论

有关RSA的较长密钥的价值,请参阅enisa的本文档第32页。

#1 楼

RSA密钥之所以这么小,是因为:RSA密钥长度每增加一倍,解密速度就会降低6-7倍。


因此,这只是安全性与便利性之间的另一个折衷。
这是一个图形:


来源:http://www.javamex.com/tutorials/ cryptography / rsa_key_length.shtml

评论


+1。对于“离线”非对称密码(例如PGP),通常使用大密钥长度,但是对于“在线”密钥交换,对于大多数应用程序来说,具有2048位密钥的30年安全性足以满足大多数应用程序的需要,并且不会使用户烦恼在SSL握手过程中需要等待2分钟。

– SecurityMatt
2012-12-13 13:55

请记住,非对称密码通常仅用于保护对称会话密钥,因此在实践中,这种非对称密码解密时间的增加并不那么引人注目。

–亚历山大·舒布利金(Alexander Shcheblikin)
2012-12-13 14:28

但是,当您记住浏览器已经在使用DNS预取和即时编译JavaScript之类的肮脏技巧时,您会意识到从4096位密钥到65536位密钥的成本很重要。而且,由于对2048位RSA的最著名的攻击要比对AES-256密钥强行执行更多的工作,因此这样做也没有密码上的好处。

– SecurityMatt
2012-12-13 18:23

@SecurityMatt有任何说法来源吗?我听说的说法是,破解2048位RSA的难度与破解112位对称算法的难度差不多,而不比破解256位加密的难度更大。

– CodesInChaos
2014年1月26日14:03

@SecurityMatt还...

– Craig
2015年10月17日,下午4:21

#2 楼

我挖出了我的《应用密码学》副本以回答有关对称加密的问题,256足够了,可能很长一段时间。 Schneier解释;

更长的密钥长度更好,但只能达到一定程度。 AES将具有128位,192位和256位密钥长度。这远远超过可预见的未来所需的时间。实际上,我们甚至无法想象一个世界上可以进行256位强力搜索。它需要物理学上的一些根本性突破以及我们对宇宙的理解。
热力学第二定律的后果之一是,表示信息需要一定量的能量。通过改变系统状态来记录单个位需要的能量不少于kT,其中T是系统的绝对温度,k是玻尔兹曼常数。 (与我同台;物理课已经结束。)
鉴于k = 1.38×10−16 erg / K,并且宇宙的环境温度为3.2开尔文,理想的计算机以3.2 K运行每次设置或清除一点,都会消耗4.4×10-16 erg。要运行比宇宙本底辐射还要冷的计算机,将需要额外的能量来运行热泵。
现在,我们太阳的年能量输出约为1.21×1041 ergs。这足以为我们理想的计算机提供约2.7×1056的单个位更改。进行足够的状态更改,以通过其所有值放入一个187位计数器。如果我们在太阳周围建立一个戴森球,并在32年内捕获所有能量而没有任何损失,那么我们可以为一台计算机供电,使其计数达到2192。当然,它不会剩下能量来进行任何有用的计算与此计数器。
但这只是一颗星星,而那只是一颗星星。典型的超新星会释放1051 ergs。 (以中微子的形式释放的能量大约是原来的一百倍,但现在就放开。)如果所有这些能量都可以传递到一个单一的计算狂欢中,那么一个219位计数器可以循环通过所有
这些数字与设备的技术无关;它们是热力学允许的最大值。而且,它们强烈暗示,除非计算机是由物质以外的东西构成的并且占据空间以外的东西,否则对256位密钥的暴力攻击将是行不通的。

大胆是我自己的补充。还假设密钥生成是完美的-每产生1位熵键。这通常很难在计算设置中实现。对于256位密钥,不完善的生成机制可能会产生170位的熵。在这种情况下,如果知道密钥生成机制,则蛮力空间的大小将减小到170位。
假设量子计算机可行,但是使用Shor算法将破坏任何RSA密钥。 (请参阅https://security.stackexchange.com/a/37638/18064)

评论


量子计算呢?

–bseibold
2012-12-17 21:38

这不仅是不可逆计算的能量极限吗?如果使用可逆门进行计算,则理论上可以使用更少的能量。

–tzs
2012-12-17 21:49

@tzs所涉及的物理学仅代表了最低限度的能量需求,仅表示量子力学所能提供的最有效的信息,甚至超出了理论技术,甚至不计算计算,门的能量。

– tylerl
2012-12-18 18:58

@opensourcechris是正确的,您必须平均平均循环使用其中一半,因此需要检查2 ^ 255个密钥,这仍然是超新星释放的能量的10 ^ 12倍左右。

–lynks
2012-12-18 22:31

好的,大家,不用再对此投票了。净+256票是完美的!

–用户
2014年8月12日在9:22

#3 楼

对于一个密钥,为三个密钥大小128, 192 or 256 bits构建了AES。

当前,强行使用128位甚至还不可行。假设,如果AES密钥具有129位,则暴力破解129位密钥所需的时间是128位密钥的两倍。这意味着较大的192位和256位密钥将花费更长的时间进行攻击。强行使用其中一个键会花费非常长的时间,以至于在实现键之前太阳会停止燃烧。

2^256=115792089237316195423570985008687907853269984665640564039457584007913129639936

这真是个大数目。那就是可能有多少把钥匙。假设密钥是随机的,那么如果将其除以2,那么您将拥有蛮力AES-256平均需要多少个密钥

从某种意义上说,我们确实拥有非常大的密钥在谈论。对称密钥的全部目的是使其无法强制使用。将来,如果有可能攻击256位密钥,那么密钥大小肯定会增加,但这是一条相当长的路要走。

之所以RSA密钥比AES密钥大得多,是因为它们是两种完全不同的加密类型。这意味着一个人不会像攻击AES密钥那样攻击RSA密钥。

攻击对称密钥很容易。


以位串开头000...

用该位串解密密文。
如果可以阅读,就成功了。
如果无法读取它,然后增加比特串

攻击RSA密钥是不同的...因为RSA加密/解密适用于大的半素数...此过程很数学。使用RSA,您不必尝试所有可能的位字符串。您尝试使用的比特数远远少于2^10242^2048 ...但是仍然无法蛮力。这就是为什么RSA和AES密钥的大小不同的原因。[1]

总结所有内容并用一句话回答您的问题。我们不需要可笑的大对称密钥,因为我们已经有可笑的大对称密钥。与2048位RSA密钥之类的东西相比,256位加密听起来有些w琐,但算法却不同,因此无法真正进行“逐位”比较。将来,如果需要更长的密钥,那么将开发出新的算法来处理更大的密钥。如果我们想在当前硬件上做得更大,那只是时间上的权衡。较大的密钥意味着更长的解密时间意味着较慢的通信。这对于密码尤为重要,因为您的Internet浏览器将先建立然后使用对称密钥来发送信息。

评论


@Lightness:在一般情况下,不是最坏的情况。最好的情况是极不可能的,以至于在您碰到太阳之前太阳将停止燃烧:)

– Marcus erronius
2012-12-13 23:58



@MarkHubbart:除非不是这样!

–轨道轻赛
2012年12月14日下午5:56

#4 楼

处理时间,纯净而简单。安全中的所有内容都是在安全需求(将坏人拒之门外)和可用性(让好人进入)之间的平衡行为。即使使用专用硬件进行计算,加密也是一项处理昂贵的操作。

在大多数情况下,仅仅出于某种程度的安全性考虑根本就不值得,因为权衡取舍变得越来越困难,而几乎没有任何实质性的收益(因为十亿年和一百年之间的差异)实际上,十亿年并不是那么重要。)

同样,对于RSA vs AES,这也是对称密码学与非对称密码学的本质。简而言之,对于对称密码学(有一个共享密钥),没有什么可以开始猜测的,因此这非常困难。对于RSA等非对称密码,您要公开与解密密钥(私钥)相关的一条信息(公钥)。尽管这种关系“很难”计算,但是它比没有信息可工作要弱得多。因此,较大的密钥大小对于使从公钥中获取私钥的问题更加困难,同时又试图限制对加密和解密的数学问题的难度有很大的要求。

#5 楼

在某种程度上,已经存在使用这种“超大”密钥的算法。它被称为一次性垫。但是,实际上没有人真正使用它们,因为它们需要密钥,因此,您希望加密的消息的长度和密钥材料将永远无法重用(除非您希望密文变得容易被破坏)。鉴于加密的目的是将大秘密(明文)转换为小秘密(密钥),因此OTP仅在非常特定且高度专业化的场景中有用。您最好还是安全地传输明文,因为您将需要与密钥材料一样安全的传输通道。

公平地说,OTP确实有一个特定的用例。也就是说,当您需要在某个位置可以访问安全通信信道但又需要在以后的某个时间安全地发送消息的环境中需要可证明的安全性时。

OTP是可证明的安全性,因为正确使用并使用正确生成的密钥材料,解密的纯文本同样可能发生,并且密钥材料的一部分(应该)不会使您对密钥材料的其他部分或如何解密消息的其他部分有任何了解。从理论上讲这很容易,但是在实践中很难实现。您最多只能查看简短的高级军事机密或可能的外交机密。

对于大多数人来说,128位至256位对称或2048位至4096位对称(假设使用RSA)由于Rell3oT,Alexander Shcheblikin,lynks和其他人已经描述的原因,非对称密钥就足够了。任何想要攻击256位等效密钥的人都将攻击密码系统,而不是密码系统。 (强制性XKCD链接。)PRNG攻击以前已经被破坏,如果没有正确实施和从理论上讲是安全的密码系统,那么以为上次发生这种情况将是一个傻瓜。

#6 楼

在“因为它会不必要地降低速度”答案中添加了更多证据,似乎当密钥长度增加时,AES执行时间的增长速度没有RSA快(并且RC6增长得更慢),但执行率仍然达到16%根据http://www.ibimapublishing.com/journals/CIBIMA/volume8/v8n8.html的说明,时间增加了两倍。

评论


AES-128是10发子弹,AES-192是12发子弹,AES-256是14发子弹。由于AES的密钥计划很简单,因此执行时间几乎与轮次和要处理的数据量成线性比例关系。因此,从AES-128过渡到AES-256将使吞吐量(就每个时间段的数据量而言)几乎降低40%。

–用户
16-2-20在13:21

在RSA算法上,无论密钥大小如何,该算法的工作原理都相同。这是算法在小组中共同工作的共同好处:只是扩大领域。对于对称密码术,大多数算法都包含无法在不显着改变算法的情况下针对不同密钥大小进行缩放的步骤。例如,AES最小密钥大小为128位,最大为256位。接受512位密钥的增强型AES算法可能与AES(或Rijndael)大不相同。

–user4982
18 Mar 3 '18 at 20:04

#7 楼

已经提到了处理时间。即使在这方面,也应该单独提及生成RSA密钥所需的时间,因为较长的密钥会花费更多的时间,因为您需要找到大约为所需RSA密钥大小一半的质数。

另一个主题是空间,i。 e。生成的数据量。非对称和对称密码在块上运行。即使一个字节以上的签名也需要RSA密钥具有的位数,即e。 2048位密钥的256个字节。与对称算法的块大小相同的情况也随着密钥长度的增加而增加。尽管乍一看似乎也不是争论,但是一些受严格限制的设备(如智能卡)应该可以处理此问题(仍然是私钥最安全的容器),并且有许多应用程序需要存储很多签名,证书,密码等。实际上,这是椭圆曲线密码学的原因之一,因为它将越来越多的安全性塞到更少的位中。

评论


“对称算法的块大小,随密钥长度的增加而增加”,这不是必需的。 DES:64位密钥(忽略了八个位),64位块。想法:128位密钥,64位块。 AES:128、192、256位密钥,固定的128位块。河豚:最多448位密钥,固定为64位块。 RC5:最多2040位对称密钥,32/64/128位块(可选,建议使用64位块)。等等。

–用户
2014年8月12日9:50



@MichaelKjörling:如果更改整个算法系列,我实际上无法意识到块大小参数的好处。在一个算法系列中,较大的密钥大小意味着较大的块大小,但这也不是严格增加的。最初的问题是针对密钥大小的,并且也没有建议更改算法,那么您的意思是什么?

– Guidot
2014年8月12日上午10:25

好的,即使在完全相同的算法中(以及已经引用的示例中),我们仍然可以获得可以使用几种不同密钥大小但始终具有相同块大小的AES。或河豚,具有可变的密钥大小和固定的块大小。

–用户
2014年8月12日在11:11

#8 楼

OP问:“换句话说,选择太大的密码密钥会有什么后果?” 256位密钥足够强大,正如此处的评论所证明的那样。但是,非常安全的密钥(这是一件好事)只会导致恶意人员发现系统中其他地方的漏洞。