14

我绝不是密码学专家,我一直在阅读有关 Stack Overflow 和 Wikipedia 的一些问题,但就定义 IV 及其用法而言,没有什么是真正“明确”的。

我发现的要点:

  • 在明文消息前添加 IV 以加强加密
  • IV 是真正随机的
  • 每条消息都有自己独特的 IV
  • 有时使用时间戳和加密哈希来代替随机值,但这些被认为是不安全的,因为可以预测时间戳
  • WEP(在 802.11 中)的弱点之一是 IV 将在特定数量的加密后重置,从而重复 IV

我敢肯定还有很多其他的要点,有人能想到我错过的任何其他特征吗?

4

1 回答 1

14

IV 是“影响加密过程的公共价值”。IV 的要点通常是“随机化”输入数据,以避免泄漏有关哪些输入块在明文中相同的信息(因为相同的块在“现实生活”数据中经常发生)。

IV 是通过前置还是以其他方式输入,取决于使用它的算法。对于在 CBC 模式下使用块密码的对称加密,IV 被添加到加密数据之前(对于每个块,CBC 使用前一个加密块;IV 扮演加密块 -1 的角色)。

IV 与密钥的不同之处在于密钥是秘密的,而 IV 不需要是秘密的;IV 通常与加密消息一起传输。相反,IV 对于每条消息都必须是不同的,而密钥可以重复使用。实际上,对于使用相同密钥加密的每条消息,IV 必须是不同的;如果您为每条消息使用一个新密钥,那么您可以使用一个恒定的、固定的 IV。请注意,IV不必保密,但您可以根据需要保密。但是发送者和接收者必须就 IV 达成一致,并且由于每个消息的 IV 都会发生变化,因此在某些设置中,将 IV 保密可能会很不方便。

IV 是否必须是一致随机的,或者只是不重复的,取决于算法。CBC 需要随机 IV。其他模式不那么挑剔,例如 GCM。您可以使用适当的单向函数从“主密钥”派生密钥和IV。这就是 SSL 所做的。看起来比较棘手,不要在家里尝试。

重复 IV 是 WEP 的众多罪恶之一。

于 2010-05-08T20:16:38.687 回答