IV是否像盐一样起作用

Kel*_*vin 22 encryption aes

在AES中,我的理解是是使密码更安全的东西,它不会被添加到加密文本中.但IV是用于加密第一个消息块的东西,并将被添加到加密文本中.

我有什么不对吗?

caf*_*caf 34

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

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

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

因此,如果您在CBC模式下使用带有AES的PBE作为底层密码,您可能需要同时发送PBE盐和CBC IV以及加密数据.

  • 再次仔细阅读我的回复.使用的是**,因此相同的密码并不总是生成相同的密钥** - 这意味着,除其他外,攻击者无法脱机构建密钥到密钥的字典.IV类似地确保**相同的明文不会产生相同的密文** - 这意味着攻击者无法建立一组婴儿床.这些不会*停止*暴力攻击(你不能这样做) - 但它们可以最大化暴力攻击所需的时间/内存,并有效地防止一些预先计算. (14认同)
  • 没有盐和IV多余?如果我在AES CBC模式下使用PBE并且我总是使用相同的IV,但我一直使用随机生成的盐,这还不够吗?生成的密码都是唯一的,因为我永远不会加密相同的明文两次.我在这里错过了什么? (4认同)
  • 如果用加密数据发送盐和IV,有什么意义呢?因为攻击者可以从数据中轻松获得盐和IV,那么唯一的工作就是获得密码,这与没有盐和IV的方法不同? (3认同)
  • 是的,你误解的是第二个等式实际上是'X'(数据,密码,盐,IV)` - 盐和IV的影响不能单独计算. (3认同)

Guv*_*nte 10

我不太关注你的意思,但这里是一个概述.

盐用于密码散列以消除使用彩虹表裂解方法成功的可能性.(彩虹表是密码哈希的反向查找表)

IV用于加密较大的文件,以避免类似的部分加密到同一个东西.

它们非常相似,但这里有不同之处.

盐通常在加密之前或之后添加(据我所知).这意味着加密也在盐上执行.

IVs总是与加密结果进行异或.之后完成的原因是因为只有第一个块使用IV,其余的使用前一个块进行此异或.

区别很重要,因为与加密形式的密码进行异或的盐很容易被破坏,并且IV被设计为停止模式识别风格攻击而不是密码文件的字典攻击.