密钥长度的变化不仅对AES有影响,而且通常对密文有何影响?我知道密钥空间会变得更大,并且在AES发生更改的情况下,轮数也会增加,但是如果确实选择了256位作为密钥长度,那么它的安全性真的得到了很大的增强吗?

我目前正在考虑的其他事情,是否有可能获得有关所观察密文的密钥长度或算法的任何详细信息?例如,在测量熵(或其他任何熵)时,存在任何差异。在AES和DES之间?

评论

还可以看看一个相关的(不完全相同的)问题:256位,192位和128位AES加密之间的实际区别是什么?

#1 楼

对于对称算法(例如AES或DES或RC4,但不用于RSA或ECDSA),密钥是位序列,因此任何大小相同的位序列都是潜在的密钥。因此,更长的键意味着更多的可能的键。

详尽的搜索是尝试所有可能的键,直到找到匹配项。这是对算法强度的绝对限制:穷举搜索始终适用,算法对此无能为力。防止穷举搜索的唯一方法是扩大可能的键的空间,即具有更长的键。幸运的是,这非常有效:据报道已执行的最大的穷举搜索实验是针对64位密钥的(正在进行72位密钥的搜索,但尚未完成)。传统上,我们使用“ 80位”作为实际限制,但是技术的进步可能迫使我们增加这一限制。每增加一位,穷举搜索的难度就会增加一倍。有关其他讨论,请参见关于security.SE的答案。底线:128位是安全的。

比较128位和256位密钥的强度有些微妙:虽然后者是一个更大的密钥空间,但前者已经在“不能打破它”的区域,从实际上讲,您将无法做到这一点。因此,声称AES-256比AES-128更强大。

有一些陷阱:


DES使用64位密钥(而3DES使用192位密钥)。但是,算法规范要求DES完全忽略64个密钥位中的8个(3DES为24个忽略位)。因此,DES的密钥大小通常被称为56位(3DES为168位)。
AES随密钥大小变化:密钥越长,回合越多。这与穷举搜索无关。这是因为更长的密钥是“更高学术实力”的承诺(“学术”是指“我们假设攻击者可以执行300位详尽搜索”)。从学术上讲,AES需要详尽搜索才能成为最佳攻击(即对算法内部结构的攻击必须更慢)。 256位密钥提出了更高的要求:非穷举搜索攻击的有效性不得超过$ 2 ^ {256} $工作因数。因此,额外的回合。实际上,额外的回合并不能给您带来更多的安全性(就像更大的密钥不会使该算法比已经坚不可摧的AES-128的可破解性更差);额外的回合所做的是使加密速度降低40%。
当算法按密钥大小进行变形时,它不再是“相同”的算法,因此一切都变了。从理论上讲,AES-256可能具有AES-128所没有的弱点(无法保证额外的回合不会损害安全性)。
对称密钥大小很少是使用加密系统的弱点。如果您使用64位密钥,并且密钥大小确实是最佳的攻击点,那么您可以认为自己非常幸运:系统的其余部分必须非常强大。


评论


$ \ begingroup $
无法保证额外的回合不会损害安全性-真的吗?这对我来说似乎违反直觉。
$ \ endgroup $
–森林
19年5月6日在6:46



$ \ begingroup $
@forest:“直觉”是正确的术语。凭直觉,更多的回合只会使安全性更好(或保持不变)。但是并不能保证。同样,更长的密钥意味着修改后的密钥时间表,这可能会改变事情;值得注意的是,在称为“相关密钥攻击”的完全人为的方案中,AES-256的确比AES-128弱(这没有实际的实际结果,并且相关密钥攻击也不是AES设计的安全模型的一部分) ,但作为此类微妙的例子来记住很有用)。
$ \ endgroup $
–托马斯·波宁(Thomas Pornin)
19年5月7日在12:37

$ \ begingroup $
AES256较弱,因为修改了密钥计划以采用256位密钥,而不是轮数。具有128位密钥和14个回合(而不是10个回合)的Rijndael不会受到攻击,因为密钥计划最多可以生成256个回合密钥。但是,即使您修改了任意密码以使用额外的回合,并且即使该回合重新使用了前一个回合密钥(这也不是个好主意),它也不会更弱吗?
$ \ endgroup $
–森林
19年5月8日在3:04



#2 楼

要回答有关密钥长度的第一个问题:
DES使用56位密钥。暴力攻击将需要$ 2 ^ {56} $的最大复杂度来找到正确的密钥。现在,按照今天的标准,这还不算多。 $ 2 ^ {90} $或更高的复杂度被认为足够安全。
通过具有任何密钥大小(128、192或256)的标准AES足以使用。
有关安全性,请阅读此文章。
在本文中,Bruce Schneier建议在AES-256上使用AES-128。

对于第二个问题:
AES,DES或任何其他问题另一个好的加密算法基本上就是PRF(伪随机函数)。
好的PRF的特性是,不能仅通过观察PRF和TRF(真正的随机函数)的输出来区分它们。

因此,如果人们能够观察到密文并辨别它是来自AES还是DES,那么它完全可以达到目的。人们甚至都不应该知道密文是从PRF(例如AES)还是TRF生成的,更不用说确定PRF的类型了。

评论


$ \ begingroup $
欢迎使用密码学堆栈交换。我们在此处为公式提供了一些TeX格式,可以在公式周围添加$来使用。我编辑了您的帖子,以将其添加到复杂性中。
$ \ endgroup $
–PaŭloEbermann
2012年8月24日19:11

#3 楼

较长的密钥长度意味着试图对密钥进行暴力破解的人员有更大的搜索空间。 256位密钥的数量是128位密钥的2倍{128} $倍。因此,在所有其他条件都相同的情况下,在蛮力搜索128位密钥的情况下,对256位密钥的暴力搜索可能不切实际,达数十亿美元。

但是,其他所有条件很少平等。它们对于AES是不平等的。 256位AES具有128位AES没有的关键计划漏洞。因此,许多人(包括我自己)都认为没有理由认为256位AES比128位AES更强大。

我还应该指出,AES使用相同的块大小不论密钥长度。但是,AES使用更大的密钥进行更多的回合。 10个用于128位密钥,14个用于256位密钥。通常,希望进行更多轮操作才能使算法更强大,而AES就是这种情况。

评论


$ \ begingroup $
较大的密钥的128位块大小有什么问题吗? $ 2 ^ {256} $个不同的键仍然代表所有可能的128位宽排列的很小一部分。
$ \ endgroup $
– sellibitze
2012年8月24日15:19



$ \ begingroup $
@sellibitze:不,没有错。我只是指出这一点,因为许多人错误地认为,由于“ 128位AES”具有128位的块大小,因此“ 256位AES”应具有256位的块大小。
$ \ endgroup $
– David Schwartz
2012年8月24日16:37

#4 楼

现代的块加密算法是如此安全,以至于试图将算法的选择保密,通常弊大于利!如果加密的消息不能被收件人成功解密,则是垃圾邮件。而且,如果您要加密它,那意味着它是非常重要的信息。因此,最好确保邮件中有足够的信息,以便目标收件人拥有解密所需的所有信息-当然,除了密钥之外。

使用现代块加密算法,它们的质量足够高,没有已知的统计测试可以揭示所使用的算法。但是,从实际意义上讲,有足够的数据来指示所使用的算法,例如SSL头,PGP头,X.509证书等。如果没有,则在上下文中通常还会发现其他内容。 (例如名为“ Secret_Plans.DES”的文件),或检查其计算机并找到AES128.EXE的副本。

诸如Vigniere,Caesar密码,Playfair婴儿床等经典加密算法的确具有可以分析的统计属性,并且可以推测该算法。