分组密码操作模式
加密算法根据输入类型分为两类,即分组密码和流密码。分组密码是一种加密算法,它采用固定大小的输入(例如b位)并再次生成b位的密文。如果输入大于b位,则可以进一步划分。对于不同的应用和用途,分组密码有几种操作模式。
电子密码本 (ECB) –
电子密码本是最简单的分组密码模式。由于每个输入明文块的直接加密和输出都是加密密文块的形式,因此更容易。通常,如果一条消息的大小大于b位,则可以将其分解为一堆块并重复该过程。
欧洲央行的程序如下图所示:
使用欧洲央行的优势 –
- 位块的并行加密是可能的,因此它是一种更快的加密方式。
- 分组密码的简单方法。
使用欧洲央行的缺点 –
- 由于明文和密文之间存在直接关系,因此易于进行密码分析。
密码块链接 –
密码块链接或 CBC 是 ECB 的一项进步,因为 ECB 妥协了一些安全要求。在 CBC 中,前一个密码块作为与原始明文块异或后的下一个加密算法的输入。简而言之,密码块是通过对前一个密码块和当前明文块的 XOR 输出进行加密来产生的。
该过程如下所示:
CBC的优势——
- CBC 适用于大于b位的输入。
- CBC 是一种很好的身份验证机制。
- 与 ECB 相比,对密码分析具有更好的抵抗性。
CBC的缺点——
- 并行加密是不可能的,因为每次加密都需要以前的密码。
密码反馈模式 (CFB) –
在这种模式下,密码作为反馈提供给具有一些新规范的下一个加密块:首先,初始向量 IV 用于第一次加密,输出位被划分为一组s和bs位。 s位与应用 XOR 操作的明文位一起选择。将结果作为输入提供给具有 bs 位到 lhs、s 位到 rhs 的移位寄存器,并且该过程继续进行。相同的加密和解密过程如下所示,它们都使用加密算法。
CFB的优势——
- 由于移位寄存器的使用存在一定的数据丢失,因此难以应用密码分析。
输出反馈模式 –
输出反馈模式遵循与密码反馈模式几乎相同的过程,除了它将加密输出作为反馈发送,而不是作为 XOR 输出的实际密码。在这种输出反馈模式下,块的所有位都被发送,而不是发送选定的 s位。分组密码的输出反馈模式对比特传输错误具有很大的抵抗力。它还减少了密码对明文的依赖性或关系。
OFB的优势——
- 在 CFB 的情况下,块中的单个位错误会传播到所有后续块。 OFB 解决了这个问题,因为它没有明文块中的位错误。
计数器模式 –
计数器模式或 CTR 是一种简单的基于计数器的分组密码实现。每次反启动值被加密并作为输入提供给 XOR 与明文,从而产生密文块。 CTR 模式独立于反馈使用,因此可以并行实现。
其简单实现如下图所示:
计数器的优点 –
- 由于每个块都有不同的计数器值,因此避免了直接的明文和密文关系。这意味着相同的明文可以映射到不同的密文。
- 加密的并行执行是可能的,因为先前阶段的输出不像 CBC 那样被链接。