aes算法实验报告

aes算法实验报告

ID:27553569

大小:193.13 KB

页数:9页

时间:2018-12-03

aes算法实验报告_第1页
aes算法实验报告_第2页
aes算法实验报告_第3页
aes算法实验报告_第4页
aes算法实验报告_第5页
资源描述:

《aes算法实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验报告姓名:XXXXXXX学号:XXXXXXXXXX班级:XXXXXXXXX臼期:2013/12/*题目:AES算法实验一、实验环境1.硬件配置:处理器:Inter(R)Core(TM)i5-2430MCPU@2.40GHz(4CPUs),〜2.4GHz内存:2048MBRAM2.使用软件:(1)操作系统:win7旗舰版(2)软件工具:MicrosoftVisualC++6.0二、实验涉及的相关概念或基本原理AES是一个新的可以用于保护电子数据的加密算法。明确地说,AES是一个迭代的、对称密钥分组的密码,

2、它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(pennuUtior^)和替换(substitutions)输入数据。Figure1显示丫AES用192位密钥对一个16位字节数据块进行加密和解密的情形。对称密码算法根据对明文消息加密方式的不同可分为两大类,即分组密码和流密码。分组密码将消息分为固定长度的分组

3、,输出的密文分组通常与输入的明文分组长度相同、AES算法属于分组密码算法,它的输入分组、输出分组以及加/解密过程屮的屮间分组都是128比特。密钥的长度K为128,192或256比特。用Nk=4,6,8代表密钥串的字数(1字=32比特),在本文编制的程序中由用户选定。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系见表1)。每一轮都需要一个和输入分组具有同样长度(128比特)的扩展密钥Ke的参与。由于外部输入的加密密钥K长度有限,所以在AES中要用一个密钥扩展程序(KeyExpansion)把外部

4、密钥K扩展成更长的比特串,以生成各轮的加密密钥。(1)加密变换设X是AES的128比特明文输入,Y是128比特的密文输出,则AES密文Y可以用下面的合变换表示:Y=AR-AC.S•…C•S-k(r+l)•S.kr•R-Ak(r21)其中”“•表示合运算。这里Aki:表示对X的一个变换Aki(X)=XKi(Ki为第i轮的子密钥,为比特串的异或运算)。S:S盒置换。即对每一个字节用S2Box做一个置换。S2Box是一个给定的转换表。匕行置换。C:列置(换。s'x)=a(x)s(x)解密变换是加密变换的逆变换。三

5、、实验内容AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同忪度的扩展密钥Expandedkeyd)的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成更忪的比特串,以生成各轮的加密和解密密钥。1.1圈变化AES每一个圈变换由以下三个层组成:非线性层一一进行Subbyte变换;线行混合层进行ShiftRow和MixColu

6、mn运算;密钥加层进行AddRoundKey运算。①Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。②ShiftRow是一个字节挽位。它将状态中的行按照不同的偏移呈进行循环移位,而这个偏移量也是根据Nb的不同而选择的[3]。③在MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。b(x)=c(x)*a(x)的系数这样计算:*运算不是普通的乘法运算,而是特殊的运算,即b(x)=c(x)-a(x)(modx4

7、+l)对于这个运算b0=02。a0+03。al+a2+a3令xtime(a0)=02。aO其中,符号“。”表示模一个八次不可约多项式的同余乘法[3]。7r•7)203()1ora::nUl02030)01()102()3加—03()10102^^3.对于逆变化,其矩阵C要改变成相应的D,即b(x)=d(x)*a(x)。④密钥加层运算(addround)是将圈密钥状态屮的对应字节按位“异或”。⑤根据线性变化的性质[1],解密运算是加密变化的逆变化。这里不再详细叙述。1.2轮变化对不同的分组长度,其对应的轮变化

8、次数是不同的,如表1所列。农1AES类5?与萁参数的关系格变化》/次AES-1284•110?ES-]92$112AES-••K[141.3密钥扩展AES算法利用外部输入密钥K(密钥串的字数为Nk),通过密钥的扩展程序得到共计4(Nr+l)字的扩展密钥。它涉及如下三个模块:①位賈变换(rotword)——把一个4字节的序列[A,B,C,D]变化成[B,C,D,A];②S盒变换(subword)对一个4字节进行S

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。