这个 "E" 部分在 CBC 模式下做什么?

What This "E" Part Is Doing in CBC mode?

我需要在 java 中手动实现此模式 (DES) 那个 E(加密)盒子里发生了什么?

函数E是分组密码 DES:

  • 将密钥 K 作为输入 - 实际使用了 56 位的 64 位(E 左侧的箭头)和
  • 作为第二个输入的 64 位数据的明文块,因为块大小是 64 位(E 顶部的箭头)
  • 再次输出一个64位的密文块(E底部的箭头)

现在请注意,块密码 E 的输入明文块与 DES-CBC 的输入块不同。您应该将其视为 DES-CBC 函数,它在内部 .

多次调用函数 DES

如果您没有任何分组密码 DES 的实现,那么您可以使用 DES-ECB 并一次用一个块/8 字节(未填充的)数据调用它。

如果这不可用,您可以在 CBC 或 CTR 模式下使用单个块加密,IV 由 8 个零字节组成,因为这归结为同一件事(数据块与块的 XOR毕竟,所有零字节只是再次为您提供相同的数据块。