【发布时间】:2010-12-29 07:26:12
【问题描述】:
在 AES 中,我的理解是 salt 是使密码更安全的东西,它不会被添加到加密文本中。但是IV是用来加密第一个消息块的东西,将被添加到加密文本中。
我有什么问题吗?
【问题讨论】:
标签: encryption aes
在 AES 中,我的理解是 salt 是使密码更安全的东西,它不会被添加到加密文本中。但是IV是用来加密第一个消息块的东西,将被添加到加密文本中。
我有什么问题吗?
【问题讨论】:
标签: encryption aes
AES 本身不直接使用盐(或者实际上是 IV)。
当您使用 基于密码的加密 (PBE) 时,您可以将盐与 AES 结合使用。在这个方案中,人类记忆的密码与盐结合使用,以生成 AES 密钥。使用盐是为了使相同的密码不会总是生成相同的密钥;但是,由于接收者必须能够生成正确的密钥,因此盐必须与加密数据一起传输。
如果您在某些分组密码模式(如 CBC)中使用 AES,则需要 IV。在这种情况下,它用于确保相同密钥下的相同明文数据并不总是加密为相同的密文。同样,接收方需要 IV 才能正确解密数据,因此它必须与加密数据一起传输。
因此,如果您在 CBC 模式下使用带有 AES 的 PBE 作为基础密码,您可能需要同时发送 PBE salt 和 CBC IV 以及加密数据。
【讨论】:
X'(data, passphrase, salt, IV) - 盐和IV的影响不能分开考虑。
我不太明白你在说什么,但这里是一个概述。
盐用于加密散列,以消除使用rainbow table 破解方法成功的可能性。 (彩虹表是密码哈希的反向查找表)
IV 用于对较大文件进行加密,以避免相似部分加密到相同的内容。
它们非常相似,但有以下区别。
盐通常在加密之前或之后添加(据我所知)。这意味着加密也是在盐上执行的。
IV 总是与加密结果进行异或运算。之所以后来做,是因为只有第一个块使用 IV,其余的使用前一个块进行异或。
区别很重要,因为与密码的加密形式进行异或运算的盐很容易被破解,并且 IV 旨在阻止模式识别样式攻击与密码文件的字典攻击。
【讨论】:
没有。 IV 防止其他相同的消息看起来相同。这会泄露信息,特别是您多次传输同一消息的事实。
【讨论】:
要添加到@Guvante 答案,IV 专门用于 CBC 模式(密码块链接模式) 并且与 EBC 模式相比,它增加了更多的安全性(如果两个相同的块使用相同的密钥加密,它们会产生相同的密码),IV 修复了这个问题。
Salting 更像是一个哈希术语,用于对抗彩虹攻击,它不会使黑客攻击成为不可能,但会使发现相同密码之间的模式变得不可行,因此相同的明文密码不会产生相同的哈希。 它们非常相似,但了解它们的使用和实现很重要。
【讨论】: