各轮之间的对称性的好处是在密钥的控制下对同一个轮交换进行循环迭代,优点是只要描述一轮变换即可将整个规范描述清楚,在软件实现中也可以仅对一轮进行编程。 copyright paper51.com ②轮变换内部的对称性 paper51.com
轮变换内部的对称性是指对状态中所有比特均用相似方法处理。 内容来自www.paper51.com ③D一盒的对称性 内容来自www.paper51.com
④S一盒的对称性 copyright paper51.com ⑥加密和解密的对称性 内容来自www.paper51.com 所以,Rijndael算法在综合了分组密码的设计准则的同时,也有其自身的设计准则,这些设计准则的优越性,提高了算法的实现速度,降低了算法的复杂度,算法还有其它的设计准则,这些设计准则在算法的原理描述中,在特定的环境中给予描述。 paper51.com Rijndael算法的加密过程包括一个初始密钥加法,记着AddRoundKey,接着进行Nr一1次轮变换Round,最后再使用一个轮变换FinalRound。初始的密钥加法和每个轮变换均以状态State和一个轮密钥作为输入。第i轮的轮密钥记为Expandedkey[i],初始密钥加法的输入记为Expandedkey[0]。从Cipherkey导出Expandedkey的过程记为KeyExpansion Rijndael的高级语言。 copyright paper51.com 3.3 Rijndael算法加密轮变换原理 paper51.com 轮变换Round由4个变换组成,其中的每个变换成为步骤,伪C语言表述如下: http://www.paper51.com Round(State. ExpandedKey[i]) 内容来自www.paper51.com { http://www.paper51.com SubBytes(State): 内容来自www.paper51.com
ShiftRows(State); copyright paper51.com MixColumns(State): paper51.com AddRoundKey(State,ExpandedKey[i]); copyright paper51.com } copyright paper51.com 最后一轮FinalRound稍有不同,伪C语言描述如下: http://www.paper51.com FinalRound(State, ExpandedKey[Nr]) 内容来自www.paper51.com
{ 内容来自www.paper51.com SubBytes(State): 内容来自论文无忧网 www.paper51.com ShiftRows(State): copyright paper51.com
AddRoundKey(State ExpandedKey[Nr]); http://www.paper51.com } copyright paper51.com Rijndael算法加密过程示意图如下: copyright paper51.com 图1 AES的流程图 http://www.paper51.com
3.3.1 SubBytes变换 内容来自论文无忧网 www.paper51.com SubBytes是一个非线性的字节替代,独立地在每个状态字节上进行运算。它包括两个变换。 内容来自论文无忧网 www.paper51.com 1. 在有限域GF(28)上求乘法逆,‘00’映射到它自身。 http://www.paper51.com
2. 在GF(28)上进行下面的仿射变换: http://www.paper51.com
内容来自www.paper51.com 图2 仿射变换示意图 内容来自论文无忧网 www.paper51.com 该变换可以用一个256字节的表来实现 paper51.com
http://www.paper51.com 图3 SubBytes变换示意图 内容来自论文无忧网 www.paper51.com
3.3.2 ShiftRows变换 内容来自论文无忧网 www.paper51.com 在ShiftRows变换中,状态阵列的后3行循环移位不同的偏移量。第1行循环移位C1字节,第2行循环移位C2字节,第3行循环移位C3字节。 paper51.com 偏移量的选择:按照简单性的推则,偏移量的值可以取0,但实际上对于一个128比特得分组,偏量的值应当取0, 1, 2, 3,各所使用的偏移量可以是其中任意一个。而对于大于128比特的分组,则有多可能。对于简化后的Rijndael算法,这里采取128比特作为研究对象,偏移量的值应当取0,1,2, 3 ,ShiftRows对状态的影响如下图所示: paper51.com http://www.paper51.com 图4 ShiftRows变换状态示意图 http://www.paper51.com
3.3.3 MixColumns变换 copyright paper51.com 将状态的列看作是有限域GF(28)上的多项式a(x),与多项式c(x)={03}x3+{01}x2+{01}x+{02}相乘(模x4+1)。 内容来自论文无忧网 www.paper51.com
令b(x) = c(x) ×a(x),写成矩阵形式为: paper51.com
http://www.paper51.com |