长春站最新发布,上海市开办企业一窗网上服务,工业园做网站的公司,网站模版的优化文章目录 1. 简介2. 密钥加法层2. 字节代换层3. 行位移 - ShiftRows4. 列混淆 - MixColumn5. 其他5.1列混淆矩阵乘法运算5.2 AES密钥生成 6. 参考资料 以下内容为信息安全开发过程中#xff0c;AES对称加密算法的笔记#xff0c;大部分内容转载其他文章#xff0c;若描述不清… 文章目录 1. 简介2. 密钥加法层2. 字节代换层3. 行位移 - ShiftRows4. 列混淆 - MixColumn5. 其他5.1列混淆矩阵乘法运算5.2 AES密钥生成 6. 参考资料 以下内容为信息安全开发过程中AES对称加密算法的笔记大部分内容转载其他文章若描述不清楚可以直接看原文。
1. 简介 AES算法主要有四种操作处理分别是密钥加法层(也叫轮密钥加英文Add Round Key)、字节代换层(SubByte)、行位移层(Shift Rows)、列混淆层(Mix Column)。而明文x和密钥k都是由16个字节组成的数据(当然密钥还支持192位和256位的长度暂时不考虑)它是按照字节的先后顺序从上到下、从左到右进行排列的。而加密出的密文读取顺序也是按照这个顺序读取的相当于将数组还原成字符串的模样了然后再解密的时候又是按照4·4数组处理的。AES算法在处理的轮数上只有最后一轮操作与前面的轮处理上有些许不同(最后一轮只是少了列混淆处理)在轮处理开始前还单独进行了一次轮密钥加的处理。在处理轮数上我们只考虑128位密钥的10轮处理。 输入字节顺序 AES算法流程图 以下分别介绍密钥加法层(也叫轮密钥加英文Add Round Key)、字节代换层(SubByte)、行位移层(Shift Rows)、列混淆层(Mix Column)、秘钥变换方法。
2. 密钥加法层
在密钥加法层中有两个输入的参数分别是明文和子密钥k[0]而且这两个输入都是128位的。这里需要注意在扩展域中加减法操作和异或运算等价所以这里的处理也就异常的简单了只需要将两个输入的数据进行按字节异或操作就会得到运算的结果。
2. 字节代换层
字节代换层的主要功能就是让输入的数据通过S_box表完成从一个字节到另一个字节的映射S_box表是一个拥有256个字节元素的数组可以将其定义为一维数组也可以将其定义为16·16的二维数组如果将其定义为二维数组目前看见的常规用法读取S_box数据的方法就是要将输入数据的每个字节的高四位作为第一个下标第四位作为第二个下标。逆S盒与S盒对应用于解密时对数据处理我们对解密时的程序处理称作逆字节代换只是使用的代换表盒加密时不同而已。 S盒 Eg输入数据为0x19对应输出为0xD4第1行第9列 逆S盒
3. 行位移 - ShiftRows
行位移操作最为简单它是用来将输入数据作为一个4·4的字节矩阵进行处理的然后将这个矩阵的字节进行位置上的置换。ShiftRows子层属于AES手动的扩散层目的是将单个位上的变换扩散到影响整个状态从而达到雪崩效应。在加密时行位移处理与解密时的处理相反我们这里将解密时的处理称作逆行位移。它之所以称作行位移是因为它只在4·4矩阵的行间进行操作每行4字节的数据。在加密时保持矩阵的第一行不变第二行向左移动8Bit(一个字节)、第三行向左移动2个字节、第四行向左移动3个字节。而在解密时恰恰相反依然保持第一行不变将第二行向右移动一个字节、第三行右移2个字节、第四行右移3个字节。
4. 列混淆 - MixColumn
列混淆子层是AES算法中最为复杂的部分属于扩散层列混淆操作是AES算法中主要的扩散元素它混淆了输入矩阵的每一列使输入的每个字节都会影响到4个输出字节。 在加密的正向列混淆中我们要将输入的4·4矩阵左乘一个给定的4·4矩阵。而它们之间的加法、乘法都在扩展域GF(2^8)中进行。 具体运算法则见“列混淆矩阵乘法运算” PS:在解密的逆向列混淆中与正向列混淆的不同之处在于使用的左乘矩阵不同它与正向列混淆的左乘矩阵互为逆矩阵也就是说数据矩阵同时左乘这两个矩阵后数据矩阵不会发生任何变化。
5. 其他
5.1列混淆矩阵乘法运算
注意正矩阵中只有0x01、0x02、0x030x01与任何数相乘不发生变换0x02、0x03运算规则如下
5.2 AES密钥生成
记子秘钥矩阵第一列为w0第二列为w2,…,wi,w0~w3为初始秘钥矩阵这里介绍i 4的计算方法128对应i为9196对应11256对应为13 具体框图如下 G函数处理流程分为以下几步 字循环将1个字中的4个字节循环左移8bit同“行移位”处理方式一致 字节代换对字循环的结果使用S盒字节代换 轮常量异或将字节代换结果与轮系数进行异或注意这里只与字节代换的最高byte进行异或 6. 参考资料
https://zhuanlan.zhihu.com/p/78913397https://www.bilibili.com/video/BV1i341187fK/?