使用相同的IV在CBC中使用AES加密两个相同的明文消息会产生相同的密文吗?
根据我的理解,第一个块与IV进行异或,然后每个后续块与前一个进行异或。这是否意味着使用相同的IV和相同的消息,每个块将被加密到同一个东西?我理解使用可预测或不变的IV加密是一个非常糟糕的事情,我想知道为什么 - 是因为攻击者可以建立已知消息的“书”,或者因为我们让第一个区块容易受到频率检查的影响吗?
由于
答案 0 :(得分:4)
如果你两次使用相同的键,那么是的,你会得到相同的输出。如果您使用不同的密钥,那么您将获得不同的输出(您使用当前块对前一个块进行异或,但然后加密结果以生成密文块)。
然而,这通常没什么帮助。使用像CBC这样的东西的一个基本原因是避免消息之间的重复,即使它们包含相同的数据和你继续使用相同的密钥(当然,它也有用,它避免了模式在单个消息中也是如此)。更改IV会使每条消息保持唯一(即使某些明文内容是可预测的),而无需为每条消息分配新密钥(这通常会相对痛苦)。