AES(Advanced Encryption Standard),即高级加密标准,又称矩阵加密算法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
AES的基本结构
AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。AES核心就是实现一轮中的所有操作,密钥的长度可以使用128位、192位或256位,密钥的长度不同,推荐加密轮数也不同。
AES的原理
AES采用轮密钥的加密方法,实际是一种Vernam密码形式,其本身不难被破解。但是算法的另外三个阶段一起提供了混淆、扩散和非线性功能。这些阶段没有涉及密钥,就它们自身而言,并未提供算法的安全性。然而,该算法经历一个分组的XOR加密,再对该分组混淆扩散,再接着又是XOR加密,如此交替进行,这种方式非常有效非常安全。
AES的可逆原理
AES的每个阶段均可逆,对字节代替、行移位和列混淆,在解密算法中用它们相对应的逆函数。轮密钥加的逆就是用同样的轮密钥和分组相异或,其原理就是A⊕B⊕B = A。和大多数分组密码一样,AES解密算法按照逆序利用扩展密钥的方法,其解密算法和加密算法并不一样,这是由AES的特定结构决定的。
AES最常见的有3种方案,分别是AES-128、AES-192和AES-256,它们的区别在于密钥长度不同,AES-128的密钥长度为16bytes(128bit / 8),后两者分别为24bytes和32bytes。密钥越长,安全强度越高,但伴随运算轮数的增加,带来的运算开销就会更大,所以用户应根据不同应用场合进行合理选择。
AES常见工作模式
1、ECB(ElectronicCodebook,电子密码本)
优点:简单、可并行计算、误差不传递。
缺点:不能隐藏明文模式、主动攻击。
用途:需要并行加密的应用。
2、CBC(Cipher Block Chaining,密码分组链接)
优点:不容易主动攻击(误差传递)、适合长报文,是SSL、IPSec标准。
缺点:无法并行、误差传递。
用途:长报文传输,SSL和IPSec。
3、CFB(CipherFeedback,密码反馈)
优点:不容易主动攻击,分组转变为流模式,可加密小于分组数据。
缺点:无法并行、误差传递。
3、OFB(OutputFeedback,输出反馈)
优点:分组转为流模式、可加密小于分组数据。
缺点:主动攻击。
用途:通信信道质量不高时使用,比如卫星通信。
4、CTR(Counter,计数器模式):
优点:并行、一次一密、不传递误差。
缺点:主动攻击。
AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,现在 AES 标准的一个实现是 Rijndael 算法。