编程实现aes算法的加密解密过程

编程实现aes算法的加密解密过程

ID:10112785

大小:337.50 KB

页数:18页

时间:2018-06-10

编程实现aes算法的加密解密过程_第1页
编程实现aes算法的加密解密过程_第2页
编程实现aes算法的加密解密过程_第3页
编程实现aes算法的加密解密过程_第4页
编程实现aes算法的加密解密过程_第5页
资源描述:

《编程实现aes算法的加密解密过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、信息安全工程课程实验报告编程实现AES算法的加密解密过程课程名称:信息安全工程学生姓名:学生学号:专业班级:任课教师:蔡忠闽目录1背景与意义32实验要求33.系统设计43.1系统主要目标43.2主要软件需求(运行环境)44AES算法加密和解密原理分析44.1加密过程基本变换64.2解密过程基本变换64.3密钥扩展算法75.系统功能程序设计76.测试报告176.1加密176.2解密197实验总结211背景与意义科技的发展使计算机深入到了我们生活的的方方面面,计算机在带来方便和提高了工作效率的同时却也带来了

2、各种各样的新问题,其中信息安全问题最为突出,随着计算机信息安全要求的不断提高,计算机保密系统已变得越来越重要,所以我们需要一种较为可靠的加密算法来保护我们信息的安全。由于DES已经无法满足高保密性的要求,美国于1997年1月开始征集新一代数据加密标准(即高级数据加密标准,AdvancedEncryptionStandard,AES)。2000年10月2日,正式宣布选择比利时密码学家所开发的Rijndael算法成为AES的最终算法。AES(TheAdvancedEncryptionStandard)是美国

3、国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES是一个新的可以用于保护电子数据的加密算法。明确地说,AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。该算法为比利时密码学家JoanDae

4、men和VincentRijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于"Rhinedoll"。)AES在软体及硬件上都能快速地加解密,相对来说较易于实作,且只需要很少的记忆体。作为一个新的加密标准,目前正被部署应用到更广大的范围.2实验要求(1)一人一组(2)AES算法加密和解密原理分析(3)提交完整的源程序(使用网络上的现成程序一定要注明出处)(4)提交程序的设计,说明文档(5)用ECB和分组链模式CBC,对给定内容进行加密和解

5、密,提交解密结果,并提交实验心得,着重阐述对实验的理解(6)程序调试成功后,处理以下内容:A、AES加密明文:各自的姓名+邮箱秘钥:各自的手机号B、AES解密密文:邮箱附件给出秘钥:(给出秘钥为ASCII码形式,请将ASCII码转为二进制,不满128位在其后补零):130729810633.系统设计3.1系统主要目标1.在深入理解AES加密/解密算法理论的基础上,设计一个AES加密/解密软件系统;2.完成一个明文分组的加解密,明文和密钥是十六进制,输入明文和密钥,输出密文,进行加密后,能够进行正确的解密

6、;3.按要求提供所设计系统的报告及完整的软件。3.2主要软件需求(运行环境)本软件适用VC语言编写,编译成功后的EXE文件可以在装有windows系统的任何计算机上使用。测试平台:Windows8使用软件:VisualStudio2012/C++4AES算法加密和解密原理分析AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥长度,并且用128位分组长度加密和解密数据[2]。该算法输入分组、输出分组、状态长度均为128比特。对于AES算法的运算是在一个称为状态的二维字节数组上进

7、行。一个状态由四行组成,每一行包括Nb个字节,Nb等于分组长度除以32,AES分组长度为128位,因此,Nb=4,该值反应了状态中32-bit字的个数(列数);密钥长度128、192和256位可分别表示为Nk=4、6或8,反应了密钥中32-bit字的个数(列数)。而AES算法的轮数Nr仅依赖于密钥长度Nk,轮数和密钥长度的关系可以表示为:Nr=6+Nk。密钥长度—分组长度—轮数的关系如表1所示。表1Key-Block-Round关系密钥长度(Nkwords)分组长度(Nbwords)轮数(Nr)4410

8、64128414对于加密和解密变换,AES算法使用的轮函数由4个不同的以字节为基本单位的变换复合而成,该过程由四个不同的阶段组成[3]:(1)S盒变换,用一个S盒完成分组中的按字节代替;(2)行移位变换,一个简单的置换;(3)列混淆变换,一个利用在域GF(28)上的算术性的代替;(4)轮密钥加变换,一个利用当前分组和扩展密钥的一个部分进行按位异或。AES对数据的加密过程是通过把输入的明文和密钥由轮函数经Nr轮迭代来实现的,结尾轮与前Nr-1

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

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

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