|
|
1
44
AES本身并不直接使用盐(或者实际上是IV)。 当您将盐与AES结合使用时,情况是 基于密码的加密 (PBE)。在该方案中,人类可记忆密码与salt结合使用来生成AES密钥。salt的使用使得相同的密码并不总是生成相同的密钥;但是,由于接收者必须能够生成正确的密钥,因此salt必须与加密数据一起传输。 如果在某些分组密码模式(如CBC)中使用AES,则需要IV。在这种情况下,它用于确保相同密钥下的相同明文数据不总是加密到相同的密文。同样,接收方要求IV正确解密数据,因此它必须与加密数据一起传输。 因此,如果您在CBC模式下使用带AES的PBE作为基础密码,那么您需要发送PBE salt和CBC IV以及加密数据。 |
|
|
2
13
IVs用于对较大文件进行加密,以避免类似部分对同一内容进行加密。 它们非常相似,但这里有区别。
IVs总是与加密结果进行异或运算。之后执行此操作的原因是,只有第一个块使用IV,其余块使用前一个块进行此XORing。 这种区别很重要,因为与密码加密形式异或的salt很容易被破坏,IVs设计用于阻止模式识别式攻击,而不是密码文件的字典攻击。 |
|
|
3
3
否。IV可防止其他相同的消息显示相同。这会泄露信息,特别是你多次发送同一条信息的事实。 |
|
4
1
要添加到@Guvante answer,IV专门用于CBC模式(密码块链接模式) 与EBC模式相比,它增加了更多的安全性(如果两个相同的块使用相同的密钥加密,它们会产生相同的密码),IV修复了这一问题。 satting更像是一个散列术语,用于对抗彩虹攻击,它并没有使黑客攻击变得不可能,而是使发现相同密码之间的模式变得不可行,因此相同的明文密码不会产生相同的散列。 它们非常相似,但是理解每一个的使用和实现是很重要的。 |