本条目存在以下问题,请协助 改善本条目或在 讨论页针对议题发表看法。
此条目需要精通或熟悉相关主题的编者参与及协助编辑。 (2014年8月18日) 请邀请适合的人士改善本条目。更多的细节与详情请参见讨论页。 |
此条目没有列出任何参考或来源。 (2014年8月18日) 维基百科所有的内容都应该可供查证。请协助补充可靠来源以改善这篇条目。无法查证的内容可能会因为异议提出而移除。 |
|
此条目不完整。 请帮忙改善本条目,或到讨论页去讨论该条目的问题。 |
AES(Rijndael)使用一个密钥生成方案把一个短密钥扩展成各轮用于加密的子密钥。该方案的名称就叫做Rijndael密钥生成方案(Rijndael key schedule)。对于不同位数的原始密钥(128, 192, 256),加密的轮次是不相同的,但每一轮都需要与128位的密钥进行异或,而根据原始密钥生成各轮子密钥的过程就是由Rijndael密钥生成方案完成的。
公共操作(Common operations)
在描述密钥生成的流程之前,有必要先阐述Rijndael密钥生成方案所使用的一些公共操作。
旋转(Rotate)
对于下面32位的字(十六进制):
1D 2C 3A 4F
旋转操作会把它循环左移8位(一个字节),即左边的高8位会成为右边的低8位,结果如下:
2C 3A 4F 1D
求2的幂次操作(Rcon)
Rcon在Rijndael的参考文档里称为求2的幂次。需要注意的是这个操作不是作用在常规的整数域中的,它是作用在Rijndael有限域中的。2的多项式形式为 ,计算的公式为:
-
或者等价于,
-