目录
AES五种加密模式(CBC、ECB、CTR、OCF、CFB)
ECB (Electronic Codebook Book电码本模式)
CBC(Cipher Block Chaining 密码分组链接模式)
ECB和CBC模式的区别
ECB模式
ECB(电子密本方式)其实非常简单,就是将数据按照8个字节一段进行DES加密或解密得到一段段的8个字节的密文或者明文,最后一段不足8个字节(一般补0或者F),按照需求补足8个字节进行计算(并行计算),之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响。
优点:
- 简单;
- 有利于并行计算;
- 误差不会被传递;
缺点:
- 不能隐藏明文的模式;
- 可能对明文进行主动攻击;
CBC模式:
优点:
- 不容易主动攻击,安全性好于ECB,是SSL、IPSec的标准;
缺点:
- 不利于并行计算;
- 误差传递;
- 需要初始化向量IV;
CBC(密文分组链接方式)有点麻烦,它的实现机制使加密的各段数据之间有了联系。其实现的机理如下:
加密步骤如下:
- 首先将数据按照8个字节一组进行分组得到D1D2…Dn(若数据不是8的整数倍,用指定的PADDING数据补位)
- 第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1(初始化向量I为全零)
- 第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2
- 之后的数据以此类推,得到Cn
- 按顺序连为C1C2C3…Cn即为加密结果。
原文链接:https://blog.csdn.net/honeygirl_/article/details/90716328
AES五种加密模式(CBC、ECB、CTR、OCF、CFB)
分组密码有五种工作体制:1.电码本模式(Electronic Codebook Book (ECB));2.密码分组链接模式(Cipher Block Chaining (CBC));3.计算器模式(Counter (CTR));4.密码反馈模式(Cipher FeedBack (CFB));5.输出反馈模式(Output FeedBack (OFB))。
以下逐一介绍一下:
ECB (Electronic Codebook Book电码本模式)
这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密。
![](https://i-blog.csdnimg.cn/blog_migrate/88f86a484f56b4f4b994c2b1752c9e58.png)
CBC(Cipher Block Chaining 密码分组链接模式)
这种模式是先将明文切分成若干小段,然后每一小段与初始块(IV)或者上一段的密文段进行异或,再与密钥进行加密。
![](https://i-blog.csdnimg.cn/blog_migrate/20c9cc22458479f78a5115721226b7e1.png)
初始化向量
当加密第一个明文分组时,由于不存在“前一个密文分组”,因此需要事先准备一个长度为一个分组的比特序列来代替“前一个密文分组”,这个比特序列称为初始化向量(Initialization Vector),通常缩写为IV,一般来说,每次加密时都会随机产生一个不同的比特序列来作为初始化向量。
我们来比较一下ECB模式与CBC模式的区别