问题 问答题 简答题

简述AES的子密钥生成过程。

答案

参考答案:

AES首先将初始密钥输入到一个4*4矩阵中。这个4*4矩阵的每一列的4个字节组成一个字,矩阵4列的4个字依次命名为w[0]w[1]w[2]和w[3]。它们构成了一个以字为单位的数组w。

接着,对w数组扩充40个新列,构成总共44列的扩展密码数组。新列以如下的递归方式产生:

(1)如果i不是4的倍数,那么第i列由如下等式确定:

w[i]=w[i-4]⊕w[i-1]

(2)如果i是4的倍数,那么第i列由如下等式确定:

w[i]=w[i-4]⊕T(w[i-1])其中,T是一个复杂的函数。

函数T由三个部分组成:自循环、字节代换和轮常量异或,这三部分的作用分别如下:

(1)字循环:将1个字中的4个字节循环左移1个字节。

(2)字节代换:对字循环的结果使用S盒进行字节代换。

(3)轮常量抑或:将前两步的结果同轮常量Rcon[j]进行异或,其中J表示轮数。

单项选择题
多项选择题