代码之家  ›  专栏  ›  技术社区  ›  Kelvin

静脉注射像盐一样有效吗

  •  21
  • Kelvin  · 技术社区  · 16 年前

    在AES中,我的理解是 四, 是用于加密第一个消息块的内容,将添加到加密文本中。

    我有什么不对劲吗?

    3 回复  |  直到 10 年前
        1
  •  44
  •   caf    16 年前

    AES本身并不直接使用盐(或者实际上是IV)。

    当您将盐与AES结合使用时,情况是 基于密码的加密 (PBE)。在该方案中,人类可记忆密码与salt结合使用来生成AES密钥。salt的使用使得相同的密码并不总是生成相同的密钥;但是,由于接收者必须能够生成正确的密钥,因此salt必须与加密数据一起传输。

    如果在某些分组密码模式(如CBC)中使用AES,则需要IV。在这种情况下,它用于确保相同密钥下的相同明文数据不总是加密到相同的密文。同样,接收方要求IV正确解密数据,因此它必须与加密数据一起传输。

    因此,如果您在CBC模式下使用带AES的PBE作为基础密码,那么您需要发送PBE salt和CBC IV以及加密数据。

        2
  •  13
  •   Philippe Delteil SRB    7 年前

    rainbow table

    IVs用于对较大文件进行加密,以避免类似部分对同一内容进行加密。

    它们非常相似,但这里有区别。

    IVs总是与加密结果进行异或运算。之后执行此操作的原因是,只有第一个块使用IV,其余块使用前一个块进行此XORing。

    这种区别很重要,因为与密码加密形式异或的salt很容易被破坏,IVs设计用于阻止模式识别式攻击,而不是密码文件的字典攻击。

        3
  •  3
  •   Peter    16 年前

    否。IV可防止其他相同的消息显示相同。这会泄露信息,特别是你多次发送同一条信息的事实。

        4
  •  1
  •   mshwf    5 年前

    要添加到@Guvante answer,IV专门用于CBC模式(密码块链接模式) 与EBC模式相比,它增加了更多的安全性(如果两个相同的块使用相同的密钥加密,它们会产生相同的密码),IV修复了这一问题。

    satting更像是一个散列术语,用于对抗彩虹攻击,它并没有使黑客攻击变得不可能,而是使发现相同密码之间的模式变得不可行,因此相同的明文密码不会产生相同的散列。 它们非常相似,但是理解每一个的使用和实现是很重要的。

    推荐文章