简述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表示轮数。
接着,对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表示轮数。
答案解析:有
微信扫一扫手机做题