密码学课程设计–AES加密解密文档.doc

密码学课程设计–AES加密解密文档.doc

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

成都信息工程学院 课程设计报告 AES加密解密的实现 课程名称:应用密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: 年 月 日 指导老师评阅成绩表 学习与工作态度(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主要软件需求(运行环境) 2 2.3功能模块与系统结构 2 3 系统功能程序设计 4 3.1基本要求部分 4 3.1.1 字节替换 4 3.1.2行移位 5 3.1.3列混合 6 3.1.4密钥加 6 3.1.5密钥扩展 7 3.1.6字节替换 8 3.1.7行移位 9 3.1.8列混合 9 3.1.9 加密 10 3.1.10 解密 11 4. 测试报告 12 5.结论 21 参考文献 21 1. 背景 AES,密码学中的高级加密标准(Advanced Encryption Standard,AES),又称 Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26发布于FIPS PUB 197,并在2002年5月26成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。 该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于 Rhine doll。)A0,0 A0,1 A0,2 A0,3 A1,0 A1,1 A1,2 A1,3 A2,0 A2,1 A2,2 A2,3 A3,0 A3,1 A3,2 A3,3 B0,0 B0,1 B0,2 B0,3 B1,0 B1,1 B1,2 B1,3 B2,0 B2,1 B2,2 B2,3 B3,0 B3,1 B3,2 B3,3 行移位ShiftRow 3.列混合MixColumn 4.轮密钥加AddRoundKey 5.逆字节替换 通过逆S盒的映射变换得到 6.逆行移位InvShiftRow 与加密时的行移位区别在于移位方向相反。 7.逆列混淆 加密与解密系统流程图如下所示, 3 系统功能程序设计 3.1基本要求部分 3.1.1 字节替换 SubBytes()变换是一个基于S盒的非线性置换,它用于将输入或中间态的每一个字节通过一个简单的查表操作,将其映射为另一个字节。映射方法是把输入字节的高四位作为S盒的行值,低四位作为列值,然后取出S盒中对应的行和列的元素作为输出。 unsigned char subbytes(unsigned char state[4][4]) {printf(after subbyte:\n); //取出中间态state映射到S盒中的值赋给中间态state for(i=0;i4;i++) {for(j=0;j4;j++) state[i][j]=sbox[state[i][j]]; } for(i=0;i4;i++) //输出到屏幕显示state {fo

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档