AES算法简介
AES:即Advanced Encryption Standard,高级加密标准。AES又称Rijndael(为了表彰密码学家Joan Daemen和Vincent Rijmen)加密法,是美国联邦政府采用的一种区块加密标准。
这个标准用来替代原先的DES(Data Encryption Standard)。
AES的地位:已经成为对称密钥加密中最流行的算法之一。
AES算法特点:
- 是一种对称分组加密算法。
- AES的分组长度为128bit,密钥长度是可选的,分别为128/192/256bit,对应的轮数分别为10/12/14。
- AES是一种迭代分组密码,使用了多轮置换和替换操作,且操作是可逆的。
- 常见的对称加密: AES, DES, 3DES。
AES加密模式:
对称/分组密码一般分为流加密(如OFB、CFB等)和块加密(如ECB、CBC等)。对于流加密,需要将分组密码转化为流模式工作。对于块加密(或称分组加密),如果要加密超过块大小的数据,就需要涉及填充和链加密模式。
下面是常用的AES加密模式:
1) ECB(Electronic Code Book电子密码本)模式:
ECB模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。
- 优点:
(1).简单;
(2).有利于并行计算;
(3).误差不会被传送; - 缺点:
(1).不能隐藏明文的模式;
(2).可能对明文进行主动攻击; 因此,此模式适于加密小消息。
2) CBC(Cipher Block Chaining,加密块链)模式:
- 优点:
(1).不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。 - 缺点:
(1).不利于并行计算;
(2).误差传递;
(3).需要初始化向量IV
3) CFB(Cipher FeedBack Mode,加密反馈)模式:
- 优点:
(1).隐藏了明文模式;
(2).分组密码转化为流模式;
(3).可以及时加密传送小于分组的数据; - 缺点:
(1).不利于并行计算;
(2).误差传送:一个明文单元损坏影响多个单元;
(3).唯一的IV;
4) OFB(Output FeedBack,输出反馈)模式:
- 优点:
(1).隐藏了明文模式;