AES加密解密的实现.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AES加密解密的实现

成都信息工程学院 课程设计报告 AES加密解密的实现 课程名称:应用密码算法程序设计 学生姓名: 兰符娥 学生学号: 2008122050 专业班级: 信息安全08级2班 任课教师: 2011年 9 月 24 日 指导老师评阅成绩表 学习与工作态度(30%) 选题意义(10%) 文献综述(10%) 研究水平与设计能力(20%) 课程设计说明说(论文)撰写质量(20%) 设计创新(10%) 总分 指导老师签名: 年 月 日 课程设计答辩记录及评价表 学生 讲述情况 教师主要 提问记录 学生回答 问题情况 答辩评分 评分项目 分值 评价参考标准 评分 总分 优 良 中 及格 差 选题意义 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系统主要目标 1 2.2主要软件需求(运行环境) 1 2.3功能模块与系统结构 2 3 系统功能程序设计 3 3.1基本要求部分 3 3.1.1 字节替换 3 3.1.2行移位 4 3.1.3列混合 4 3.1.4密钥加 6 3.1.5密钥扩展 6 3.1.6获取RoundKey 8 3.1.7逆字节替换 8 3.1.8逆行移位 9 3.1.9逆列混合 9 3.1.10加密 11 3.1.11解密 12 3.2较高要求部分 13 3.2.1 明文分组实现 13 3.2.2 明文最后分组的填充 13 3.2.3 对大文件的加密处理 13 3.2.4 对大文件的解密处理 16 3.3程序界面预览 19 4. 测试报告 19 5.结论 19 参考文献 20 1. 背景与意义 AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入 数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据。Figure 1 显示了 AES 用192位密钥对一个16位字节数据块进行加密和解密的情形VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。MFC中封装了大部分Windows API函数和Windows控件,它包含的功能涉及到整个Windows操作系统。MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单void CAESDlg::Encrypt(unsigned char State[][N], unsigned char CipherKey[][N]) { int i; // unsigned char RoundKey[N][N]; KeyExpansion(CipherKey); GetRoundKey(CipherK

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档