欢迎来到天天文库
浏览记录
ID:27504224
大小:81.04 KB
页数:14页
时间:2018-12-04
《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
此文档下载收益归作者所有