0

我正在尝试掌握加密图和 TDEA(三重 DES)的窍门。我了解 TDEA 看起来像这样:

密文 = EK3(DK2(EK1(明文)))

我也知道链式块密码在加密之前使用 IV 播种加密和纯文本,然后输出是一个加密的块,新的 IV 是由第一个块的密文的输出形成的。正确的?

这意味着 CBC 模式下的 TDEA 会像这样流动:

纯文本 --> IV --> TDEA 加密 --> NEW IV --> 密文

下一个块是:

纯文本 --> NEW IV --> TDEA 加密 --> NEW NEW IV --> 密文

这将持续 n 个块。这是正确的还是我不明白它是如何工作的?

4

1 回答 1

0

您对 CBC 如何工作的概念似乎有缺陷(或者至少我不明白您是如何说您相信事情有效的)。特别是,您正在显示Plain Text -> IV,但 IV 不依赖于(以任何方式)纯文本。

您使用的密码算法基本上与 CBC 本身的工作方式正交(除了它用于分组密码,而不是流密码的事实)。在伪代码中,CBC 看起来像这样:

block_t xor_block = IV;
write(xor_block);
for (int i=0; i<message_size; i++) {
    block_t data = xor(xor_block, message[i]);
    xor_block = encrypt(data);
    write(xor_block);
}
于 2010-10-24T16:51:50.023 回答