AES密码算法--教学.ppt

上传人:b****2 文档编号:2638201 上传时间:2022-11-04 格式:PPT 页数:31 大小:759KB
下载 相关 举报
AES密码算法--教学.ppt_第1页
第1页 / 共31页
AES密码算法--教学.ppt_第2页
第2页 / 共31页
AES密码算法--教学.ppt_第3页
第3页 / 共31页
AES密码算法--教学.ppt_第4页
第4页 / 共31页
AES密码算法--教学.ppt_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

AES密码算法--教学.ppt

《AES密码算法--教学.ppt》由会员分享,可在线阅读,更多相关《AES密码算法--教学.ppt(31页珍藏版)》请在冰豆网上搜索。

AES密码算法--教学.ppt

复习提问1.DES加密算法的轮结构是怎么实现的1DES加密算法的轮结构是怎么实现的23.6AES算法说明AES是一个迭代型分组密码,其分组长度和密钥长度都可变,各自可以独立地指定为128比特、192比特、256比特。

31.轮函数AES的轮函数由4个不同的计算部件组成,分别是:

字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)、密钥加(AddRoundKey)。

45一轮函数结构图6

(1)字节代换(ByteSub)字节代换是非线形变换,独立地对状态的每个字节进行。

代换表(即S-盒)是可逆的,由以下两个变换的合成得到:

首先,将字节看作GF(28)上的元素,映射到自己的乘法逆元,00映射到自己。

其次,对字节做如下的(GF

(2)上的,可逆的)仿射变换:

78上述S-盒对状态的所有字节所做的变换记为ByteSub(State)字节代换示意图91011输入state数组和输出in0In4In8In12In1In5In9In13In2In6In10In14In3In7in11In15S0.0S0.1S0.2S0.3S1.0S1.1S1.2S1.3S2.0S2.1S2.2S2.3S3.0S3.1S3.2S3.3EA04658583455D965C3398B0F02DADC587F24D97EC6E4C904AC346E78CD895A6S盒12state数组由S盒变换输出13

(2)行移位(ShiftRow)1415行移位变换87F24D97EC6E4C904AC346E78CD895A687F24D976E4C90EC64E7A4C3A68CD89516(3)列混合(MixColumn)在列混合变换中,将状态阵列的每个列视为GF(28)上的多项式,再与一个固定的多项式c(x)进行模x4+1乘法。

c(x)是模x4+1可逆的多项式,否则列混合变换就是不可逆的,因而会使不同的输入分组对应的输出分组可能相同。

AES的设计者给出的c(x)为(系数用十六进制数表示):

c(x)=03x3+01x2+01x+0217c(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+0E20(4)密钥加(AddRoundKey)密钥加是将轮密钥简单地与状态进行逐比特异或。

轮密钥由种子密钥通过密钥编排算法得到,轮密钥长度等于分组长度Nb。

状态State与轮密钥RoundKey的密钥加运算表示为AddRoundKey(State,RoundKey)密钥加运算的逆运算是其自身。

21密钥加运算示意图22235.密钥编排密钥编排指从种子密钥得到轮密钥的过程,它由密钥扩展和轮密钥选取两部分组成。

其基本原则如下:

轮密钥的比特数等于分组长度乘以轮数加1;种子密钥被扩展成为扩展密钥;轮密钥从扩展密钥中取,其中第1轮轮密钥取扩展密钥的前Nb个字,第2轮轮密钥取接下来的Nb个字,如此下去。

24密钥扩展K15K11K7K3K14K10K6K2K13K9K5K1K12K8K4K0W3w2w1w0w7w6w5w4g25密钥扩展的计算第八轮密钥EAD27321(32)B58DBAD2(33)312BF560(34)7F8D292F(35)字循环:

使一个字的中的四个字节循环左移一个字节W35=temp=7F8D292FRotWord后7F8D292F盒对输入的每个字节进行代换SubWord=5DA515D27F经过s盒的代换得到5D3.第步的结果SubWord=5DA515D2与轮常量进行Rcon95DA515D2=1B0000005DA515D2=46A515D226常量是一个字,最右边三个字节总是为RCONJ=(RCJ,0,0,0)J12345678910RCJ01020408102040801B36I(十进制)tempRubWord后Rcon(9)367F8D292F8D292F7F5DA515D2Rcon(9)与与Rcon进行进行XOR后后WI-4WI=tempwi-41B00000046A515D2EAD27321AC7766F327G=46A515D2W36=GW32=46A515D2EAD27321=AC7766F3W37=W33W36W38=W34W37W39=W35W3828小结综上所述,组成Rijndael轮函数的计算部件简捷快速,功能互补。

Round(State,RoundKey)ByteSub(State);ShiftRow(State);MixColumn(State);AddRoundKey(State,RoundKey)29305.4若明文是000102030405060708090A0B0C0D0E0F,密钥是01010101010101010101010101010101a.用4*4的矩阵来描述State的最初内容.b.给出初始化轮密钥加后State的值.c.给出字节代换后State的值.d,给出行移位后State的值.e.给出列混淆后State的值.f.给出第一轮密钥加后State的值.习题31

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1