aes加密算法

aes加密算法

ID:27504224

大小:81.04 KB

页数:14页

时间:2018-12-04

aes加密算法_第1页
aes加密算法_第2页
aes加密算法_第3页
aes加密算法_第4页
aes加密算法_第5页
资源描述:

《aes加密算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数学与计算机学院密码学实验报告年级2009级学号2009432133姓名王祥辉成绩专业网络工程实验地点主楼502指导教师常卓实验项目AES加密算法实验日期2012年9月24日一、实验目的1、理解AES加密与解密的程序设计算法思想2、编写AES加密与解密程序,实现对明文的加密与解密,加深对数据加密与解密的理解,掌握AES加密算法思想,提高网络安全的编程能力。二、实验原理Rijndael算法设计采用针对差分和线性密码分析提出的宽轨迹策略(WTS),其最大优势是可以给出算法最佳差分特征的概率以及最佳线性逼近偏差的界;使用简单的部件组织成清晰的结构,便于算法安全性的分析。当然,在

2、密码学界永远没有绝对的安全,Rijndael算法也不例外,如其明显的代数结构对安全性的潜在威胁已经受到一些学者的质疑。最有名的当数密码设计者自己提出的Square攻击,其主要思想是利用第4轮字节替换前后平衡性的改变来猜测密钥字节,对128比特密钥下4到6轮简化算法有效。Biham[2]等对Square攻击进行改进,时间复杂度降为原来的一半,并认为颠倒轮密钥的顺序可将攻击复杂度降低28。Lucks[3]利用密钥生成算法的弱点,将Square攻击的密钥长度扩展到192和256比特,攻击7轮简化算法比穷尽搜索快。Ferguson[4]利用“部分和”技术将6轮Square攻击的复

3、杂度从272降到244,并推广到7轮和8轮简化算法,指出密钥生成算法中几个违背设计准则的特性,利用慢扩散性设计了一个针对256比特密钥下9轮简化算法的密钥相关攻击方案。密码代数结构的任何弱点都将有利于密码的分析和破译。因此,在对Rijndael简化算法进行攻击尝试的同时,人们也把相当多的精力集中到算法内部结构各种性质的研究上。Ferguson[8]给出了Rijndael算法一个直观而紧凑的代数表示形式;Filiol[9]则将算法的每一输出比特看作以明文比特和密钥比特为变量的布尔函数),,,,,('11nnikkppfLL,用Mōbius变换将之计算出来,研究其低次项的分布

4、情况,比较if与完全随机的布尔函数代数正规式的差异。三、实验要求编写AES加密解密算法,并测试四、实验步骤、结果(程序+注释+截图)及分析//AES.h#ifndefAES_H_#defineAES_H_#include#includeusingnamespacestd;classAES{public:typedefunsignedcharbyte;staticconstintKEY_SIZE=16;//密钥长度为位staticconstintN_ROUND=11;byteplainText[16];//明文bytestate[16];/

5、/当前分组。bytecipherKey[16];//密钥byteroundKey[N_ROUND][16];//轮密钥bytecipherText[16];//密文byteSBox[16][16];//S盒byteInvSBox[16][16];//逆S盒voidEncryptionProcess();voidDecryptionProcess();voidRound(constint&round);voidInvRound(constint&round);voidFinalRound();voidInvFinalRound();voidKeyExpansion();vo

6、idAddRoundKey(constint&round);voidSubBytes();voidInvSubBytes();voidShiftRows();voidInvShiftRows();voidMixColumns();voidInvMixColumns();voidBuildSBox();voidBuildInvSBox();voidInitialState(constbyte*text);voidInitialCipherText();voidInitialplainText();byteGFMultplyByte(constbyte&left,constb

7、yte&right);constbyte*GFMultplyBytesMatrix(constbyte*left,constbyte*right);public:AES();constbyte*Cipher(constbyte*text,constbyte*key,constint&keySize);constbyte*InvCipher(constbyte*text,constbyte*key,constint&keySize);};voidAES::EncryptionProcess(){//加密过程InitialStat

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

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

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