《密码学原理与实践 第三版 》 习题 3.5
假设有128比特的AES密钥,用十六进制表示为
2B7E151628AED2A6ABF7158809CF4F3C
由上述种子密钥构造一个完整的密钥编排方案。
解:
-
第0轮:
W0:“2B7E1516”,
W1:“28AED2A6”,
W2:“ABF71588”,
W3:“09CF4F3C”. -
第1轮:
第一步: w3进行循环位移
Rotword1: ‘09CF4F3C’ -> ‘CF4F3C09’
第二步:对结果进行S盒加密:(如CF -> 8a, 4F -> 84)
Subword1: ‘CF4F3C09’ -> ‘8a84eb01’
第三步,S盒加密结果,与该轮的RCon进行异或操作。
Temp = 逆(Subword⊕RCon(1))= “8b84eb01”
第四步,将temp结果与上一轮的w[i-4]进行异或操作,因此,
W4 = 逆(w0 ⊕Temp )= ‘a0fafe17’
W5 = 逆(w1 ⊕ w4 ) = ‘88542cb1’
W6 = 逆(w2 ⊕ w5 ) = ‘23a33939’
W7 = 逆(w3 ⊕ w6 ) = ‘2a6c7605’ -
每一轮类似,但RCon每轮有指定的值,如此循环调用一共十次,加上第0轮的四个字,一共44个字。
-
代码运行结果w0-w44:
[“2B7E1516”,“28AED2A6”,“ABF71588”,“09CF