📜  分组密码操作模式

📅  最后修改于: 2022-05-13 01:57:01.368000             🧑  作者: Mango

分组密码操作模式

加密算法根据输入类型分为两类,即分组密码和流密码。分组密码是一种加密算法,它采用固定大小的输入(例如b位)并再次生成b位的密文。如果输入大于b位,则可以进一步划分。对于不同的应用和用途,分组密码有几种操作模式。

电子密码本 (ECB) –
电子密码本是最简单的分组密码模式。由于每个输入明文块的直接加密和输出都是加密密文块的形式,因此更容易。通常,如果一条消息的大小大于b位,则可以将其分解为一堆块并重复该过程。

欧洲央行的程序如下图所示:

使用欧洲央行的优势 –

  • 位块的并行加密是可能的,因此它是一种更快的加密方式。
  • 分组密码的简单方法。

使用欧洲央行的缺点 –

  • 由于明文和密文之间存在直接关系,因此易于进行密码分析。

密码块链接 –
密码块链接或 CBC 是 ECB 的一项进步,因为 ECB 妥协了一些安全要求。在 CBC 中,前一个密码块作为与原始明文块异或后的下一个加密算法的输入。简而言之,密码块是通过对前一个密码块和当前明文块的 XOR 输出进行加密来产生的。

该过程如下所示:

CBC的优势——

  • CBC 适用于大于b位的输入。
  • CBC 是一种很好的身份验证机制。
  • 与 ECB 相比,对密码分析具有更好的抵抗性。

CBC的缺点——

  • 并行加密是不可能的,因为每次加密都需要以前的密码。

密码反馈模式 (CFB) –
在这种模式下,密码作为反馈提供给具有一些新规范的下一个加密块:首先,初始向量 IV 用于第一次加密,输出位被划分为一组sbs位。 s位与应用 XOR 操作的明文位一起选择。将结果作为输入提供给具有 bs 位到 lhs、s 位到 rhs 的移位寄存器,并且该过程继续进行。相同的加密和解密过程如下所示,它们都使用加密算法。

CFB的优势——

  • 由于移位寄存器的使用存在一定的数据丢失,因此难以应用密码分析。

输出反馈模式 –
输出反馈模式遵循与密码反馈模式几乎相同的过程,除了它将加密输出作为反馈发送,而不是作为 XOR 输出的实际密码。在这种输出反馈模式下,块的所有位都被发送,而不是发送选定的 s位。分组密码的输出反馈模式对比特传输错误具有很大的抵抗力。它还减少了密码对明文的依赖性或关系。

OFB的优势——

  • 在 CFB 的情况下,块中的单个位错误会传播到所有后续块。 OFB 解决了这个问题,因为它没有明文块中的位错误。

计数器模式 –
计数器模式或 CTR 是一种简单的基于计数器的分组密码实现。每次反启动值被加密并作为输入提供给 XOR 与明文,从而产生密文块。 CTR 模式独立于反馈使用,因此可以并行实现。

其简单实现如下图所示:

计数器的优点 –

  •  由于每个块都有不同的计数器值,因此避免了直接的明文和密文关系。这意味着相同的明文可以映射到不同的密文。
  • 加密的并行执行是可能的,因为先前阶段的输出不像 CBC 那样被链接。