随着密码分析技术的不断发展,des对称密码算法变得不那么安全,于是美国国家标准与技术局发出了关于开发新的加密标准():

1、应是对称加密算法,具有可变长度的密钥(128、192或256位),一个128位的块:

2、应比三重DES更安全;

3、应可应用于公共领域并免费提供;

4、应至少在30年是安全的。

经过最后的测试NITS宣布了最终的获胜者,这就是AES,AES是一种灵活的算法,其块的大小可变,密钥大小可变,迭代次数也可变,而且迭代次数与块和密钥大小有关。正因为其灵活,AES实际上有三个版本:AES-128、AES-129和AES-256。常见的AES结构图如下:

AES加密算法的要求及密钥生成

AES首先将明文按字节分成列。前4个字节组成一列,接下来的4个字节组成第二列,以此类推如果块为128位,那么就可以组成一个4X4的矩阵。

密钥生成

密钥是按矩阵的列进行分组的,然后添加40个新列来进行扩充。如果前4列(即由密钥给定的那些列)位W()、W()、W()和W(),那么新列以递归方式产生。如果i是4的倍数,那么第i列由等式W(i)=W(i-4)XORT(i-1)确定。

如果不是4的倍数,那么第i列由等式

其中T[W(i-1)]是W(i-1)的一种转换形式,按一下方式实现:

1、循环的将W(i-1)的元素位移,每次一个字节,也就是说,abcd变成dcba;

2、将这4个字节作为S盒的输入,输出新的4个字节efgh:

3、计算这一轮的常量

4、这样生成转后后的列

其过程如下图:

AES加密算法的要求及密钥生成

由于AES非常小,运行速度快,密钥大小128位,安全可靠,因此它不仅用于安全要求比三重DES更高的应用中,而且可用于计算资源有限的应用中。