AES密钥计划

时间:2013-09-21 12:50:29

标签: c encryption cryptography aes

在关于AES密钥计划的教程中,我看到密钥计划(rotate,rcon,s-box)的操作应用于一个4字节的单词。你能解释一下这个单词的来源吗?我明白了从128位长的密钥中提取它。密钥保存为4x4矩阵。那么如何获得用于密钥安排的单词?也许这是一个简单的问题,但我不明白。谢谢。

1 个答案:

答案 0 :(得分:2)

解释here (with some code)。这是扩展密钥的最后4个字节“到目前为止”。

  1. 从128位(16字节)密钥开始。扩展密钥的前16个字节是那些字节。

  2. 你取了它的最后4个字节,做(旋转,rcon,s-box)跳舞,再得到4个字节,你可以用4个字节前面的16个字节(所以,第一次,在密钥的开头),并将其附加到扩展密钥。

  3. 你取扩展密钥的最后4个字节(刚刚附加的内容),xor,字节16字节“后退”(所以,第一次,字节5到8),并将结果附加到扩展的密钥。

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

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

  6. 总是如此,您使用的是最后一个附加到扩展键的4个字节。你在16字节“部分”中进行,其中部分的前4个字节是使用(rotate,rcon,s-box)“初始化”的。

    它在the standard的第5.2节中也有不同的解释(在回答你的问题时可能更清楚)。他们把它描述为总是占用最后4个字节,然后每隔4次用4个字节的16字节PLUS进行测量,进行(旋转,rcon,s-box)跳舞。这使得上述步骤2和3中的xor“相同”更清楚。

    对于较长的键,您可以调整上面的一些常量(因此您可以使用更长的“部分”)。