【问题标题】:For AES CBC encryption, whats the importance of the IV?对于 AES CBC 加密,IV 的重要性是什么?
【发布时间】:2011-02-08 03:53:00
【问题描述】:

始终对 IV 使用全零的安全威胁是什么?如果它允许解密加密文本,攻击者怎么能做到呢?

更新:那么,如果第一个未加密数据块的时间戳从未重复,那么是否仍然需要 IV?

【问题讨论】:

  • 附带说明,如果您需要问这类问题,您可能不应该直接使用加密原语。考虑改用更高级别的库。
  • @nick 我同意,我之前问过一个问题,关于我可以使用的更高级别的库(stackoverflow.com/questions/2435479/aes-encryption-library)。
  • 如果您在第一个块中有某种随机字符(即随机时间戳),那么这将替代 IV 提供的随机性。但是您也可以使用 IV,因为如果它最终是非随机的怎么办。就像你决定使用当前时间一样。

标签: encryption cryptography


【解决方案1】:

不容易,但它确实暴露了有关消息的信息,这是加密试图避免的事情。

假设您使用相同的密钥和零 IV。嗅探流量的人可以注意到消息以相同的密文开头。这给了他们一些信息。通过随机化 IV,这种信息泄漏就消失了。通过更多地了解明文数据的结构,可以发起更强大的攻击。此外,如果您以这种方式发送许多消息,由于方差的减少,攻击者可能会慢慢了解有关正在使用的密钥的更多信息(只有明文不同,而不是明文和 IV)

【讨论】:

    【解决方案2】:

    如果 IV 始终为零,则所有开头具有共同文本的邮件(例如,“发件人”或“发件人:”信息的前两个或三个密码块相同的电子邮件)将被加密。这使攻击者可以利用您的密钥。那是无条件的坏。只要您使用合理随机的 IV,攻击者就会失去这种影响力。不要冒险。

    【讨论】:

      【解决方案3】:

      一旦攻击者拥有一条明文消息和匹配的密文(也许她在其他地方截获了它,比如目的地),她将能够知道何时发送具有相同起始序列的任何其他消息。由于她可以了解您加密消息的内容,因此这是不安全的。

      它还允许攻击者执行频率分析。例如,假设您的明文消息是对股票市场平台后端的命令,因此它们都以"COMMAND=BUY""COMMAND=SELL" 开头。这意味着加密消息仅以两个不同的密文序列开头。攻击者不能直接解密它们——但是如果她以后能够通过观察市场数据来观察你下了多少个卖出订单,她就可以回去算出哪个是哪个,从现在开始她'在您下订单时会准确知道您下的订单。

      频率分析是简单的替换密码被破解的方式,这并非巧合 - 使用固定的 IV 意味着您的消息的初始部分实际上只是使用替换,一次一个块。

      【讨论】:

        【解决方案4】:

        CBC 的重点是随机化输入块,因为给定的输入块总是使用给定的密钥进行相同的加密(AES 是确定性的)。输入块通过与前一个输出块进行异或来随机化。第一个块没有前一个块,它通过与 IV 异或来随机化。

        因此,使用非随机 IV 意味着您不会随机化第一个块。 如果您从不使用相同的密钥两次,即您在加密新消息时使用新密钥,那么全零 IV 不是问题。仅当有两个使用相同密钥加密的非随机输入块时,非随机输入块的问题才相关。如果您对单个消息使用给定的密钥,那么只有该消息的单个第一个块将是非随机的,所以没问题。但这是一个很大的“如果”。特别是,如果您可以为每条消息生成一个新密钥,那么您可能还可以为每条消息生成一个新 IV。需要一个非常具体的场景来证明在 CBC 中使用全零 IV 是合理的。

        【讨论】:

          猜你喜欢
          • 2011-07-03
          • 2021-02-13
          • 2018-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-20
          相关资源
          最近更新 更多