曹天杰全套配套课件计算机系统安全第3版 5密码学基础AES

上传人:f****u 文档编号:122864724 上传时间:2020-03-07 格式:PPT 页数:44 大小:1.41MB
返回 下载 相关 举报
曹天杰全套配套课件计算机系统安全第3版 5密码学基础AES_第1页
第1页 / 共44页
曹天杰全套配套课件计算机系统安全第3版 5密码学基础AES_第2页
第2页 / 共44页
曹天杰全套配套课件计算机系统安全第3版 5密码学基础AES_第3页
第3页 / 共44页
曹天杰全套配套课件计算机系统安全第3版 5密码学基础AES_第4页
第4页 / 共44页
曹天杰全套配套课件计算机系统安全第3版 5密码学基础AES_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《曹天杰全套配套课件计算机系统安全第3版 5密码学基础AES》由会员分享,可在线阅读,更多相关《曹天杰全套配套课件计算机系统安全第3版 5密码学基础AES(44页珍藏版)》请在金锄头文库上搜索。

1、密码学基础AES 曹天杰 tjcao 中国矿业大学计算机科学与技术学院 1 高级加密标准AES n1997年4月15日 美国 国家标准技术研究所 NIST 发起征集高级加密标准AES的活动 n1997年9月12日 美国联邦登记处公布了正式征集 AES候选算法的通告 n对AES的基本要求是 比三重DES快 至少与三 重DES一样安全 数据分组长度为128比特 密钥 长度为128 192 256比特 2 高级加密标准AES n1998年8月12日 在首届AES会议上指定了15 个候选算法 n1999年3月22日第二次AES会议上 将候选名 单减少为5个 这5个算法是RC6 Rijndael SER

2、PENT Twofish和MARS n2000年4月13日 第三次AES会议上 对这5个 候选算法的各种分析结果进行了讨论 n2000年10月2日 NIST宣布了获胜者 Rijndael 算法 2001年11月出版了最终标准FIPS PUB197 3 高级加密标准AES nRijndael算法是一个迭代型分组密码 其 分组长度和密钥长度都可变 各自可以 为128比特 192比特 256比特 n Rijndael对明文以字节为单位进行处理 n以128位的分组 128位密钥的情况为例 将明文按字节分成列组 每4个字节组 成一列 依次排列则组成了一个4乘4的 矩阵 4 高级加密标准AES AES的状

3、态矩阵 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33 a00a10a20a30a01a11a21a31a02a12a22a32a03a13a23a33 5 高级加密标准AES n这样AES输入的16个字节排成了一个二 维数组 称之为状态矩阵 nAES的加密和解密变换都是基于状态数 组来处理的 在中间结果上的不同变换 操作称为状态 nAES的状态矩阵的列数Nb等于明文的长 度除以32 矩阵中的每个元素是一个8位 字节 6 n密钥也可以表示成一个4 Nk的矩阵 Nk等于密钥 的长度除以32 当密钥长度为128位时Nk

4、 4 密钥矩阵 k00k01k02k03 k10k11k12k13 k20k21k22k23 k30k31k32k33 7 AES的加密变换 n讨论密钥长度为128比特 分组长度为 128比特的情况 其他分组长度和密钥长 度的类型 AES工作的原理是相同的 n与DES相同 AES也是由最基本的变换单 位 轮 多次迭代而成的 当分组长 度和密钥分组长度均为128比特时 轮数 为Nr 10 8 AES的加密变换 n将轮变换计为Round State RoundKey State表示消息矩阵 RoundKey表示轮密 钥矩阵 n一轮的完成将改变State矩阵中的元素 称为改变它的状态 n对于加密来说

5、 输入到第一轮中的State 就是明文消息矩阵 最后一轮输出的 State就是对应的密文消息矩阵 9 AES的加密变换 nAES的轮 除最后一轮外 变换有四个 不同的变换组成 这些变化称之为内部 轮函数 AES的轮可表示成如下形式 Round State RoundKey SubBytes State ShiftRows State MixColumns State AddRoundKey State RoundKey 10 AES的加密变换 nSubBytes State 为字节代替变换 ShiftRow State 为行移位变换 MixColumn State 为列混合变换 AddRoun

6、dKey State RoundKey 为与子密钥 与 n最后一轮记作 FinalRoundKey State RoundKey 相当于前面的Round State RoundKey 去掉 MixColumns State 11 AES的加密变换 nAES的算法的执行过程为 1 给定的明文M 将M初始化为State 并进行 AddRoundKey State RoundKey 将RoundKey 与State进行异或运算 2 对于前Nr 1轮中的每一轮 分别执行 Round State RoundKey 过程 3 执行最后一轮FinalRoundKey State RoundKey 过程 即只

7、执行SubBytes State ShiftRows State AddRoundKey State RoundKey 三个操作 12 AES加密过程 轮变换Nr 1轮 SubBytes State ShiftRows State MixColumns State AddRoundKey State RoundKey RoundKey SubBytes State ShiftRows State AddRoundKey State RoundKey RoundKey 明文M 明文State化RoundKey 13 AES的加密变换 nSubBytes State 字节代替变换 SubBytes

8、 State 为非线性的 可逆的 字节代替变换 该变换是由两个子变换 合成 将字节看成有限域GF 28 上的元素 按模m x 映射到自己的乘法逆 0映射到 自身 14 AES的加密变换 n包含有限个元素的域被称为有限域 它在密码 学中有着重要的应用 n每个方程对应于一个域 即含有方程全部根的 域 称为这方程的伽罗华域 有限域 这个 域对应一个群 即这个方程根的置换群 称为 这方程的伽罗华群 n元素个数相同的任何两个有限域是同构的 因 此 在同构意义下 对每个素数p和一个正整数n 存在一个而且只有一个含pn个元素的有限域 这个有限域记作GF pn 15 AES的加密变换 GF 2 的仿射变换 做

9、如下的GF 2 的仿射变换 16 AES的加密变换 n可以预先将GF 28 上的每个元素做SubBytes State 变换 从而形成字节代替表 也称为S盒 子 进行SubBytes State 变换时只需要查表操 作 nAES的S盒是一个16乘16的矩阵 通过查表可 以方便的得到SubBytes State 的输出 如果状 态中的一个字节为xy 则在S盒的第x行 y列 对应的字节就是SubBytes State 的输出 17 AES的字节代替表 0123456789abcdef 0637c777bf26b6fc53001672bfed7ab76 1ca82c97dfa5947f0add4a2

10、af9ca472c0 2b7fd9326363ff7cc34a5e5f171d83115 304c723c31896059a071280e2eb27b275 409832c1a1b6e5aa0523bd6b329e32f84 553d100ed20fcb15b6acbbe394a4c58cf 6d0efaafb434d338545f9027f503c9fa8 751a3408f929d38f5bcb6da2110fff3d2 8cd0c13ec5f974417c4a77e3d645d1973 960814fdc222a908846eeb814de5e0bdb ae0323a0a4906245c

11、c2d3ac629195e479 be7c8376d8dd54ea96c56f4ea657aae08 cba78252e1ca6b4c6e8dd741f4bbd8b8a d703eb5664803f60e613557b986c11d9e ee1f8981169d98e949b1e87e9ce5528df f8ca1890dbfe6426841992d0fb054bb16 18 AES的加密变换 SubBytes State 字节变换示例 21 a3 12 b7 3a db 04 9c 74 ff e5 af 8c 48 5b 7c fd 0a c9 a9 80 b9 f2 de 92 16 d

12、9 79 64 52 39 10 SubBytes State 19 AES的加密变换 nShiftRow State 行移位变换 ShiftRow State 行移位变换作用于S盒 的输出 对状态数组的每一行循环左移 不同的字节 若密钥为128位的情况 第0行保持不 变 其他行内的字节循环左移 第1行移 动1个字节 第2行移动2个字节 第3行 移动3个字节 20 a00a01a02a03 a10a11a12a13 a20a21a22a23 a30a31a32a33 ShiftRow State 变换 a00a01a02a03 a11a12a13a10 a22a23a20a21 a33a30a

13、31a32 ShiftRow State 21 nMixColumn State 列混合变换 MixColumn State 将状态数组上的每 一列看成GF 28 上的一个多项式 且与一 个固定的多项式c x 进行模M x x4 1 乘法 其中多项式c x 03 x3 01 x2 01 x 02 22 a00a01a02a03 a10a11a12a13 a20a21a22a23 a30a31a32a33 MixColumn State 变换 b00b01b02b03 b10b11b12b13 b20b21b22b23 b30b31b32b33 c x 23 令bj x c x aj x 0 j

14、 3 表示模x4 1乘法 由于xi mod x4 1 xi mod 4 可以 将其表示成矩阵乘法 MixColumn State 变换矩阵相乘 2 03 01 01 1 01 03 01 2 01 02 03 03 01 01 02 a0j a1j a2j a3j b0j b1j b2j b3j 24 如果ShiftRow State 变换输出的某一 列为11 09 01和35 那么利用矩阵相 乘 可得 02 03 01 01 01 02 03 01 01 01 01 03 03 01 01 02 73 6b ba a7 11 09 01 35 25 nAddRoundKey State Ro

15、undKey 与子密钥 与 AddRoundKey State ExpandedKey 只 是简单的将密钥按位异或到一个状态上 AddRoundKey State ExpandedKey 变换 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 a30 a31 a32 a33 k00 k01 k02 k03 k10 k11 k12 k13 k20 k21 k22 k23 k30 k31 k32 k33 b00 b01 b02 b03 b10 b11 b12 b13 b20 b21 b22 b23 b30 b31 b32 b33 XOR 26 AES的

16、解密变换 nAES的解密变换与加密变换是互逆的 轮函数也分为4层 分别为 InvShiftRow State 逆行移位变换 InvSubBytes State 逆字节代替变换 AddRoundKey State RoundKey 与子密钥 位与和InvMixColumn State 逆列混合变 换 n同样在最后一轮中 不采用列的 InvMixColumn State 变换 27 AES的解密变换 将AES的解密过程的轮变换表示为 InvRound State RoundKey InvShiftRow State InvSubBytes State AddRoundKey State RoundKey InvMixColumn State 28 AES的解密变换 nAES的算法的解密执行过程为 1 给定的密文C 进行State初始化 并进行 AddRoundKey State RoundKey 将RoundKey 与State进行异或运算 2 对于前Nr 1轮中的每一轮 分别执行 InvRound State RoundKey 过程 3 执行最后一轮的InvShiftRow State

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号