初始化向量的特征

Jam*_*man 14 random encryption cryptography initialization-vector

我绝不是一名加密专家,我一直在阅读围绕Stack Overflow和维基百科的一些问题,但在定义IV及其用法方面,没有什么是真正"明确的".

我发现的要点:

  • IV加在明文消息之前,以加强加密
  • IV真的是随机的
  • 每条消息都有自己独特的IV
  • 有时使用时间戳和加密哈希值而不是随机值,但由于可以预测时间戳,因此这些值被认为是不安全的
  • WEP(在802.11中)的弱点之一是IV将在特定数量的加密后重置,从而重复IV

我确信还有很多其他要点,有人能想到我错过的任何其他特征吗?

Tho*_*nin 13

IV是"影响加密过程的公共价值".IV的要点通常是"输入"输入数据,以避免泄漏有关明文中哪些输入块相同的信息(因为相同的块在"真实"数据中发生了很多).

IV是通过预先挂起来输入还是取决于使用它的算法.对于在CBC模式下使用分组密码进行对称加密,IV预先加密加密数据(CBC使用,对于每个块,使用先前的加密块; IV扮演加密块-1的角色).

IV不同于密钥,因为密钥是秘密的,而IV不需要是秘密的; IV通常沿加密消息传输.相反,对于每个消息,IV必须是不同的,而密钥可以被重用.实际上,对于使用相同密钥加密的每条消息,IV必须是不同的; 如果你为每条消息使用一个新密钥,那么你可以使用一个固定的,固定的IV.请注意,IV 不需要保密,但如果您愿意,可以保密.但是发送方和接收方必须就IV进行协商,并且由于每次消息的IV都会发生变化,因此在某些设置中,保持IV保密可能会很不方便.

IV必须是均匀随机的,还是简单地不重复,取决于算法.CBC需要随机IV.其他模式不那么挑剔,例如GCM.您可以使用适当的单向函数从"主密钥" 派生密钥 IV.这就是SSL的作用.看起来更棘手,不要在家尝试.

重复IV是WEP的众多罪行之一.