1、 课 程 设 计 报 告 AESAES加密解密的实现加密解密的实现 课程名称课程名称: 密码算法程序设计密码算法程序设计 学生姓名:学生姓名: 学生学号:学生学号: 专业班级:专业班级: 任课教师:任课教师: 2011 年 6 月 24 日 指导老师评阅成绩表指导老师评阅成绩表 学习与工作 态度(30%) 选题意义 (10%) 文献综 述 (10%) 研究水平与设 计能力(20%) 课程设计说明说(论 文)撰写质量(20%) 设计创新 (10%) 总分 指导老师签名: 年 月 日 课程设计答辩记录及评价表课程设计答辩记录及评价表 学生 讲述情况 教师主要 提问记录 学生回答 问题情况 答辩评分
2、 评分项目 分 值 评价参考标准 评分 总分 优 良 中 及格 差 选题意义 10 9 8 7 6 4 文献综述 10 9 8 7 6 4 研究水平与设计能力 20 19 17 15 13 10 课程设计说明书(论 文)撰写质量 20 19 17 15 13 10 设计创新 10 9 8 7 6 4 答辩效果 30 28 25 22 19 15 答辩小组成员签名 答辩小组组长签名: 年 月 日 课程设计成绩评定表课程设计成绩评定表 成绩汇总 评分项目 评分 比例 分数 课程设计总 分 指导老师评分 50% 答辩小组评分 50% 目目 录录 1 背景与意义 . 1 2. 系统设计 1 2.1 系
3、统主要目标 1 2.2 主要软件需求(运行环境) 2 2.3 功能模块与系统结构 . 2 3 系统功能程序设计 3 3.1 基本要求部分 3 3.1.1 字节替换 4 3.1.2 行移位 . 5 3.1.3 列混合 . 6 3.1.4 密钥加 . 8 3.1.5 密钥扩展 . 8 3.1.6 获取 RoundKey 10 3.1.7 逆字节替换 11 3.1.8 逆行移位 11 3.1.9 逆列混合 12 3.1.10 加密13 3.1.11 解密 15 4. 测试报告 .17 5结论19 参考文献19 第 1 页 共 19 页 1 背背景景与意义与意义 由于 AES 应用了,感觉这算法的分组
4、为固定长度的 128bit,而密钥却有三种,分别为 128, 192,256bit,对应三种不同轮数分别为 10 轮,12 轮,14 轮。这就加大了算法实现的难度, 加上每轮的 4 种变换,更加体现了算法的复杂性,所以我采用的 AES 来实现。不仅加深了我 对密码算法本身的认识,更加巩固了我本来不是很熟悉的 C 语言。AES 算法采用的不可约多 项式是 p(x)=(84310) ,) ,共 256 个多项余式构成了一个有限域,在这有限域上要用到字节 运算和字运算。 随着对称密码的发展,DES 数据加密标准算法由于密钥长度较小(56 位),已 经不适应当今分布式开放网络对数据加密安全性的要求,因
5、此 1997 年 NIST 公开征集新的 数据加密标准,即 AES1。AES 即高级加密标准,作为传统堆成加密算法标准 DES 的替代者, 有美国国家标准与技术研究所于 1997 年提出征集该算法的公告.1999 年 3 月 22 日,NIST 从 15 个候选算法中公布了 5 个候选算法进入第二轮悬着:MARS、RC6、Rijindael、SERPENT 和 Twofish。经过三轮的筛选,2000 年 10 月 2 日,以安全性(稳定的数学基础、没有算法弱 点、算法抗密码分析的强度、算法输出的随机性) 、性能(必须能再多种平台上一较快的速 度实现) 、 大小 (不能占用大量的存储空间和内存
6、) 、 实现特性(灵活性、 硬件和软件适应性、 算法的简单性等)为标准而最终选定了两个比利时研究者 Vincent Rijmen 和 Joan Daemen 发明的 Rijndael 算法, 并于 2001 年正式发布了 AES 标准。 此算法将成为美国新的数据加密 标准而被广泛应用在各个领域中。尽管人们对 AES 还有不同的看法,但总体来说,AES 作为 新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES 设计 有三个密钥长度:128,192,256 位,相对而言,AES 的 128 密钥比 DES 的 56 密钥强 1021 倍2。AES 算法主要包括三个方面:轮变化、圈数和密钥扩展。本文以 128 为例,介绍算 法的基本原理;结合 AVR 汇编语言,实现高级