AES 算法简介
Rijndael是由比利时密码学家设计的分组密码算法,于2000年被选为新一代的标准密码算法——AES。
AES 四种常见模式
其中计算器模式 CTR 模式不常用,未列出。
CBC(密码分组链接,重点)[1]
ECB模式与CBC模式的区别
-
ECB模式只进行了加密,而CBC模式则在加密之前进行了一次XOR。因此即使明文分组1和明文分组2的值是相等的,密文分组1和2的值也不一定是相等的。这样一来,ECB模式的缺陷在CBC模式中就不存在了。
-
在CBC模式中,无法单独对一个中间的明文分组进行加密。例如,如果要生成密文分组3,则至少需要凑齐明文分组1、2、3才行。
解密出错分析
-
假设CBC模式加密的密文分组中有一个分组损坏了。在这种情况下,只要密文分组的长度没有发生变化,则解密时最多只有2个分组受到数据损坏的影响。
-
假设CBC模式的密文分组中有一些比特缺失了,那么此时即便只缺失1比特,也会导致密文分组的长度发生变化,此后的分组发生错位,这样一来,缺失比特的位置之后的密文分组也就全部无法解密。见下图:
对CBC模式的攻击
主动攻击(非针对CBC,而是分组密码)
假设主动攻击者的目的是通过修改密文来操纵解密后的明文。如果攻击者能够对初始化向量中的任意比特进行反转(将1变成0,将0变成1),则明文分组中相应的比特也会被反转。这是因为在CBC模式的解密过程中,第一个明文分组会和初始化向量进行XOR运算。
但是想对密文分组也进行同样的攻击就非常困难了。例如,如果攻击者将密文分组1中的某个比特进行反转,则明文分组2中相应比特也会被反转,然而这一比特的变化却对解密后的明文分组1中的多个比特造成了影响,也就是说,只让明文分1中所期望的特定比特发生变化是很困难的。
CFB(密码反馈模式)
CFB 并未真正通过密码学算法进行加密,即加解密其实是统一套 XOR
操作,安全性高度依赖 IV
:
OFB(输出反馈模式)
OFB模式的全称是output-Feedback模式(输出反馈模式)。在OFB模式中,密码算法的输出会反馈到密码算法的输入中。
OFB模式不是通过密码算法对明文直接加密的,而是通过将“明文分组”和“密码算法的输出”进行XOR来产生“密文分组”的。
四种常见模式比较
模式 | 优势 | 劣势 | 应用场景 |
---|---|---|---|
ECB |
|
|
加密短的随机数据 |
CBC |
|
|
|
CFB |
|
|
数据加密、无线通信加密等对数据格式有特殊要求或密文信号容易丢失或出错的应用环境 |
OFB |
|
|
OFB模式适合于语音、图象以及卫星通信的加密保护 |
CTR |
|
|
OFB模式适合于语音、图象以及卫星通信的加密保护 |
📚 参考
-
[AES加密的四种模式详解] https://www.cnblogs.com/liangxuehui/p/4651351.html.
-
[[[安全&算法]]] https://blog.csdn.net/chengqiuming/category_6383341.html.