aes密码算法-教学

上传人:shaoy****1971 文档编号:111927530 上传时间:2019-11-04 格式:PPT 页数:31 大小:954.31KB
返回 下载 相关 举报
aes密码算法-教学_第1页
第1页 / 共31页
aes密码算法-教学_第2页
第2页 / 共31页
aes密码算法-教学_第3页
第3页 / 共31页
aes密码算法-教学_第4页
第4页 / 共31页
aes密码算法-教学_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《aes密码算法-教学》由会员分享,可在线阅读,更多相关《aes密码算法-教学(31页珍藏版)》请在金锄头文库上搜索。

1、复习提问 DES加密算法的轮结构是怎么实现的 1 DES加密算法的轮结构是怎么实现的 2 3.6 AES算法说明 AES是一个迭代型分组密码,其分 组长度和密钥长度都可变,各自可以 独立地指定为128比特、192比特、 256比特。 3 1. 轮函数 AES的轮函数由4个不同的计算部件组成, 分别是: 字节代换(ByteSub)、 行移位(ShiftRow)、 列混合(MixColumn)、 密钥加(AddRoundKey)。 4 5 一轮函数结构图 6 (1) 字节代换(ByteSub) 字节代换是非线形变换,独立地对状态的 每个字节进行。代换表(即S-盒)是可逆 的,由以下两个变换的合成得

2、到: 首先,将字节看作GF(28)上的元素, 映射到自己的乘法逆元,00映射到自己 。 其次,对字节做如下的(GF(2)上的, 可逆的)仿射变换: 7 8 上述S-盒对状态的所有字节所做的变换记为 ByteSub (State) 字节代换示意图 9 10 11 输入 state数组和输出 in0In4In8In12 In1In5In9In13 In2In6In10In14 In3In7in11In15 S0.0S0.1S0.2S0.3 S1.0S1.1S1.2S1.3 S2.0S2.1S2.2S2.3 S3.0S3.1S3.2S3.3 EA046585 83455D96 5C3398B0 F0

3、2DADC5 87F24D97 EC6E4C90 4AC346E7 8CD895A6 S盒 12 state数组由S盒变换输出 13 (2) 行移位(ShiftRow) 14 15 行移位变换 87F24D97 EC6E4C90 4AC346E7 8CD895A6 87F24D97 6E4C90EC 64E7A4C3 A68CD895 16 (3) 列混合(MixColumn) 在列混合变换中,将状态阵列的每个列视 为GF(28)上的多项式,再与一个固定的多 项式c(x)进行模x4+1乘法。 c(x)是模x4+1可逆的多项式,否则列混合 变换就是不可逆的,因而会使不同的输入 分组对应的输出分组

4、可能相同。 AES的设计者给出的c(x)为(系数用十六 进制数表示): c(x)=03x3+01x2+01x+02 17 c(x)是与x4+1互素的,因此是模x4+1可逆的 。列混合运算也可写为矩阵乘法。 设b(x)= c(x)a(x),则 18 这个运算需要做GF(28)上的乘法,但由于所 乘的因子是3个固定的元素02、03、01, MixColumn(State) 列混合运算示意图19 列混合运算的逆运算是类似的,即每列都用 一个特定的多项式d(x)相乘。d(x)满足 (03x3+01x2+01x+02) d(x)=01 由此可得 d(x)=0Bx3+0Dx2+09x+0E 20 (4)

5、密钥加(AddRoundKey) 密钥加是将轮密钥简单地与状态进行逐比 特异或。轮密钥由种子密钥通过密钥编排 算法得到,轮密钥长度等于分组长度Nb。 状态State与轮密钥RoundKey的密钥加运 算表示为 AddRoundKey (State, RoundKey) 密钥加运算的逆运算是其自身。 21 密钥加运算示意图 22 23 5. 密钥编排 密钥编排指从种子密钥得到轮密钥的过程, 它由密钥扩展和轮密钥选取两部分组成。 其基本原则如下: 轮密钥的比特数等于分组长度乘以轮数加 1; 种子密钥被扩展成为扩展密钥; 轮密钥从扩展密钥中取,其中第1轮轮密 钥取扩展密钥的前Nb个字,第2轮轮密钥

6、取接下来的Nb个字,如此下去。 24 密钥扩展 K15K11K7K3 K14K10K6K2 K13K9K5K1 K12K8K4K0 W3w2w1w0 w7w6w5w4 g 25 密钥扩展的计算 第八轮密钥 EAD27321(32) B58DBAD2(33)312BF560(34) 7F8D292F(35) 字循环:使一个字的中的四个字节循环左移一个字 节 W35 = temp=7F8D292F RotWord后7F8D292F 盒对输入的每个字节进行代换 SubWord=5DA515D2 7F经过s盒的代换得到5D 3. 第步的结果SubWord=5DA515D2与轮常量进行 Rcon9 5D

7、A515D2=1B000000 5DA515D2 =46A515D2 26 常量是一个字,最右边三个字节总是为 RCONJ=(RCJ,0,0,0) J12345678910 RCJ 01020408102040801B36 I(十进制)tempRubWord 后 Rcon(9) 367F8D292F8D292F7F5DA515D2 Rcon(9)与Rcon进进行XOR后WI-4 WI=tempwi-4 1B00000046A515D2EAD27321AC7766F3 27 G=46A515D2 W36 = G W32 = 46A515D2 EAD27321 =AC7766F3 W37= W33

8、 W36 W38= W34 W37 W39= W35 W38 28 小结 综上所述,组成Rijndael轮函数的计算部件 简捷快速,功能互补。 Round (State, RoundKey) ByteSub (State); ShiftRow (State); MixColumn (State); AddRoundKey (State, RoundKey) 29 30 5.4 若明文是 000102030405060708090A0B0C0D0E0F, 密钥是 01010101010101010101010101010101 a.用4*4的矩阵来描述State的最初内容. b.给出初始化轮密钥加后State的值. c.给出字节代换后State的值. d,给出行移位后State的值. e.给出列混淆后State的值. f.给出第一轮密钥加后State的值. 习题 31

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

当前位置:首页 > 中学教育 > 职业教育

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