分组密码的工作模式有哪些?各有什么优缺点

参考:
https://www.fisec.cn/316.html

分组密码的工作模式有哪些?各有什么优缺点
1、电子密码本ECB(Electronic codebook)
需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密。
适用于数据较少的情况,比如加密秘钥
分组密码的工作模式有哪些?各有什么优缺点
优点:简单、快速、支持并行计算(加解密)。
缺点:同样的明文组会被加密成相同的密文组。因此不能很好地隐藏数据模式。ECB模式也会导致使用它的协议不能提供数据完整性保护,易受到重放攻击的影响,因此每个块是以完全相同的方式解密的。
重放攻击:一种网络攻击,通过恶意的欺诈性地重复或拖延正常的数据传输而实施。因工作原理如同重放歌曲一样而得名。

2、密码块链接CBC(Cipher-block chaining)
每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。
加密时:明文中的微小改变会导致其后的全部密文块发生改变,每个密文块都依赖于它前面的所有明文块。
解密时:从两个邻接的密文块中即可得到一个明文块。因此,解密过程可以被并行化,而解密时,密文中一位的改变只会导致其对应的明文块完全改变和下一个明文块中对应位发生改变,不会影响到其它明文的内容。
分组密码的工作模式有哪些?各有什么优缺点
优点:同样的明文组不会被加密成相同的密文组,解密支持并行计算。
缺点:加密过程是串行的,无法被并行化,而且消息必须被填充到块大小的整数倍;对包含某些错误比特的密文解密时,会导致其对应的明文块完全改变和下一个明文块中对应位发生改变

3、密文反馈CFB(Cipher feedback)
模式类似于CBC,可以将块密码变为自同步的流密码;工作过程亦非常相似,CFB的解密过程几乎就是颠倒的CBC的加密过程。
流密码,又译为流加密、数据流加密,是一种对称加密算法,加密和解密双方使用相同伪随机加密数据流(pseudo-random stream)作为**,明文数据每次与**数据流顺次对应加密,得到密文数据流。实践中数据通常是一个位(bit)并用异或(xor)操作加密。
加密时:明文的改变会影响接下来所有的密文
解密时:密文中一位数据的改变仅会影响两个明文块:对应明文块中的一位数据与下一块中全部的数据,而之后的数据将恢复正常。
分组密码的工作模式有哪些?各有什么优缺点
优点:不需求填充;解密支持并行;可以解密随意密文。
缺点:加密过程是串行的,无法被并行化;密文中一位数据的改变仅会影响两个明文块:对应明文块中的一位数据与下一块中全部的数据。

4、输出反馈OFB(Output feedback)
将块密码变成同步的流密码。它产生**流的块,然后将其与明文块进行异或,得到密文。与其它流密码一样,密文中一个位的翻转会使明文中同样位置的位也产生翻转。
分组密码的工作模式有哪些?各有什么优缺点
优点:不需求填充;可事前进行加密解密的预备;加解密结构相同;对包含错误的密文解密时,只有对应明文的相应位会出错。
缺点:不支持并行计算;主动攻击者翻转密文分组中的某些比特时,明文中相应的比特也会翻转。

5、计数器模式CTR(Counter mode,CM)
与OFB相似,CTR将块密码变为流密码。它通过递增一个加密计数器以产生连续的**流,其中,计数器可以是任意保证长时间不产生重复输出的函数,但使用一个普通的计数器是最简单和最常见的做法。
分组密码的工作模式有哪些?各有什么优缺点
优点:不需求填充;可事前进行加密解密的预备;加解密结构相同;对包含错误的密文解密时,只有对应明文的相应位会出错;支持并行计算。
缺点:不主动攻击者翻转密文分组中的某些比特时,明文中相应的比特也会翻转。