工作模式

工作模式

CBC模式

密码分组链接模式 Cipher Block Chaining

引入了一个新的概念:初始向量IV(Initialization Vector)。

IV是做什么用的呢?它的作用和MD5的“加盐”有些类似,目的是防止同样的明文块始终加密成同样的密文块。

1)首先将数据按照8个字节一组进行分组得到D1D2......Dn(若数据不是8的整数倍,用指定的PADDING数据补位)

2)第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1(初始化向量I为全零)

3)第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2

4)之后的数据以此类推,得到Cn

5)按顺序连为C1C2C3......Cn即为加密结果。


工作模式_第1张图片
cbc.png

优点 :安全性高

缺点:不利于并行运算,性能不如ECB,引入初始化向量IV,增加复杂度。误差传递

ECB模式(默认):

电码本模式 Electronic Codebook Book

在该模式下,每一个明文块的加密都是完全独立,互不干涉的。

优点: 简单,有利于并行计算

缺点:相同的明文块经过加密会变成相同的密文块,因此安全性较差,不能隐藏明文。

工作模式_第2张图片
ECB

CTR模式

计算器模式 加密是对一系列输入数据块(称为计数)进行加密,产生一系列的输出块,输出块与明文异或得到密文。对于最后的数据块,可能是长u位的局部数据块,这u位就将用于异或操作,而剩下的b-u位将被丢弃(b表示块的长度)。

加密方式:密码算法产生一个16 字节的伪随机码块流,伪随机码块与输入的明文进行异或运算后产生密文输出。密文与同样的伪随机码进行异或运算后可以重产生明文。

CTR 模式被广泛用于 ATM 网络安全和 IPSec应用中,相对于其它模式而言,CRT模式具有如下特点:1.硬件效率:允许同时处理多块明文 / 密文。

2.软件效率:允许并行计算,可以很好地利用 CPU 流水等并行技术。

3.预处理:算法和加密盒的输出不依靠明文和密文的输入,因此如果有足够的保证安全的存储器,加密算法将仅仅是一系列异或运算,这将极大地提高吞吐量。

4.随机访问:第 i 块密文的解密不依赖于第 i-1 块密文,提供很高的随机访问能力

5.可证明的安全性:能够证明 CTR 至少和其他模式一样安全(CBC, CFB, OFB, ...)

6.简单性:与其它模式不同,CTR模式仅要求实现加密算法,但不要求实现解密算法。对于 AES 等加/解密本质上不同的算法来说,这种简化是巨大的。

7.无填充,可以高效地作为流式加密使用。

CFB模式

加密反馈模式为了克服必须等待8个字节全部得到才能进行解密的缺点,采用了一个64位(8个字节)的位移寄存器来获得密文

CFB128是每处理128位数据调用一次加密器,此外还有两种常用的CFB是CFB8和CFB1,前者每处理8位调用一次加密器,后者每处理1位调用1次加密器,就运算量来讲CFB1是CFB8的8倍,是CFB128的128倍。对于CFB8和CFB1需要将IV作为移位寄存器。

CFB8的加密流程

  1. 使用加密器加密IV的数据;
  2. 将明文的最高8位与IV的最高8位异或得到8位密文;
  3. 将IV数据左移8位,最低8位用刚刚计算得到的8位密文补上。

重复1到3。

CFB1的加密流程

  1. 使用加密器加密IV的数据;
  2. 将明文的最高1位与IV的最高1位异或得到1位密文;
  3. 将IV数据左移1位,最低1位用刚刚计算得到的1位密文补上。

重复1到3。

密码反馈模式 Cipher FeedBack

  • Cipher Feedback ,密码反馈模式。

  • 可以对单个字节进行加密,前面二种方式,都必须接受完整分组后才能加密。

  • 在有些基于字符的通讯协议特别有用,如telnet,也适应于流媒体的加密。

  • 优点:1、隐藏了明文模式;2、分组密码转化为流模式;3、可以及时加密传送小于分组的数。

  • 缺点: 1、不利于并行计算;2、误差传送:一个明文单元损坏影响多个单元;3、唯一的IV否则导致密文攻击。

工作模式_第3张图片
CFB

OFB模式:

  • OFB是先用块加密器生成密钥流(Keystream),然后再将密钥流与明文流异或得到密文流,解密是先用块加密器生成密钥流,再将密钥流与密文流异或得到明文,由于异或操作的对称性所以加密和解密的流程是完全一样的。
  • 与CFB模式不同之处在于, 加密位移寄存器与密文无关了,仅与加密key和加密算法有关;做法是不再把密文输入到加密移位寄存器,而是把输出的分组密文(Oi)输入到一位寄存器;

输出反馈模式 Output FeedBack

  • 和CFB类似,也是将分组加密转换成流加密的方式

  • 优点:1、隐藏了明文模式;2、分组密码转化为流模式;3、可以及时加密传送小于分组的数据。

  • 缺点:1、不利于并行计算;2、对明文的主动攻击是可能的;3、误差传送:一个明文单元损坏影响多个单元。

工作模式_第4张图片
OFB

IV

  • 初始化向量: Initialization vector
  • CBC、CFB、OFB需要使用。
  • 分组加密时,和分组长度相同,不是和密钥长度相同。
    • 比如AES是128bit分组,但密钥可以是128、192、256。IV必须也是128bit。
  • 流加密,IV值和具体算法有关。

你可能感兴趣的:(工作模式)