1、 密码学课程设计密码学课程设计 实验报告实验报告 实验题目:实验题目:文件加密文件加密/ /解密系统解密系统 实验实验任务书任务书 课程设计题目课程设计题目 文件加密/解密系统 人数人数 1 学时学时 2 周 设计目的、任务和要求设计目的、任务和要求 设计目的: 本课程设计力求为学生提供一个理论联系实际的机会。通过实践,建立密码学理论的整 体思想,锻炼编写、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经 验、探索前沿知识的习惯,树立团队协作精神。同时,课程设计可以充分弥补课堂教学 及普通实验中知识深度与广度有限的缺陷,更好地帮助学生从全局角度把握课程体系。 设计任务: (1)在深入
2、理解 DES 或 AES 加密/解密算法理论的基础上,设计一个 DES 或 AES 加密/解 密软件系统; (2)加/解密过程可用分组密码运行模式中的任一种模式; (3)完成一个明文分组的加解密,明文和密钥可以是二进制,十六进制或者 ASCII 码。 进行加密后,能够进行正确的解密; (4)提供良好的用户界面; (5)要求提供所设计系统的报告及完整的软件。 设计的方法和步骤设计的方法和步骤 第一步:进行系统设计; 第二步:代码编码; 第三步:对实现部分的软件功能或者模块进行测试 第四步:提交完整可执行软件,准备答辩; 第五步:答辩,演示软件,教师根据实际情况提出测试用例,学生作最后的修改和完善
3、, 教师对软件运行部分进行评分; 第六步:完成课程设计报告并提交。 设计工作计划设计工作计划 1. 本次课程设计的时间是 2 周,工作计划如下: 2. 任务书下达,理解选题,明确软件功能,分析和设计:2 天; 3. 分析和设计报告的撰写:1 天 4. 实现部分设计及文档编写;1 天; 5. 编码及调试:4 天; 6. 报告完善及打印:1 天; 7. 成果提交和验收:1 天。 主要参考资料主要参考资料 1、 陈鲁生、沈世镒现代密码学 (2) 北京:科学出版社,2008 年 2、 Michael Welschenbach 编著,赵振江,连国卿等译,编码密码学加密方法 的 C 与 C+实现,电子工业
4、出版社,2003 年 6 月; 3、 http:/ 教研室签字:教研室签字: 年年 月月 日日 学院签字:学院签字: 年年 月月 日日 第一章、第一章、AES 加密解密原理加密解密原理 由于 DES 已经无法满足高保密性的要求,美国于 1997 年 1 月开始征集新一代数据加密 标准(即高级数据加密标准,Advanced Encryption Standard,AES) 。2000 年 10 月 2 日, 正式宣布选择比利时密码学家所开发的 Rijndael 算法成为 AES 的最终算法。 AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于
5、加密电 子数据的规范。 它被预期能成为人们公认的加密包括金融、 电信和政府数字信息的方法。 AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分 组的密码,它可以使用 128、192 和 256 位密钥,并且用 128 位(16 字节)分组加密和解 密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。 通过分组密码返回的加密数据的位数与输入 数据相同。迭代加密使用一个循环结构,在该 循环中重复置换(permutations )和替换(substitutions)输入数据。 1.1AES 算法设计及性能研究现状: 目前在理论上对
6、于 AES 算法的研究主要集中在算法设计和性能分析上。 1.1.1 算法设计主要研究算法设计遵循的原则和整体结构。研究算法设计的目的一方面 为性能分析提供了一条途径, 从算法的结构上分析算法性能是简单有效的, 研究算法整体结 构上的缺陷为提出新的密码分析方法提供新的手段。 另一方面, 研究 AES 的算法设计对研发 新的分组密码提供了设计原则和参考。 目前分组数据加密算法的整体结构有两大类:Festiel 网络、 非平衡网络和 SP 网络。 作为 AES 选择的 Rijndael 算法遵循分组密码的安全性和实现 性原则,在整体结构上采用的是 SP 网络结构。 1.1.2 性能分析主要研究算法的各项特性,主要可以分为实现分析和密码分析两类。 (1)实现分析主要研究 AES 算法可实现的能力,即算法的实现性分析。当前实现性分析 主要集中在 AES 的硬、软件实现的难易度和实现算法的效率等领域中。 (2)密码分析主要研究 AES