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

AES密码算法––教学.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AES密码算法––教学

1 复习提问 DES加密算法的轮结构是怎么实现的 DES加密算法的轮结构是怎么实现的 3.6 AES算法说明 AES是一个迭代型分组密码,其分组长度和密钥长度都可变,各自可以独立地指定为128比特、192比特、256比特。 1. 轮函数 AES的轮函数由4个不同的计算部件组成,分别是: 字节代换(ByteSub)、 行移位(ShiftRow)、 列混合(MixColumn)、 密钥加(AddRoundKey)。 一轮函数结构图 (1) 字节代换(ByteSub) 字节代换是非线形变换,独立地对状态的每个字节进行。代换表(即S-盒)是可逆的,由以下两个变换的合成得到: ① 首先,将字节看作GF(28)上的元素,映射到自己的乘法逆元,‘00’映射到自己。 ② 其次,对字节做如下的(GF(2)上的,可逆的)仿射变换: 上述S-盒对状态的所有字节所做的变换记为 ByteSub (State) 输入 state数组和输出 state数组由S盒变换输出 (2) 行移位(ShiftRow) 行移位变换 (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个字,如此下去。 密钥扩展 密钥扩展的计算 第八轮密钥 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) 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的值

文档评论(0)

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

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

1亿VIP精品文档

相关文档