AES 文件加密解密 课程设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指导教师姓 高雁飞 教研室 名 课程设计题 文件加密/解密系统 目 设计目的、任务和要求
信息与计算科学 人数 1 学时 2周
设计目的: 本课程设计力求为学生提供一个理论联系实际的机会。通过实践,建立密码学 理论的整体思想,锻炼编写、调试程序的能力,学习文档编写规范,培养独立 学习、吸取他人经验、探索前沿知识的习惯,树立团队协作精神。同时,课程 设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷, 更好地 帮助学生从全局角度把握课程体系。 设计任务: (1)在深入理解 DES 或 AES 加密/解密算法理论的基础上,设计一个 DES 或 AES 加密/解密软件系统; (2)加/解密过程可用分组密码运行模式中的任一种模式; (3)完成一个明文分组的加解密,明文和密钥可以是二进制,十六进制或者 ASCII 码。进行加密后,能够进行正确的解密; (4)提供良好的用户界面; (5)要求提供所设计系统的报告及完整的软件。 设计的方法和步骤 第一步:进行系统设计; 第二步:代码编码; 第三步:对实现部分的软件功能或者模块进行测试 第四步:提交完整可执行软件,准备答辩; 第五步:答辩,演示软件,教师根据实际情况提出测试用例,学生作最后的修 改和完善,教师对软件运行部分进行评分; 第六步:完成课程设计报告并提交。
2.1 系统主要目标...................................................................................................................................... 3 2.2 系统运行环境...................................................................................................................................... 3 2.3 功能模块与系统结构...................................................................................................................... 4 3.系统功能程序设计 .................................................................................................................................. 6 3.1 字节替换 ................................................................................................................................................. 6 3.2 行移位...................................................................................................................................................... 7 3.3 列混合....................................................................................................................................................... 7 3.4 混合列变换中的乘法运算 ............................................................................................................ 7 3.5 密钥扩展 ................................................................................................................................................. 9 3.6 逆字节替换 ......................................................................................................................................... 11 3.7 逆行移位 .............................................................................................................................................. 11 3.8 加密 ......................................................................................................................................................... 11 3.9 解密 ......................................................................................................................................................... 12 软件测试 ............................................................................................................................................................ 14 小结 ....................................................................................................................................................................... 17 参考文献 ............................................................................................................................................................ 17 附录:.................................................................................................................................................................. 18
第
页, 共
页
摘要
随着现代密码分析水平、芯片处理能力和计算技术的不断进步,高级加密标 准AES的Rijndael算法将在各行业各部门获得了广泛的应用,成为虚拟专用网、 SONET、远程访问服务器、高速ATM以太网路由器、移动通信、卫星通信、电子金 融业务等的加密算法, 并逐渐取代DES在IPSec、 SSL和 ATM中的加密功能。 目前, IEEE 802.11草案已经定义了AES加密的两种不同运行模式,成功解决了无限局域 网标准中的诸多安全问题。在这种情形下,AES算法的安全性及其快速实现问题 显得格外突出。文章阐述了Rijndael算法的设计特色,详细介绍了AES具体的加 密解密算法函数。此外,AES算法具有抵抗强力攻击的能力,抵抗差分分析和线 性密码分析的能力,抵抗渗透攻击和代数计算攻击的能力,抵抗XSL攻击和弱密 钥分析的能力。从这几个方面可以说明AES具有良好的安全性能。另外,我们根 据算法的安全性、代价以及算法与实现特性的原则实现了AES简单常用的加密解 密算法。
教研室签字:
年
月
日
学院签字:
年
月
日
目录 目录 .......................................................................................................................................................................... 1 摘要 .......................................................................................................................................................................... 2 AES 加密解密的实现 ...................................................................................................................................... 3 1. 背景 ............................................................................................................................................................... 3 2. 系统设计..................................................................................................................................................... 3
设计工作计划 1. 本次课程设计的时间是 2 周,工作计划如下: 2. 任务书下达,理解选题,明确软件功能,分析和设计:2 天; 3. 分析和设计报告的撰写:1 天 4. 实现部分设计及文档编写;1 天; 5. 编码及调试:4 天; 6. 报告完善及打印:1 天; 7. 成果提交和验收:1 天。
主要参考资料 1、陈鲁生、沈世镒《现代密码学》 (2) 北京:科学出版社,2008 年 2、Michael Welschenbach 编著,赵振江,连国卿等译,《编码密码学——加 密方法的 C 与 C++实现》,电子工业出版社,2003 年 6 月; 3、http://www.mathmagic.cn/
关键字 :
AES
Hale Waihona Puke Baidu
Rijndael算法
第
页, 共
页
AES 加密解密的实现
1. 背景
AES, 密码学中的 高级加密标准 ( Advanced Encryption Standard, AES) , 又称 Rijndael 加密算法,是美 国联邦政府采用的一种区块加密 标准。这个 标准用来替代 原先的 DES,已经被多方分 析且广为全世界所使用 。经过五年 的甄选流程, 高级加密标准由美国国家标准与 技术研究院( NIST) 于 2001 年 11 月 26 日 发布于 FIPS PUB 197, 并在 2002 年 5 月 26 日成为有 效的标 准。 2006 年,高级加密标准已然成为 对称密钥加密中最流行的算法 之一。 AES 有一个固定的 128 位的 块大小和 128, 192 或 256 位大小 的 密 钥 大 小 。 该算法为比利 时密码学家 Joan Daemen 和 Vincent Rijmen 所设计,结 合两位作者的 名字, 以 Rijndael 之命名之 , 投稿高级加密标 准的甄选流程。 ( Rijdael 的发音近于 "Rhine doll"。) AES 在软体及硬件上都能快速地加 解密,相对来说较易于实作,且只需要很少的记忆体。作为一个新的加密标准, 目前正被部署应用到更广大的范围。
信息与计算科学 人数 1 学时 2周
设计目的: 本课程设计力求为学生提供一个理论联系实际的机会。通过实践,建立密码学 理论的整体思想,锻炼编写、调试程序的能力,学习文档编写规范,培养独立 学习、吸取他人经验、探索前沿知识的习惯,树立团队协作精神。同时,课程 设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷, 更好地 帮助学生从全局角度把握课程体系。 设计任务: (1)在深入理解 DES 或 AES 加密/解密算法理论的基础上,设计一个 DES 或 AES 加密/解密软件系统; (2)加/解密过程可用分组密码运行模式中的任一种模式; (3)完成一个明文分组的加解密,明文和密钥可以是二进制,十六进制或者 ASCII 码。进行加密后,能够进行正确的解密; (4)提供良好的用户界面; (5)要求提供所设计系统的报告及完整的软件。 设计的方法和步骤 第一步:进行系统设计; 第二步:代码编码; 第三步:对实现部分的软件功能或者模块进行测试 第四步:提交完整可执行软件,准备答辩; 第五步:答辩,演示软件,教师根据实际情况提出测试用例,学生作最后的修 改和完善,教师对软件运行部分进行评分; 第六步:完成课程设计报告并提交。
2.1 系统主要目标...................................................................................................................................... 3 2.2 系统运行环境...................................................................................................................................... 3 2.3 功能模块与系统结构...................................................................................................................... 4 3.系统功能程序设计 .................................................................................................................................. 6 3.1 字节替换 ................................................................................................................................................. 6 3.2 行移位...................................................................................................................................................... 7 3.3 列混合....................................................................................................................................................... 7 3.4 混合列变换中的乘法运算 ............................................................................................................ 7 3.5 密钥扩展 ................................................................................................................................................. 9 3.6 逆字节替换 ......................................................................................................................................... 11 3.7 逆行移位 .............................................................................................................................................. 11 3.8 加密 ......................................................................................................................................................... 11 3.9 解密 ......................................................................................................................................................... 12 软件测试 ............................................................................................................................................................ 14 小结 ....................................................................................................................................................................... 17 参考文献 ............................................................................................................................................................ 17 附录:.................................................................................................................................................................. 18
第
页, 共
页
摘要
随着现代密码分析水平、芯片处理能力和计算技术的不断进步,高级加密标 准AES的Rijndael算法将在各行业各部门获得了广泛的应用,成为虚拟专用网、 SONET、远程访问服务器、高速ATM以太网路由器、移动通信、卫星通信、电子金 融业务等的加密算法, 并逐渐取代DES在IPSec、 SSL和 ATM中的加密功能。 目前, IEEE 802.11草案已经定义了AES加密的两种不同运行模式,成功解决了无限局域 网标准中的诸多安全问题。在这种情形下,AES算法的安全性及其快速实现问题 显得格外突出。文章阐述了Rijndael算法的设计特色,详细介绍了AES具体的加 密解密算法函数。此外,AES算法具有抵抗强力攻击的能力,抵抗差分分析和线 性密码分析的能力,抵抗渗透攻击和代数计算攻击的能力,抵抗XSL攻击和弱密 钥分析的能力。从这几个方面可以说明AES具有良好的安全性能。另外,我们根 据算法的安全性、代价以及算法与实现特性的原则实现了AES简单常用的加密解 密算法。
教研室签字:
年
月
日
学院签字:
年
月
日
目录 目录 .......................................................................................................................................................................... 1 摘要 .......................................................................................................................................................................... 2 AES 加密解密的实现 ...................................................................................................................................... 3 1. 背景 ............................................................................................................................................................... 3 2. 系统设计..................................................................................................................................................... 3
设计工作计划 1. 本次课程设计的时间是 2 周,工作计划如下: 2. 任务书下达,理解选题,明确软件功能,分析和设计:2 天; 3. 分析和设计报告的撰写:1 天 4. 实现部分设计及文档编写;1 天; 5. 编码及调试:4 天; 6. 报告完善及打印:1 天; 7. 成果提交和验收:1 天。
主要参考资料 1、陈鲁生、沈世镒《现代密码学》 (2) 北京:科学出版社,2008 年 2、Michael Welschenbach 编著,赵振江,连国卿等译,《编码密码学——加 密方法的 C 与 C++实现》,电子工业出版社,2003 年 6 月; 3、http://www.mathmagic.cn/
关键字 :
AES
Hale Waihona Puke Baidu
Rijndael算法
第
页, 共
页
AES 加密解密的实现
1. 背景
AES, 密码学中的 高级加密标准 ( Advanced Encryption Standard, AES) , 又称 Rijndael 加密算法,是美 国联邦政府采用的一种区块加密 标准。这个 标准用来替代 原先的 DES,已经被多方分 析且广为全世界所使用 。经过五年 的甄选流程, 高级加密标准由美国国家标准与 技术研究院( NIST) 于 2001 年 11 月 26 日 发布于 FIPS PUB 197, 并在 2002 年 5 月 26 日成为有 效的标 准。 2006 年,高级加密标准已然成为 对称密钥加密中最流行的算法 之一。 AES 有一个固定的 128 位的 块大小和 128, 192 或 256 位大小 的 密 钥 大 小 。 该算法为比利 时密码学家 Joan Daemen 和 Vincent Rijmen 所设计,结 合两位作者的 名字, 以 Rijndael 之命名之 , 投稿高级加密标 准的甄选流程。 ( Rijdael 的发音近于 "Rhine doll"。) AES 在软体及硬件上都能快速地加 解密,相对来说较易于实作,且只需要很少的记忆体。作为一个新的加密标准, 目前正被部署应用到更广大的范围。