我正试图了解加密图和TDEA(三重DES)。我理解TDEA看起来像这样:
密文= EK3(DK2(EK1(明文)))
我也知道一个链块密码在加密之前使用IV来加密加密和纯文本,然后输出是一个加密的块,新的IV由第一个块的密文输出组成。正确?
这意味着CBC模式下的TDEA会出现这样的情况:
纯文本 - > IV - > TDEA加密 - >新IV - >密文
下一个块是:
纯文本 - >新IV - > TDEA加密 - >新的新IV - >密文
这将持续n个块。这是正确的还是我没有得到它是如何工作的?
答案 0 :(得分: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);
}