AES课程设计

  • 格式:wps
  • 大小:604.98 KB
  • 文档页数:27

摘要 随着计算机通信技术的飞速发展以及互联网的广泛应用,人们对信息安全的需求也越来越高。信息安全已经成了当今尤为重要的且亟待解决的问题。目前,高级加密标准(AdvancedEncryptionStandard,AES)还没有为人所知的漏洞,AES算法可以说是当前密码算法设计最高水平的反映。用硬件实现数据加密已经成为信息安全的主流。国外一些机构已经推出IP核,国内在加密算法的研究及应用方面起步较晚,随着AES算法日益受到人们的广泛关注,对硬件实现的AES产品的需求也稳步攀升。 文章阐述了Rijndael算法的设计特色,介绍了AES在密码分析方面国内外已有的一些理论分析成果,描述了AES算法采用软件和硬件实现方案。此外,本文章从数学基础的知识上阐明了AES算法的四个步骤。从AES算法抵抗强力攻击能力,抵抗差分分析和线性密码分析的能力,抵抗渗透攻击能力,抵抗代数计算攻击能力,抵抗XSL攻击能力,弱密钥的分析这几个方面进行了分析从而说明AES的安全性能。我们根据算法的安全性、代价以及算法与实现特性的原则实现了AES的算法,从密钥编排方案分析了密钥的设计准则和选取。 关键词:AES算法 加密 解密 安全性能分析 第一章 绪 论 1. 题目背景 科技的发展特别是网络的发展使计算机深入到了各行各业的方方面面,计算机在带来方便和提高了工作效率的同时却也带来了各种各样的新问题,其中信息安全问题最为突出,随着计算机信息安全要求的不断提高, 计算机保密系统已变得越来越重要,密码学应用不再是局限于军事、国防等有限领域,而是迅速的走进了千家万户。

2. AES算法密码分析的进展

对称密码加密系统中最著名的是数据加密标准 D E S ( D a t a E n c r y p t i o n S t a n d a r d ) 、 高级加密标准 A E S ( A d v a n c e d E n e r y p t i o n S t a n d a r d ) 和国际数据加密标准 I D E A( I n t e r na t i o n a l D a t a E n e r y p t i o n A l g o r i t hm) 。1 9 7 7年,美国国家标准局正式公布并实施了数据加密标准D E S ,公开了它的加密算法 ,并批准用于非机密单位和商业上的保密通信。随后,D E S成为全世界使用最广泛的加密标准。但是,经过多年的使用,已经发现了D E S的很多不足之处, 对 D E S的破解方 法也有日趋得逞之势。美国国家标准和技术协 会 NI S T( t h e N a t i o n a l I n s t i t u t e o f S t a n d a r d s a n d T e c h — n o l o g y ) 在 1 9 9 7年 1月2日正式宣布了公开征集高 级加密标准 A E S 。2 0 0 0年 l 0月2日, N I S T宣布 R i j n d a e l 算法被选中成为将来的 A E S 。R i j n d a e l 算法 是在 1 9 9 9年下半年, 由研究员 J o a n D a e m e n和 V i n c e n t R i j m e n创建的。2 0 0 1年1 1 月2 6日, N I S T正式公布了新标准 A E S , 其编号为 F I P S P U B S 1 9 7 J 。新标准 A E S将会代替旧的D E S而日益成为加密各种形式的电子数据的实际标准。 2002年亚洲密码分析研讨会上,Courtois[16]提出一种称为XSL攻击的分组密码分析新方法,主要思想是用一系列次数低、方程数大于变元数的超定方程组来描述密码系统,通过解方程组来破解分组密码。同年美洲密码分析研讨会上,Murphy[17]设计了一种新的算法BES(Big Encryption System),将AES中GF(82)和GF(2)上的两种域运算归结为域GF(82)上的运算,使AES成为某种消息空间和密钥空间下的BES,通过研究形式更为简洁的BES,可以更清晰地了解AES算法内部的数学结构。2002年第297期《科学》杂志[18]高度评价了这两个最新分析成果。 韦宝典[25]利用Walsh谱理论分析Rijndael算法S盒的严格雪崩特性、扩散特性和相关免疫性等密码性质,提出了广义自相关函数的概念,解决了严格雪崩准则和扩散准则阶数的确定问题;基于等价类的划分、线性方程组的求解和标准基之对偶基的计算,给出了域元素分量代数表达式的3种求法,提出了一种基于生日悖论、利用活动性进行攻击的新方法;指出了Square-6攻击是不成功的,并给出了修正攻击方案。 第二章 基础设置 AES算法是一些相当复杂的运算,虽然本文要实现的只是8位处理器上实现128位的运算,但还是很有必要采用模块化思想按照层次结构来设计及实现一些其它的辅助函数,而不是把它们内嵌在算法函数内,这样既能够避免算法函数的程序代码的过分冗长、使代码清晰易懂、突出算法过程又能够使程序易于测试、排错、更新和复用。由于本文重点在乘法类算法,下面只介绍一些关键的辅助函数,其它辅助函数要到相关算法使用到时再简略介绍。

1. AES简介 密码算法的理论与实现研究是信息安全研究的基础。对各类电子信息进行加密,在其存储、处理、传送以及交换过程中实施保护,是保证信息安全的有效措施。数据加密标准DES于1977年1月向社会公布,它是第一个世界公认的实用分组密码算法标准。但在经过20年的应用后,DES已被认为不可靠。3DES作为DES的替代,密钥长度为168bits,可克服穷举攻击问题。同时,3DES的底层加密算法对密码分析攻击有很强的免疫力。但由于用软件实现该算法的速度慢,使得3DES不能成为长期使用的加密算法标准,需要一种新的高级加密标准来替代。AES具有密钥灵活性及较高的可实现性,具有较高的安全性能及实现效率,其密钥建立时间极短,且灵敏性良好。Rijndeal算法给出了最佳查分特征概率,进行了算法抵抗差分密码分析以及线性密码分析。无论Rijndeal使用反馈模式或无反馈模式,其硬件和软件实现性生能都表现优秀。此外,Rijndeal对内存的极低需求使其适合于在存储器受限环境下使用,并能够表现出极好的性能。

AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。 AES加密算法包括字节替换SubBytes()、行移位ShiftRows0、列混合MixColumns0和密钥加AddRoundKey()等函数。本文只研究分组长度和密钥长度均为128位的情况,记做AES一128。AES一128算法对状态矩阵进行操作。状态矩阵是128位数据按列优先原则排列的4x4矩阵,矩阵中的每一个元素为一个字节。AES一128算法要进行10轮轮变换,加密时轮变换主要有字节替换SubBytes()、行移位ShiftRows0、列混合MixColumns0和密钥加AddRoundKey()运算。对于每次轮变换,AES算法需要一个轮密钥,该轮密钥由初始密钥经密钥扩展函数生成。 1.1 AES与3DES的比较 算法名称 算法类型 密钥长度 速度 解密时间(建设机器每秒尝试255个密钥) 资源消耗

AES 对称block密码 128、192、256位 高 1490000亿年 低

3DES 对称feistel密码 112位或168位 低 46亿年 中

2. AES算法的数学基础 有限域就是具有有限个元素的域,元素个数必须是一个素数的幂P,n为正整数并称为域的阶,P为素数并称为有限域的特征j。在Rijndael的描述中均使用以2为特征的有限域,并用符号“o”表示2特征域中的加法运算。对每一个素数幂恰好存在一个有限域,用CF(p)表示。当凡=1时的有限域记为GF(P),其元素可以用集合{0,1,…,P一1}来表示,该域的两种运算则是“模P的整数加法”和“模P的整数乘法”。 3. AES和Rijndael的区别 Rijndael和AES之间的唯一差别在于各自所支持的分组长度和密码密钥长度的范围不同。 Rijndael是具有可变分组长度和可变密钥长度的分组密码。其分组长度和密钥长度均可独立地设定为32比特的任意倍数,最小值为128比特,最大值是256比特。我们可以定义具有更大分组长度和密钥长度的各种版本的Rijndael,但目前似乎没有必要。 AES将分组长度固定为128比特,而且仅支持128、192或256比特的密钥长度。在AES的选择过程中,Rijndael所具有的额外的分组长度和密钥长度没有评估。因此,这定在当前的FIPS标准中也为被采用。

4. AES算法的分析 一个密码算法的有效性首先体现在可靠的安全性上。Rijndael算法设计采用针对差分和线性密码分析提出的宽轨迹策略(WTS),其最大优势是可以给出算法最佳差分特征的概率以及最佳线性逼近偏差的界;使用简单的部件组织成清晰的结构,便于算法安全性的分析。当然,在密码学界永远没有绝对的安全,Rijndael算法也不例外,如其明显的代数结构对安全性的潜在威胁已经受到一些学者的质