1、1高级加密标准 AES2AES算法的整体结构 Rijndael 由比利时的 Joan Daemen和 Vincent Rijmen设计,算法的原型是 Square算法,经过修改后确定为高级数据加密标准 AES. 典型的 SPN结构 有较好的数学理论作为基础;结构简单、速度快Key Length(Nk words)Block Size(Nb words)Number of Rounds (Nr)AES-128 4 4 10AES-192 6 4 12AES-256 8 4 143AES算法的整体结构轮密钥加字节替代行移位列混合4初始状态矩阵( state)AES算法的分组长度固定为 128比特,
2、以字节为基本单位转换为状态 字节 ,依顺序 a00, a10, a20, a30, a01, a23, a33,前 4个字节组成第 1列,后四个字节组成第 2列,依次类推, AES算法明文分组可以构成一个 44的字节矩阵,如图所示 3-23,加密结束时,输出也是从状态字节中按相同的顺序提取。5AES算法举例学习下面我们以一个 128位块为例,开始分别介绍 AES加密算法基本变换的具体过程。为了表达简洁,下面的中间结果都用 16进制来表示。则 128比特二进制示例块用 16进制表示则对应为 0x 80 5E 6A 36 53 25 3A 66 63 35 69 03 20 6C 28 066课堂
3、思考题例如 “good good study !day day up !”采用 AES算法,明文输入初始状态矩阵?7初始密钥实例:设初始密钥(初始子密钥矩阵与明文类似0x 75 35 6B 99 05 61 39 56 73 62 05 31 00 55 09 32 8轮密钥加 =此处轮密钥是初始密钥,轮密钥长度等于分组长度。 9字节代替( SubBytes) 字节变换( SubBytes)使用一个 S盒, S盒是一个 16 6的矩阵,如表所示。其非线性置换为:输入的列的每个元素用来指定 S盒的地址:前 4位指定 S盒的行,后 4位指定 S盒的列。行和列所确定 S盒位置的元素取代输入矩阵中相应位置的元素,例如 “03” ,行 0,列 3,因此输入 “03” ,输出“7B”。10字节替代所用 S盒