课程设计_AES加解密软件

课程设计_AES加解密软件

ID:42719354

大小:186.43 KB

页数:20页

时间:2019-09-21

课程设计_AES加解密软件_第1页
课程设计_AES加解密软件_第2页
课程设计_AES加解密软件_第3页
课程设计_AES加解密软件_第4页
课程设计_AES加解密软件_第5页
资源描述:

《课程设计_AES加解密软件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、西北工业大学专业课程设计题目:_______AES加解密软件_________________学院________________________专业_________信息安全专业_____________学号_________姓名_____________________2014年07月02~13日20一、目的AES(Rijndael)密码算法属于对称密码算法,支持128、192或256位密钥,适合批量数据的加解密,是DES、3DES的替代算法,可广泛应用于数据加密存储和网络安全传输应用中,试用C/C++语言(核心代码可用汇编语言)实现支持各种密钥长度的AES算法,对

2、其进行测试和设计优化;在此基础上,使其能够对任何类型的文件进行加密,生成密文文件,也能对指定的密文文件进行解密,得到加密前的明文文件。二、要求1、用C/C++语言实现AES算法,支持128、192或256位密钥,具有通用性;2、用标准测试向量测试密码算法实现的正确性;3、编写对文件进行加解密的接口函数;4、用不同大小和类型的文件测试密码算法的功能和性能;5、进行优化设计,使其对批量数据的加解密速度尽可能快。三、设计1.方法(算法)原理及描述1)AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与

3、公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。2)AES加密算法包括字节替换SubBytes()、行移位ShiftRows0、列混合MixColumns0和密钥加AddRoundKey()等函数。本文只研究分组长度和密钥长度均为128位的情况,记做AES一128。AES一128算法对状态矩阵进行操作。状态矩阵是128位数据按列优先原则排列的4x4矩阵,矩阵中的每一个元素为一个字节。A

4、ES一128算法要进行10轮轮变换,加密时轮变换主要有字节替换SubBytes()、行移位ShiftRows0、列混合MixColumns0和密钥加AddRoundKey()运算。对于每次轮变换,AES算法需要一个轮密钥,该轮密钥由初始密钥经密钥扩展函数生成。3)AES算法设计原理简述lGF()中乘法使用的多项式是8次不可约多项式列表中的第一个多项式。20ByteSubstitution(称为S盒)在设计时考虑到抵抗差分密码分析、线性密码分析的要求,应满足以下条件:a)可逆性;、b)输入比特的线性组合与输出比特的组合之间的最大非平凡相关性的极小化;c)异或差分表中最大非

5、平凡值的极小化;d)GF()中代数表示的复杂性;e)描述的简单性。满足前3条准则的S盒的构造方法已被给出,AES的作者从众多候选构造中选择将x映射到它的逆的S盒。该映射过于简单,为了抵抗插入攻击,加入仿射变换:模数多项式选择为可能是最简单的模数多项式。可以找到其它的S盒满足以上准则。lMixColumn变换符合以下准则:a)可逆性;b)GF()中的线性性;c)适当的扩散性能;d)8位处理器上实现速度快;e)对称性;f)描述的简单性。选择模数多项式可满足准则2、5、6。准则1、3、4要求系数的值要小,故选00、01、02、03。lByteRotation符合以下准则:a)

6、4个位移量互不相同且;b)能抵抗差分截断攻击;c)能抗Square攻击;d)简单。从满足准则2和准则3出发,AES的作者选取了最简单的组合。201.软件程序(程序流程、设计程序及分析)1)AES算法框架描述AES算法是一个可变数据块长和可变密钥长的分组迭代加密算法,数据块长和密钥长可分别为128,192或256比特,但为了满足AES的要求,分组长度为128比特,密钥长度为128,192或256比特。AES密码算法采用的是代替一置换网络(SPN)结构,每一轮操作由4层组成:第1层(字节替换)为非线性层,用S盒对每一轮中的单个字节分别进行替换;第2层(行移位)和第3层(列混

7、合)是线性混合层,对当前的状态阵按行移位,按列混合;第4层(密钥加层)用子密钥与当前状态阵进行字节上的异或。具体算法结构如图1所示。图1中,(a)图给出了算法的整体结构,输入明文x与子密钥I(0异或,然后经过r轮迭代最终生成密文Y,其中第1到r一1轮迭代结构为图(b),第r轮与前面各轮稍微有点不同,缺少混合层。2)加密与解密系统流程图201)程序设计模块代码a)密钥扩展通过生成器产生Nr+1个轮密钥,每个轮密钥由Nb个字组成,共有Nb(Nr+1)个字。在加密过程中,需要Nr+1个轮密钥,需要构造4(Nr+1)个32位字。首先将输入的4个字

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。