密码学课程设计new

密码学课程设计new

ID:22366476

大小:235.00 KB

页数:15页

时间:2018-10-28

密码学课程设计new_第1页
密码学课程设计new_第2页
密码学课程设计new_第3页
密码学课程设计new_第4页
密码学课程设计new_第5页
资源描述:

《密码学课程设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、密码学课程设计学号:班级:姓名:指导教师2010年7月4日AES加解密算法一.原理AES是美国高级加密标准算法,将在未来几十年里代替DES在各个领域中得到广泛应用。  随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES[1]。经过三轮的筛选,比利时JoanDaeman和VincentRijmen提交的Rijndael算法被提议为AES的最终算法。此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。尽管人们对AES还有不同的看法,但总体来说,

2、AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长度:128,192,256位,相对而言,AES的128密钥比DES的56密钥强1021倍[2]。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。本文以128为例,介绍算法的基本原理;结合AVR汇编语言,实现高级数据加密算法AES。AES加密、解密算法原理AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与

3、。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。1圈变化  AES每一个圈变换由以下三个层组成:  非线性层——进行Subbyte变换;  线行混合层——进行ShiftRow和MixColumn运算;  密钥加层——进行AddRoundKey运算。  ①Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。  Schange:    ldizh,$01;将指针指向S盒的首地址    movzl,r2;将要查找的数据作为指针低

4、地址    ldtemp,z+;取出这个对应的数据    movr2,temp;交换数据完成查表    …    ret  ②ShiftRow是一个字节换位。它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的[3]。  shiftrow:;这是一个字节换位的子程序    movtemp,r3;因为是4×4    movr3,r7;r2r6r10r14r2r6r10r14    movr7,r11;r3r7r11r15---r7r11r15r3    movr11,r15;r4r8r12r17r12r17r4r8    movr15,temp

5、;r5r9r13r18r18r5r9r13    movtemp,r4    movtemp1,r8    movr4,r12    movr8,r17    movr12,temp    movr17,temp1    movtemp,r18    movr18,r13    movr13,r9    movr9,r5    movr5,temp    ret  ③在MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。b(x)=c(x)*a(x)的系数这样计算:*运算不是普通的乘法运算,而是特殊的运算,即  b(x

6、)=c(x)?a(x)(modx4+1)  对于这个运算  b0=02。a0+03。a1+a2+a3  令xtime(a0)=02。a0  其中,符号“。”表示模一个八次不可约多项式的同余乘法[3]。    movtemp,a0;这是一个mixcolimn子程序    rcallxtime;调用xtime程序    mova0,temp    movtemp,a1    rcallxtime    eora0,a1    eora0,temp    eora0,a2    eora0,a3;完成b(x)的计算    …  xtime:;这是一个子程序    lditemp

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

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

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

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