当前位置:文档之家› AES——密码学实验报告

AES——密码学实验报告

实验报告
【实验名称】AES加密解密实验
姓名:学号:班级:日期:10月20日
【实验目的】
1.掌握AES算法的基本原理
2.了解AES算法的详细步骤
【实验环境】
1.本试验需要密码教学实验系统的支持
2.操作系统为Windows 2000或者Windows XP
【实验内容】
1.掌握AES算法的原理及过程
2.完成AES密钥扩展运算
3.完成AES数据加密运算
【实验步骤】
1.打开“AES理论学习”,掌握DES算法的加解密原理;
2.打开“AES算法流程”,开始DES单步加密实验,如图10-1;
3.选择密钥输入为ASCII码或十六进制码模式,输入密钥;若为ASCII码模式,则输入
8个字符的ASCII码;若为十六进制码模式,则输入16个字符的十六进制码(0~9,a~f,A~F);
4.点击“字节矩阵”按钮,将输入的密钥转化为密钥字节矩阵,从左至右每一列依次
为W0, W1, W2, W3;
5.依次点击“RotWord”、“SubWord”、“轮常量异或”,对W3依次进行“循环移
位”、“S盒”、“轮常量异或”操作并与W0异或得到W4,;
6.点击“异或”按钮,使得W1与W4进行异或得到W5
7.点击“生成W6和W7”按钮,生成W6和W7
8.点击“生成所有轮密钥”按钮,生成1~10轮轮密钥
9.进入第二部分——加密,选择加密输入为ASCII码或十六进制码模式,输入明文;若
为ASCII码模式,则输入8个字符的ASCII码;若为十六进制码模式,则输入16个字符的十六进制码(0~9,a~f,A~F);
10.点击“字节矩阵”按钮,将输入明文转化为明文字节矩阵;
11.点击“AddRoundKey”按钮,使明文字节矩阵与密文字节矩阵进行逐比特异或;
12.接下来进行第一轮操作,依次点击“SubBytes”、“ShiftRows”、“MixColumns”、
“AddRoundKeys”按钮,对经过轮密钥加操作的字节矩阵依次进行字节替换、行移位、列混合和逐字节异或操作,得到新的字节矩阵;
13.对上一步得到的结果连续进行8轮上一步的四步操作得到新的字节矩阵;
14.第十轮的时候依次进行字节替换、行移位、轮密钥加操作(不需要列混合)得到最
终的密文字节矩阵。

15. AES数据加密解密体验
【实验心得】
本次实验的主要内容是AES加密算法的实现。

在看懂AES加密原理的基础上,明白了加密的关键虽然是扩散和混淆。

加密过程依次经过读进明文、读进密钥、产生轮子密钥、轮密钥加、轮变换(包括字节替换、列变换、列混淆、轮密钥加)及最后轮变换得到密文,而解密过程则是加密过程的逆过程,依次经过读取密文、读取密钥、产生轮子密钥、轮密钥加、轮变换(包括逆列变换、逆字节替换、获得轮密钥、轮密钥加、逆列混淆)和最后一轮变换。

理解和学习AES是在学习和实验了DES的基础上,比较这两种加密算法可以发现:他们都是对称的分组加密算法;具有较高的复杂性,使得破译的开销超过可能获得的利益,同时理解和掌握密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础,适用于多种完全不同的应用。

DES为64位,但AES可以为128、192和256位;DES包括对密钥和明文的按位变换及子密钥计算等,对比AES,我们可以发现,AES比DES更加复杂,从而AES也解决了DES的一些问题:
(1)作为分组密码,DES的加密单位仅有64位二进制,这对于数据传输来说太小,因为每个分组仅含8个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。

(2)DES的密钥的位数太短,只有56比特,而且各次迭代中使用的密钥是递推产生的,这种相关必然降低密码体制的安全性,在现有技术下用穷举法寻找密钥是可行的。

(3)DES不能对抗差分和线性密码分析。

迄今为止,DES算法中的S盒8个选择函数矩阵的设计原理因美国政府方面的干预,不予公布。

从这一方面严格地讲DES算法并不是一个真正的公开加密算法。

S盒设计中利用了重复因子,致使加密或解密变换的密钥具有多值性,造成使用DES合法用户的不安全性。

而且,在DES加密算法的所有部件中,S盒是唯一的具有差分扩散功能的部件(相对于逐位异或),其它都是简单的位置交换,添加或删减等功能,毫无差分扩散能力。

这样,DES的安全性几乎全部依赖于S盒,攻击者只要集中力量对付S盒就行了。

(4)DES用户实际使用的密钥长度为56bit,理论上最大加密强度为256。

DES算法要提高加密强度(例如增加密钥长度),则系统开销呈指数增长。

除采用提高硬件功能和增加并行处理功能外,从算法本身和软件技术方面无法提高DES算法的加密强度。

相关主题