2013-09-21 243 views
2

在AES密钥计划教程中,我看到密钥计划(rotate,rcon,s-box)的操作应用于一个4字节的单词。请你解释这个单词来自哪里?我知道我从128位长的密钥中提取它。密钥保存为4x4矩阵。我怎样才能获得用于密钥计划的单词?也许这是一个容易的问题,但我不明白。谢谢。AES密钥计划

+2

这些问题最好在crypto.stackexchange.com上提问(当然,如果不存在的话)。 –

回答

2

它的解释here (with some code)。它是“迄今为止”扩展键的最后4个字节。

  1. 您以128位(16字节)键开头。扩展密钥的前16个字节是那些字节。

  2. 你取最后4个字节的那个,做(rotate,rcon,s-box)舞蹈,并且得到4个字节,你用4个字节提前16个字节(所以,第一次,在密钥的开始),并将其附加到扩展密钥。

  3. 您将扩展密钥的最后4个字节(您刚刚添加的内容)与异或字节16位字节“返回”(所以第一次是字节5到8)并将结果追加到扩展密钥。

  4. 您重复3次另外2次,每次使用扩展密钥的最后4个字节。

  5. 从2开始重复,直到获得所需的总扩展长度。

所以总是使用最后附加到扩展键的4个字节。你用16个字节的“部分”来完成,其中该部分的前4个字节是使用(rotate,rcon,s-box)“初始化”的。

它也在the standard的第5.2节中有所解释,稍有不同(以及可能会更清楚地回答您的问题)。他们将它描述为始终占用最后4个字节,并且每4次用4个字节的16个字节先前PLUS来执行(旋转,rcon,s-box)舞蹈。这更清楚地表明上述步骤2和3中的xor是“相同的”。

对于较长的键,您可以调整上述的一些常量(这样您可以做更长的“节”)。