该答案指出,某些密钥和块长度是AES提交的要求:


候选算法应能够支持大小为128-128、192的密钥块组合-128和256-128位。


我的问题是这个;如果密钥长度大于块大小,那么如何才能提高安全性呢?

如果为了简单起见,我们看一下ECB模式,则当密钥长度等于块长度时,我们之间存在置换关系。一组所有纯文本和一组所有密文。

一旦增加密钥长度,就会开始引入冲突。实际上,从那时起您仅引入碰撞,不是吗?从某种意义上讲,一个密钥将与另一个密钥建立相同的密文-计划文本关系。

,这使我相信密钥空间的仅一部分是唯一的,并且密钥的那一部分是唯一的

我知道我显然是错误的,我只是不明白为什么。

#1 楼

分组密码几乎是替代密码。因此,让我们看一个简单的字母替换密码。有26种不同的明文和26种不同的密文。密码是这26个值的排列。但这并不意味着有26种不同的排列,而是意味着有26美元! \ approx 2 ^ {88.4} $不同的排列方式,允许88位的密钥没有等效的密钥。

如果将其转移到n位的分组密码中,则具有$ 2 ^ n $的不同输入/输出,然后有$(2 ^ n)!$个不同的排列,对于$ n = 128 $,这是非常大的($ \ approx 2 ^ {2 ^ {135}} $),比$ 2 ^ {256大得多} $个由256位密钥处理的不同置换。

因此,即使256位密钥也仅使用了很小一部分可用置换,因此,如果密码为理想。

评论


$ \ begingroup $
非常感谢,我的困惑是关于“ 26个不同的排列”。现在很清楚。
$ \ endgroup $
–lynks
2012-12-17 13:54

$ \ begingroup $
26个明文和26个密文是什么意思?对于单字符消息,只有一种排列(标识)和26种可能的替换,才是这种情况。
$ \ endgroup $
–斯蒂芬·托瑟(Stephen Touset)
2012-12-17 21:26



$ \ begingroup $
@StephenTouset当我们将这种替换密码看成分组密码时,就是一个字符,一个字符一个字符,一个字符一个字符。
$ \ endgroup $
–PaŭloEbermann
13年2月19日在17:43

$ \ begingroup $
我不确定第一次阅读时怎么会错过它。道歉。
$ \ endgroup $
–斯蒂芬·托瑟(Stephen Touset)
13年2月19日在18:32

$ \ begingroup $
您真的确定您的26阶乘吗?如果您使用的密码宽为一个字符(26次输入和输出),我将努力查看阶乘部分的作用。任何字母只能用另一个字母加密(替换)。这只能是最多4.7位的密钥,因为这是纯文本的熵。即使我在数学上错了,它仍然无法通过气味测试。我认为您的数学方法,因此这个答案是错误的。
$ \ endgroup $
–Paul Uszak
17年9月6日在11:33



#2 楼


一旦增加了密钥长度,就开始引入碰撞。实际上,您只是从那时起才引入碰撞吗?


我不知道是否有证明。作为伪随机函数,产生给定明文-密文对的128位密钥的期望值为1,但这并不意味着不会发生冲突。


这会让我相信只有键空间的一部分是唯一的,并且只有键空间的那一部分需要强行使用?


让我们说你这样做设法找到可以解密第一个消息块的256位密钥。那只是大约$ 2 ^ {128} $个键中的一个。除非它也解密后续的消息块,否则它不是正确的密钥,而且您离找到它也只有一步之遥。键$ K'$这样$ AES(K',M)= AES(K,M)$,但这不是事实。

#3 楼

我有完全相同的问题。

您犯的错误是密钥的长度不能确定


单个明文可以对应多少个不同的密文? (例如p(A)= A或p(A)= B或p(A)= C)


,这将使可能的双射数成为指数函数($ 2 ^ { n} $)的密钥长度,但是它确实确定了密文可以有多少种不同的排列方式与列出的所有明文相对应? (例如p(A)= A且p(B)= B且p(C)= C或p(A)= A且p(B)= C且p(C)= B;请注意p(A) =在两种情况下都成立)


,这使得可能的双射数成为键长的指数函数($(2 ^ {n})!$)的阶乘-表示密钥的长度可以比​​块的大小大很多倍,而不会引起冲突。