高级加密标准(AES)加密算法简介

AES(高级加密标准)是美国国家标准与技术研究所用于加密电子数据的规范。它有望成为一种公认的加密金融、电信和政府等数字信息的方法。国家标准与技术研究所(NIST)于2002年5月26日建立了新的高级数据加密标准(AES)规范。AES是一种新的加密算法,可用于保护电子数据。

1998美国国家标准与技术研究院(NIST)开始了第一轮AES分析、测试和收集,* * *产生了15个候选算法。他们包括cast-256,crypton,deal,DFC,E2,frog,HPC,Loki97,Magenta,Mars,RC6,Rijndael,Safer+,Serpent和Two Fish。五个候选算法进入第二轮:Mars、RC6、Rijndael、Serpent和Two Fish。1999.3月对AES2进行第二轮分析测试,最终确认Rijndael算法成功。NIST于2002年5月26日制定了新的高级加密标准(AES)规范。

AES是一种典型的对称加密算法,应用非常广泛。数据发送方使用特殊的加密算法处理明文和加密密钥后,将它们转换成复杂的加密密文并发送出去。接收方收到密文后,如果要解读原文,需要用加密密钥和同一算法的逆算法对密文进行解密,从而还原成可读的明文。在对称加密算法中,只使用一个密钥,发送方和接收方都使用这个密钥对数据进行加密和解密,这就要求解密器事先知道加密密钥。其优点是对称加密算法具有算法开放、计算量小、加密速度快、加密效率高的特点。缺点是双方使用同一个密钥,安全性无法保证。

这里跑题一下,非对称加密算法,比如著名的RSA算法,使用两种完全不同但完全匹配的密钥——公钥和私钥。使用非对称加密算法加密文件时,只需要一对匹配的公钥和私钥就可以完成明文的加密和解密过程。用公钥加密明文,用私钥解密密文。而且,加密器知道接收者的公钥,只有解密器知道自己的私钥。

AES算法基于置换和置换运算。排列是重新排列数据,替换是用一个数据单元替换另一个数据单元。AES使用几种不同的方法来执行置换和置换运算。AES是一种迭代的对称密钥分组密码。它可以使用128、192和256位密钥,用128位(16字节)加密和解密数据。与公钥加密中使用的密钥对不同,对称密钥加密使用相同的密钥来加密和解密数据。分组密码返回的加密数据的位数与输入数据的位数相同。迭代加密使用循环结构,其中输入数据被重复置换和替换。据记载,公元前400年,古希腊人发明了排列密码。1881年,世界上第一个电话保密专利出现。第二次世界大战期间,德国军方启动了英格玛密码机,密码学在战争中发挥了非常重要的作用。

AES加密过程对一个4×4字节的矩阵进行运算,这个矩阵也称为“状态”,它的初始值是一个明文块(矩阵中一个元素的大小是明文块中的一个字节)。加密时,每一轮AES加密周期(除了最后一轮)包含四个步骤:

1.AddoundKey—矩阵中的每个字节都与该轮密钥进行异或运算;每个子密钥由一个密钥生成方案生成。

2.子字节——通过非线性替换函数,用查找表将每个字节替换为相应的字节。

3.shift rows—循环移动矩阵中的每个水平列。

4.mix columns—为了完全混合矩阵中每一个直行的操作。这一步使用线性转换来内联混合每四个字节。