AES加密解密算法的设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录1.引言........................................................................................................................................................12.AES加密解密原理................................................................................................................................23.AES加密解密算法的组成部分.............................................................................................................63.1密钥部分.....................................................................................................................................63.1.1AES的S盒........................................................................................................................63.1.2AES的逆S盒....................................................................................................................73.1.3轮常量.............................................................................................................................83.1.4密钥移位函数..................................................................................................................83.1.5密钥字代换函数..............................................................................................................83.1.6密钥扩展算法..................................................................................................................93.2加密的部分...............................................................................................................................103.2.1轮密钥加变换AddRoundKey(与密钥扩展的异或运算)........................................103.2.2字节代换SubBytes(即S盒变换).............................................................................113.2.3行移位变换ShiftRows....................................................................................................133.2.4列混淆变换MixColumns...............................................................................................143.3解密的部分...............................................................................................................................153.3.1逆行移位变换InvShiftRows...........................................................................................153.3.2逆向字节代换(即逆S盒变换).................................................................................163.3.3轮密钥加变换................................................................................................................173.3.4逆列混淆变换................................................................................................................174.AES加密解密算法的改进...................................................................................................................185.结束语..................................................................................................................................................1911.引言对称密码算法主要用于保证数据的机密性,通信双方在加密/解密过程中使用它们共享的单一密钥。对称密码算法的使用相当广泛,密码学界已经对它们进行了深入的研究[1]。最常用的对称密码算法是数据加密标准(DES)算法,它是由IBM在美国国家安全局(NSA)授意之下研制的一种使用56位密钥的分组密码算法[2]。该算法从1977年公布成为美国政府的商用加密标准后,使用了30多年。随着社会的发展,科学技术日新月异,密码分析水平、芯片处理能力和计算技术也不断地进步,二十世纪七十年代到现在应用广泛的DES数据加密标准算法因为其密钥长度较小(仅有56位),已经越来越难适应当今社会的加密技术和安全要求,其实现速度、代码大小和跨平台性也不足以适应新的各种应用要求。1997年,RSA安全赞助了一系列的竞赛,奖励第一个成功破解以DES加密的信息的队伍1万美元,洛克·韦尔谢什(RockeVerser),马特·柯廷(MattCurtin)和贾斯廷·多尔斯基(JustinDolske)领导的DESCHALL计划获胜,该计划使用了数千台连接到互联网的计算机的闲置计算能力[3]。证明了DES的密钥长度(56位),能被当前社会加密解密技术破解,其安全性有待提高。1998年,电子前哨基金会(EFF,一个信息人权组织)制造了一台DES破解器[4]。虽然其制造价格约$250,000,但是它用两天多一点儿的时间就暴力破解了一个密钥,显示出迅速破解DES的可能性,说明了DES的安全性已经开始降低。DES的主要问题是其密钥长度较短(仅56位),已经不适应当今分布式开放网络对数据加密安全性的要求。随着计算机能力的突飞猛进,已经超期服役的DES终于显得力不从心。在这种形势下,迫切需要设计一种强有力的算法作为新的一代分组加密标准,所以在DES每隔五年的评估会议中,1997年美国国家标准技术研究院(NIST,NationalInstituteofStandardsandTechnology)公开征集新的数据加密标准,最后一次美国政府终于决定不再继续延用DES作为联邦加密标准,也就表明了DES将退出加密标准的舞台,而新的标准:高级加密标准AES(AdvancedEncryptionStandard)走上了历史的舞台[5]。该算法作为新一代的数据加密标准汇聚了安全性、效率、密钥灵活性、多样性、简单性和对称性等优点。因此1997年美国国家标准技术研究院(NIST,NationalInstituteofStandardsandTechnology)公开征集新的数据加密标准,即AES[6]。该算法作为新一代的数据加密标准2汇聚了安全性、效率、密钥灵活性、多样性、简单性和对称性等优点。高级加密标准(AES),这个标准用来替代上一个世纪的DES,已经被多方分析并且广为全世界所使用。经过长达五年的甄选流程,得出了结果[7]。高级加密标准由美国国家标准与技术研究院(NIST)在2001年11月26日发布于FIPSPUB197,并在2002年5月26日成为有效的标准[8]。2006年,高级加密标准(AES)发展成为了对称密钥加密中最流行的算法之一。AES是美国国家标准技术研究所NIST旨在取代DES的新一代的加密标准。NIST对AES候选算法的基本要求是:对称分组密码体制;密钥长度支持128、192、256位;明文分组长度128位;算法应易于各种硬件和软件实现。1998年NIST开始AES第一轮征集、分析、测试,共产生了15个候选算法。1999年3月完成了第二轮AES的分析、测试。1999年8月NIST公布了五种算法(MARS,RC6,Rijndael,Serpent,Twofish)成为候选算法[9]。经过激烈的角逐,Rijndael,由比利时人设计的算法与其它候选算法在成为高级加密标准(AES)的竞争中取得成功,于2000年10月被NIST宣布成为取代DES的新一代的数据加密标准,即AES(这也是为什么人们将AES算法叫作Rijndael算法的原因)[10]。尽管人们对AES还有不同的看法,但总体来说,Rijndael作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES的三个密钥长度:128、192和256比特。它与DES相比,它的128比特密钥比DES的56比特密钥要强上10^21倍。2.AES加密解密原理AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。加密过程中使用的密钥是由Rijndael密钥生成方案产生[11]。AES算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES使用几种不同的方法来执行排列和置换运算。大多数AES计算是在一个特别的有限域完成的。AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)[12]。3(Rijndael加密法因支持更大的区块,其矩阵行数可视情况增加)加密时,各轮AES

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功