数据加密分组对称算法

数据加密分组对称算法

ID:11320798

大小:127.50 KB

页数:0页

时间:2018-07-11

数据加密分组对称算法_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《数据加密分组对称算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、128位分组对称加密算法:AESAES是美国高级加密标准算法,将在未来几十年里代替DES在各个领域中得到广泛应用。本文在研究分析AES加密算法原理的基础上,着重说明算法的实现步骤,并结合AVR汇编语言完整地实现AES加密和解密。根据AES原理,提出几种列变化的优化算法,并根据实验结果分析和比较它们的优缺点。关键词:AES算法DESAVR汇编语言加密算法解密算法引言  随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES[1]。经

2、过三轮的筛选,比利时JoanDaeman和VincentRijmen提交的Rijndael算法被提议为AES的最终算法。此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长度:128,192,256位,相对而言,AES的128密钥比DES的56密钥强1021倍[2]。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。本文以128为例,介绍算法的基本原理;结合AVR汇编语言,实现高级数据加密算法AES。

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

4、;密钥加层——进行AddRoundKey运算。①Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。Schange:ldizh,$01;将指针指向S盒的首地址movzl,r2;将要查找的数据作为指针低地址ldtemp,z+;取出这个对应的数据movr2,temp;交换数据完成查表...ret②ShiftRow是一个字节换位。它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的[3]。shiftrow:;这是一个字节换位的子程序movtemp,r3;因为是4×4movr3,r7;r

5、2r6r10r14r2r6r10r14movr7,r11;r3r7r11r15---r7r11r15r3movr11,r15;r4r8r12r17r12r17r4r8movr15,temp;r5r9r13r18r18r5r9r13movtemp,r4movtemp1,r8movr4,r12movr8,r17movr12,tempmovr17,temp1movtemp,r18movr18,r13movr13,r9movr9,r5movr5,tempret③在MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相

6、乘的结果。b(x)=c(x)*a(x)的系数这样计算:*运算不是普通的乘法运算,而是特殊的运算,即b(x)=c(x)·a(x)(modx4+1)对于这个运算b0=02。a0+03。a1+a2+a3令xtime(a0)=02。a0其中,符号“。”表示模一个八次不可约多项式的同余乘法[3]。movtemp,a0;这是一个mixcolimn子程序rcallxtime;调用xtime程序mova0,tempmovtemp,a1rcallxtimeeora0,a1eora0,tempeora0,a2eora0,a3;完成b(x)的计算...xtime:;这是一个

7、子程序lditemp1,$1blsltempbrcsnext1;如果最高位是1,则转移next:ret;否则什么也不变化next1:eortemp,temp1rjmpnext  对于逆变化,其矩阵C要改变成相应的D,即b(x)=d(x)*a(x)。④密钥加层运算(addround)是将圈密钥状态中的对应字节按位“异或”。⑤根据线性变化的性质[1],解密运算是加密变化的逆变化。这里不再详细叙述。1.2轮变化  对不同的分组长度,其对应的轮变化次数是不同的,如表1所列。      1.3密钥扩展  AES算法利用外部输入密钥K(密钥串的字数为Nk),通过密

8、钥的扩展程序得到共计4(Nr+1)字的扩展密钥。它涉及如下三个模块:①位置变换(rotword

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

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

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