分组密码的基本的工作模式、优缺点
分组密码的基本的工作模式、优缺点
1、电子密码本ECB(Electronic codebook)
需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密。
适用于数据较少的情况,比如加密秘钥。
- 优点:简单、快速、支持并行计算(加解密)。
- 缺点:同样的明文组会被加密成相同的密文组。因此不能很好地隐藏数据模式。ECB模式也会导致使用它的协议不能提供数据完整性保护,易受到重放攻击的影响,因此每个块是以完全相同的方式解密的。
2、密码块链接CBC(Cipher-block chaining)
每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。
- 优点:同样的明文组不会被加密成相同的密文组,解密支持并行计算。
- 缺点:加密过程是串行的,无法被并行化,而且消息必须被填充到块大小的整数倍;对包含某些错误比特的密文解密时,会导致其对应的明文块完全改变和下一个明文块中对应位发生改变
3、密文反馈CFB(Cipher feedback)
模式类似于CBC,可以将块密码变为自同步的流密码;工作过程亦非常相似,CFB的解密过程几乎就是颠倒的CBC的加密过程。
- 优点:不需求填充;解密支持并行;可以解密随意密文。
- 缺点:加密过程是串行的,无法被并行化;密文中一位数据的改变仅会影响两个明文块:对应明文块中的一位数据与下一块中全部的数据。
4、输出反馈OFB(Output feedback)
将块密码变成同步的流密码。它产生密钥流的块,然后将其与明文块进行异或,得到密文。与其它流密码一样,密文中一个位的翻转会使明文中同样位置的位也产生翻转。
- 优点:不需求填充;可事前进行加密解密的预备;加解密结构相同;对包含错误的密文解密时,只有对应明文的相应位会出错。
- 缺点:不支持并行计算;主动攻击者翻转密文分组中的某些比特时,明文中相应的比特也会翻转。
5、计数器模式CTR(Counter mode,CM)
与OFB相似,CTR将块密码变为流密码。它通过递增一个加密计数器以产生连续的密钥流,其中,计数器可以是任意保证长时间不产生重复输出的函数,但使用一个普通的计数器是最简单和最常见的做法。
- 优点:不需求填充;可事前进行加密解密的预备;加解密结构相同;对包含错误的密文解密时,只有对应明文的相应位会出错;支持并行计算。
- 缺点:不主动攻击者翻转密文分组中的某些比特时,明文中相应的比特也会翻转。