为什么在CBC模式下使用非随机IV是一个漏洞?

我了解IV的目的。 特别是在CBC模式下,这确保了使用相同密钥encryption的第一个消息块将永远不会相同。 但是,如果IV是顺序的,为什么它是一个漏洞呢? 根据CWE-329非随机IV允许字典攻击的可能性。 我知道在实践中像WEP这样的协议不会隐藏IV。 如果攻击者拥有IV和密文信息,那么这将打开对密钥的字典攻击的大门。 我不明白随机四如何改变这一点。 (我知道对wep的攻击比这个更复杂。)

随机iv有什么安全优势? 这仍然是一个“理想分组密码”的问题? (一个完全安全的分组密码,没有任何缺点。)

可预测的IV可以被select的纯文本利用。

假装Eve是一家保险公司的DBA。 该公司从受益人那里收集医疗logging,其中包括许多关于医疗条件的真/假checkbox。 这家公司也碰巧有自己的健康保险提供商。 伊芙意识到,如果能发现爱丽丝有一个特别令人尴尬的医疗条件,爱丽丝可能会被勒索。 但是,每个字段中的值都是encryption的,即使Eve是DBA,她也只能访问密文。

在CBC中,IV用纯文本进行XOR(以下记为“⊕”),然后运行分组密码:C 1 = E k (IV⊕P1)。

由于夏娃是保险公司的受益人,她可以select纯文本作为自己的病历,由于她是DBA,她可以检查任何人的密码文本。 除了使用可预测的IV之外,马虎的应用程序开发人员在validation应用程序input方面做得不好。 如果夏娃可以预先预测IV(IV 前夕 )和Alice(IV 爱丽丝 )logging的IV,她可以select如下的纯文本作为自己的logging:P eve = IV eve⊕IV alice⊕“false “

应用程序像这样encryption这个纯文本:

C eve = E k (IV eve⊕P eve )= E k (IV eve⊕(IV eve⊕IV alice⊕“false”))

IV 前夕剔除,这意味着C eve = E k (IV alice⊕ “false”)

现在,夏娃可以比较C和艾莉丝 。 如果他们不同,她知道爱丽丝必须为那个医疗条件input“真实的”。

使IV变得不可预测,阻碍了这种攻击,并且一个简单的方法使它们变得不可预测,就是在提供纯文本后随机select它们。

我想通过使用易受攻击的WEP来解释您的问题,而现在使用其他协议(如WPA2)。

简单的规则IEEE说:

基本规则永远不会使用钥匙+ IV

WEP受损的原因之一是由于IV产生的原因。

替代文字

如图所示,当WEP第一次出现时,如果攻击者知道IV是如何产生的,那么IV的长度是24位(后来增加了48位),或者在这种情况下IV足够小,攻击者可以利用消息。

如果有人知道IV的产生或其重叠(因为IV是24位,这意味着2 ^ 24 IV),在传输数据包期间,嗅探stream量的攻击者可以:如果IV是顺序的,则意味着仍然存在IVs在一段时间内会重叠的可能性。

我们假设,

passphrase key Kp initialization vector Ivi plaintext data D1, D2 (for separateblocks) Traffic Key:Kti=Kp||Ivi Ciphertext: E(Kti,Di)=RC4(Kti) xor Di 

并假设

 IV1=IV2 (created sequentially and from 0 to 2^24 again returns back) 

攻击者有,

 (RC4(Kt1) xor D1) Xor (RC4(Kt1) xor D2) = D1 XOR D2 

这可以通过使用networking痕迹使用Aircrack-NG来打破。 我展示的想法是基本的一个更复杂的假设可以作出,再也不会使用相同的四重叠。

其他答案很好,虽然技术性很强。

为什么在CBC模式下使用非随机IV是一个漏洞?

使用密钥encryption数据时,如果数据和密钥相同(没有更改),那么encryption的数据将是相同的。 如果encryption的数据是相同的,那么可以分析encryption数据组的模式,然后可以使用这些模式来获得关于encryption数据的知识。

CBC(密码块链接)通过将来自以前的bock的encryption数据与要encryption的数据异或来解决此问题。 这意味着即使密钥相同,如果来自前一个块的encryption数据不同,具有相同数据的块也将不同。

CBC的问题是如何处理第一个块,因为之前没有获取encryption数据的块。 相反,数据与被称为IV(初始化向量)的随机位块异或。

您可以考虑将IV的安全性与encryption数据块的安全性相同。 换句话说,如果他们可以被给予encryption的数据,那么他们也可以被给予IV。