1 / 22
文档名称:

AES加密技术简介.doc

格式:doc   大小:131KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

AES加密技术简介.doc

上传人:ttteee8 2020/8/5 文件大小:131 KB

下载得到文件列表

AES加密技术简介.doc

文档介绍

文档介绍:AES加密技术2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的一项新的密匙加密标准。Rijndael被选中成为将来的AES。Rijndael是在1999年下半年,由研究员JoanDaemen和VincentRijmen创建的。AES正口益成为加密各种形式的电子数据的实际标准。美国标准与技术研究院(NIST)于2002年5月26日制定了新的高级加密标准(AES)规范。算法原理AES算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES使用几种不同的方法来执行排列和置换运算。AES是一个迭代的、对称密钥分组的密码,它可以使用12&192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环屮重复置换和替换输入数据。AES与3DES的比较算法名称算法类型密钥长度速度解密时间(建设机器每秒尝试255个密钥)资源消耗AES对称block密码128、192、256位高1490000亿年低3DES对称feistel密码112位或168位低46亿年中(http://hi./feel22/blog/item/)关键词:AES算法DESAVR汇编语言加密算法解密算法引言随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据•加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES[口经过二轮的筛选,比利时JoanDaeman和VincentRijmen提交的Rijndael算法被提议为AES的最终算法。此算法将成为美国新的数据加密标准而被广泛应用在各个领域屮。尽管人们对AES还有不同的看法,但总体说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长®:128,192,256位,相对而言,AES的128密钥比DES的56密钥强1021倍[2]。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。本文以128为例,介绍算法的基本原理;结合AVR汇编语言,实现高级数据加密算法AESoAES加密、解密算法原理和AVR实现AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展稈序(Keyexpansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。:非线性层——进行Subbyte变换;线行混合层 进行ShiftRow和MixColumn运算;密钥加层——进行AddRoundKey运算。Subbyte变换是作用在状态屮每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。Schange:Idizh,$01;将指针指向S盒的首地址movzlJr2;将要查找的数据作为指针低地址Idtemp,z+;取出这个对应的数据movr2,temp;交换数据完成查表retShiftRow是一个字节换位。它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的[3]。shiftrow:;这是一个字节换位的子程序movtemp,r3;因为是4x4movr3,r7;r2r6r10r14r2r6r10r14movr7,r11;r3r7r11r15—r7r11r15r3movr11,r15;r4r8r12r17r12r17r4r8movr15,temp;r5r9r13r18r18r5r9r13movtemp,r4movtempi,r8movr4,r12movr8,r17movr12,tempmovr17,temp1movtemp,r18movr18,r13movr13,r9movr9,r5movr5,tempret在MixColumn变换中,把状态中的每•列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。b(x)=c(x)*a(x)的系数这样计算广运算不是普通的乘法运算,而是特殊的运算,即b(x)=c(x)-a(x)(modx4+1)对于这个运算b0=02oa0+03。a1+a2+a3令xtime(a0)=02oaO其中,符号蔦”表示模一个八次不可约多项式的同余乘法[3]。movtemp,aO;这是一个mixcolimn子程序rcallxt