AES密码学课程设计(C语言实现).docx

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

成都信息工程学院课程设计报告AES加密解密软件的实现目录1、选题背景42、设计的目标42.1基本目标:42.2较高目标:53、功能需求分析54、模块划分64.1、密钥调度64.2、加密84.2.1、字节代替(SubBytes)84.2.2、行移位(ShiftRows)104.2.3、列混合(MixColumn)114.2.4、轮密钥加(AddRoundKey)134.2.5、加密主函数144.3、解密164.3.1、逆字节替代(InvSubBytes)164.3.2、逆行移位(InvShiftRows)174.3.3、逆列混合(InvMixCloumns)174.3.4、轮密钥加(AddRoundKey)184.3.5、解密主函数185.测试报告205.1主界面205.2测试键盘输入明文和密钥加密205.3测试键盘输入密文和密钥加密215.3测试文件输入明文和密钥加密225.4测试文件输入密文和密钥加密225.5软件说明236.课程设计报告总结237.参考文献241、选题背景高级加密标准(Advanced Encryption Standard,AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijndael的发音近于 Rhine doll)严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支援更大范围的区块和密钥长度:AES的区块长度固定为128 位元,密钥长度则可以是128,192或256位元;而Rijndael使用的密钥和区块长度可以是32位元的整数倍,以128位元为下限,256位元为上限。加密过程中使用的密钥是由Rijndael密钥生成方案产生。大多数AES计算是在一个特别的有限域完成的。截至2006年,针对AES唯一的成功攻击是旁道攻击旁道攻击不攻击密码本身,而是攻击那些实作于不安全系统(会在不经意间泄漏资讯)上的加密系统。2005年4月,D.J. Bernstein公布了一种缓存时序攻击法,他以此破解了一个装载OpenSSLAES加密系统的客户服务器[6]。为了设计使该服务器公布所有的时序资讯,攻击算法使用了2亿多条筛选过的明码。有人认为[谁?],对于需要多个跳跃的国际互联网而言,这样的攻击方法并不实用[7]。 Bruce Schneier称此攻击为“好的时序攻击法”[8]。2005年10月,EranTromer和另外两个研究员发表了一篇论文,展示了数种针对AES的缓存时序攻击法。其中一种攻击法只需要800个写入动作,费时65毫秒,就能得到一把完整的AES密钥。但攻击者必须在执行加密的系统上拥有执行程式的权限,方能以此法破解该密码系统。虽然高级加密标准也有不足的一面,但是,它仍是一个相对新的协议。因此,安全研究人员还没有那么多的时间对这种加密方法进行破解试验。我们可能会随时发现一种全新的攻击手段会攻破这种高级加密标准。至少在理论上存在这种可能性。2、设计的目标2.1基本目标:(1)在深入理解AES加密/解密算法理论的基础上,能够设计一个AES加密/解密软件系统,采用控制台模式,使用VS2010进行开发,所用语言为C语言进行编程,实现加密解密;(2)能够完成只有一个明文分组的加解密,明文和密钥是ASCII码,长度都为16个字符(也就是固定明文和密钥为128比特),输入明文和密钥,输出密文,进行加密后,能够进行正确的解密;(3)程序运行时,能够按照要求输出最后两轮的轮密钥,以及最后两轮加密或解密之后的值,16进制表示;(4)程序有良好的人机交互操作;(5)能够实现从两个文件分别读取明文和密钥,并在程序中输出明文及密钥;(6)要求有与标准fips-197进行比较的独立模块;(7)最后提供所设计系统的报告及完整的软件,关键代码等。2.2较高目标:能完成以下全部或部分功能:(1)如果从文件读取的明文不止一个分组,程序能完成分组,然后加密;最后一个分组长度不足时要求完成填充;输入信息可以是文本文档,或者普通文件。进行加密后,能够进行正确的解密;(2)密钥包括128bit、192bit、256bit三种情况,有三种情况时与标准fips-197进行比较的独立模块,且从文本文件读取。(

文档评论(0)

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

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

1亿VIP精品文档

相关文档