AES 课程设计报告.doc
《AES 课程设计报告.doc》由会员分享,可在线阅读,更多相关《AES 课程设计报告.doc(55页珍藏版)》请在沃文网上搜索。
1、 引 言密码学是一门古老而年轻的科学,密码学经历了几千年的演化与发展,形成了丰富的内涵,并得到了广泛的应用。密码学起源于信息隐藏,就是为了达到机密信息不被非授权地获知目的而采取的某种手段或方式;现代密码学主要基于数学或物理的方法进行某种变换来实现。密码学曾经高深莫测、讳莫如深,主要用于国家外交或军事等重要领域;但随着科学技术的发展(尤其是电子信息技术的发展),网络成为人们生活的必需品,现在密码学与人们的平时生活和工作都息息相关,已成长为网络信息安全的基石。现代密码学中最主要的三大加密算法:DES加密算法、AES加密算法、RSA加密算法已经逐渐成为电子通信、金融、智能卡(IC卡)等众多领域维护自
2、身信息安全的主要工具。因此,了解并掌握这三大算法是我们维护自身通信安全的基本要求。在这三大算法中,DES和AES作为对称密码体制的两大加密标准,具有比非对称密码体制(RSA)密钥长度小、加解密速度快的优点,因此使用范围更广。接下来,针对DES和AES,我就简单分析一下。DES起源于1973年美国国家标准局(NBS)征求国家密码标准方案。IBM就提交了其在20世纪60年代末设立的一个计算机密码编码学方面的项目研究成果,这个项目在1971年结束时研制出了一种称为Lucifer的算法。它是当时提出的最好算法,因而在1977年被选为数据加密标准,有效期为5年,随后在1983、1987、1993年3次再
3、度授权该算法续用5年。由此,DES被美国国家标准局(NBS)确定为联邦信息处理标准(FIPS PUB 46),得到过最广泛的应用,特别是在金融领域,曾是对称密码体制事实上的世界标准。但是,近年来随着新的加密算法AES加密算法的出现,以及其相比于DES有更好的安全性、效率、灵活性,AES渐渐有取代DES的趋势,并成为新的加密标准。AES标准(FIPS 197)在2001年12月由美国国家标准与技术研究所(NIST)正式发布,其要求分组大小为128位,允许3个不同的密钥大小,即128位、192位或256位,并以两个比利时研究者Vincent Rijmen和Joan Daemen发明的Rijndae
4、l算法作为AES加密的核心,特别是Rijndael算法所采用的掩码实现方式非常有利于抵抗能量攻击和计时攻击,因此,AES得到了迅速地推广和应用。正是基于AES具有更好的安全性、效率、灵活性,所以,我决定对AES的加密解密技术做更深一步的探讨与研究。 目 录摘要.(1)Abstract.(2)1. AES出现的背景与开发意义.(3)2. 系统的主要设计.(3) 2.1系统设计的主要目标.(4)2.2系统的开发环境.(4)2.3系统的主要功能模块.(4) 2.4系统开发的结构流程图.(5)3. 系统的主要功能模块设计.(5) 3.1基本模块部分.(5)3.1.1 字节替换.(5)3.1.2 行移位
5、.(7)3.1.3 列混合.(8)3.1.4 轮密钥加.(9)3.1.5 密钥扩展.(10)3.1.6 获取RoundKey.(13)3.1.7 逆字节替换.(13)3.1.8 逆行移位.(14)3.1.9 逆列混合.(14) 3.2主要模块部分.(16) 3.2.1加密.(16) 3.2.1.1调用代码中的明文和密钥加密.(16) 3.2.1.2键盘输入128bit明文和密钥加密.(17) 3.2.1.3键盘输入明文和192bit密钥加密.(19) 3.2.1.4从文件中读取明文和192bit密钥实现加密.(20) 3.2.2解密.(20) 3.2.2.1键盘输入128bit密文和密钥解密.
6、(22) 3.2.2.2从文件中读取密文和128bit密钥进行解密.(23) 3.2.3菜单模块.(25) 3.2.4 main()函数模块.(26)4. 程序测试结果与分析.(26) 4.1程序测试结果截图.(26) 4.1.1演示函数AES_128_Show_Encrypt( )运行结果截图.(26) 4.1.2文件解密函数AES_128_File_Decrypt( )结果截图.(28) 4.2对演示函数AES_128_Show_Encrypt( )测试结果的分析.(28)5. 系统开发的优缺点以及需要改进的地方.(31) 5.1系统开发的优缺点.(31) 5.2系统需要改进与提高的地方.
7、(31)6. 小结.(31)7. 参考文献.(32)附录.(32)致谢.(52) AES加密与解密技术的开发 摘要AES加密算法的出现是密码学史上的又一次革命。其大大地弥补了DES加密算法的不足,密钥长度也由原来DES的64bit(实际有效位为56bit)增长到现在的128bit、192bit或256bit。此外,AES加密算法具有比DES加密算法更好的安全性、效率、灵活性。AES加密算法的核心是两个比利时研究者Vincent Rijmen和Joan Daemen发明的Rijndael算法。而本次我对AES的开发亦是以Rijndael算法为核心,主要实现键盘输入16进制明文和128bit(19
8、2bit)密钥的加密,以及简单的从文件读取明文和密钥并加密(文件格式为.txt,加密明文为16进制的128bit数据,密钥长度为192bit)、简单的从文件读取密文和密钥并解密(文件格式为.txt,解密明文为16进制的128bit数据,密钥长度为128bit)。并通过此次开发加深对AES加密算法(尤其是对Rijndael算法)的理解。关键词: AES DES Rijndael算法 文件加密与解密 AES Encryption and Decryption technology development Abstract AES encryption algorithm is the emerge
9、nce of the cryptography another revolution in the history of. It is greatly to make up for the DES encryption algorithm and the lack of a key length also from originally DES 64 bit (a practical and effective for 56 bit) growth to 128 now bit, 192 bit or 256 bit. In addition, AES encryption algorithm
10、 has better than DES encryption algorithm of safety, efficiency and flexibility. AES encryption algorithm that is the core of two Belgian researchers Vincent Rijmen and Joan Daemen invention Rijndael algorithm. And this I of development is also Rijndael AES algorithm as the core, mainly realizes the
11、 keyboard input hexadecimal expressly and 128 bit (192 bit) key encryption, and simple read from the file expressly and key and encryption (file format for TXT, encryption proclaimed. For hexadecimal 128 bit data, a key length for 192 bit), simple read from the file ciphertext and key and decryption
12、 (file format for declassification. TXT, expressly for hexadecimal 128 bit data, a key length for 128 bit). And through the development of AES encryption algorithm deepen (especially to Rijndael algorithm) understanding.Key words: AES DES Rijndael algorithm File Encryption and Decryption AES加密与解密技术的
13、开发 1. AES出现的背景与开发意义 随着对称密码的发展,DES数据加密标准(Data Encryption Standard)算法由于密钥长度较小(64位,但有效位为56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年美国国家标准与技术研究所(NIST)公开征集新的数据加密标准,即AES1。 AES即高级加密标准(Adcanced Encryption Standard) ,作为传统对称加密算法标准DES的替代者,有美国国家标准与技术研究所于1997年提出征集该算法的公告。1999年3月22日,NIST从15个候选算法中公布了5个候选算法进入第二轮悬着:MARS、R
14、C6、Rijindael、SERPENT和Twofish。经过三轮的筛选,2000年10月2日,以安全性(稳定的数学基础、没有算法弱点、算法抗密码分析的强度、算法输出的随机性)、性能(必须能再多种平台上一较快的速度实现)、大小(不能占用大量的存储空间和内存)、实现特性(灵活性、硬件和软件适应性、算法的简单性等)为标准而最终选定了两个比利时研究者Vincent Rijmen和Joan Daemen发明的Rijndael算法,并于2001年正式发布了AES标准。此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了
15、强安全性、高性能、高效率、易用和灵活等优点。由于AES的核心Rijndael算法的分组为固定长度的128bit,而密钥却有三种,分别为128bit、192bit、256bit,对应三种不同加密轮数分别为10轮、12轮、14轮。这就加大了算法实现的难度,加上每轮的4种变换,更加体现了算法的复杂性,所以我决定开发AES。而这样不仅加深了我对密码算法本身的认识,更加巩固了我本来不是很熟悉的C语言。AES算法采用的不可约多项式是p(x)=(84310),共256个多项余式构成了一个有限域,在这有限域上要用到字节运算和字运算。AES设计有三个密钥长度:128bit、192bit、256bit,相对而言,
16、AES的128bit密钥比DES的56bit密钥强1021倍2。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。本文将以128bit和192bit为例,介绍Rijndael算法的基本原理;并结合C语言,实现高级数据加密算法AES。2. 系统的主要设计 首先定义后面s盒变换和密钥扩展要用到的s盒数组和rcon数组(当然这时逆s盒数组也一起定义),然后定义s盒查找函数,行移位函数,列混合函数,因为这几个函数无论是在10轮还是12轮还是14轮执行时都没变化。然后就是12轮的轮密钥加和密钥扩展,接着就是12轮的加密函数本身。然后才是10轮的轮密钥加和密钥扩展,加密函数。最后是解密要用到的逆字节替代
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AES 课程设计报告 课程设计 报告