网站大量收购独家精品文档,联系QQ:2885784924

课件:AES密码算法教学.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
THANK YOU SUCCESS * * 可编辑 * (3) 列混合(MixColumn) 在列混合变换中,将状态阵列的每个列视为GF(28)上的多项式,再与一个固定的多项式c(x)进行模x4+1乘法。 c(x)是模x4+1可逆的多项式,否则列混合变换就是不可逆的,因而会使不同的输入分组对应的输出分组可能相同。 AES的设计者给出的c(x)为(系数用十六进制数表示): c(x)=‘03’x3+‘01’x2+‘01’x+‘02’ * c(x)是与x4+1互素的,因此是模x4+1可逆的。列混合运算也可写为矩阵乘法。 设b(x)= c(x)⊙a(x),则 * 这个运算需要做GF(28)上的乘法,但由于所 乘的因子是3个固定的元素02、03、01, MixColumn(State) 列混合运算示意图 * 列混合运算的逆运算是类似的,即每列都用 一个特定的多项式d(x)相乘。d(x)满足 (‘03’x3+‘01’x2+‘01’x+‘02’) ⊙d(x)=‘01’ 由此可得 d(x)=‘0B’x3+‘0D’x2+‘09’x+‘0E’ * (4) 密钥加(AddRoundKey) 密钥加是将轮密钥简单地与状态进行逐比特异或。轮密钥由种子密钥通过密钥编排算法得到,轮密钥长度等于分组长度Nb。 状态State与轮密钥RoundKey的密钥加运算表示为 AddRoundKey (State, RoundKey) 密钥加运算的逆运算是其自身。 * 密钥加运算示意图 * * 5. 密钥编排 密钥编排指从种子密钥得到轮密钥的过程,它由密钥扩展和轮密钥选取两部分组成。其基本原则如下: 轮密钥的比特数等于分组长度乘以轮数加1; 种子密钥被扩展成为扩展密钥; 轮密钥从扩展密钥中取,其中第1轮轮密钥取扩展密钥的前Nb个字,第2轮轮密钥取接下来的Nb个字,如此下去。 * 密钥扩展 K15 K11 K7 K3 K14 K10 K6 K2 K13 K9 K5 K1 K12 K8 K4 K0 W3 w2 w1 w0 w7 w6 w5 w4 g ⊕ ⊕ ⊕ ⊕ * 密钥扩展的计算 第八轮密钥 EAD27321(32) B58DBAD2(33)312BF560(34) 7F8D292F(35) 1.字循环:使一个字的中的四个字节循环左移一个字节. W35 = temp=7F8D292F         RotWord后=7F8D292F 2.S盒对输入的每个字节进行代换         SubWord=5DA515D2 {7F}经过s盒的代换得到{5D} 3. 第2步的结果SubWord=5DA515D2与轮常量进行 Rcon[9] ⊕5DA515D2=1B000000 ⊕ 5DA515D2 =46A515D2 * 常量是一个字,最右边三个字节总是为0 RCON[J]=(RC[J],0,0,0) J 1 2 3 4 5 6 7 8 9 10 RC[J] 01 02 04 08 10 20 40 80 1B 36 I(十进制) temp RubWord后 Rcon(9) 36 7F8D292F 8D292F7F 5DA515D2 Rcon(9) 与Rcon进行XOR后 W[I-4] W[I]=temp⊕w[i-4] 1B000000 46A515D2 EAD27321 AC7766F3 * G=46A515D2 W36 = G ⊕ W32 = 46A515D2 ⊕ EAD27321 =AC7766F3 W37= W33 ⊕ W36 W38= W34 ⊕ W37 W39= W35 ⊕ W38 * 小结 综上所述,组成Rijndael轮函数的计算部件简捷快速,功能互补。 Round (State, RoundKey) { ByteSub (State); ShiftRow (State); MixColumn (State); AddRoundKey (State, RoundKey) } * * 5.4 若明文是 {000102030405060708090A0B0C0D0E0F}, 密钥是 {01010101010101010101010101010101} a.用4*4的矩阵来描述State的最初内容. b.给出初始化轮密钥加后State的值. c.给出字节代换后State的值. d,给出行移位后State的值. e.给出列混淆后State的值. f.给出第一轮密钥加后State的值. 习题 THANK YOU SUCCESS * * 可编辑 * 1 可编辑 可编辑 *

文档评论(0)

iuad + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档