许多消息来源提到,不能在CTR模式下使用相同的密钥来重复使用IV来加密2个不同的数据,因为这完全破坏了安全性-但到目前为止,我还没有找到解释为什么如此。

如果攻击者可以设法获得一段数据的纯文本及其相应的密文,那么问题就很明显-但是如果没有已知的纯文本,攻击者将如何重建密钥-从IV值流?

也可以通过保持IV秘密来缓解安全问题吗?例如。仅仅知道密钥/ IV对已在创建两个不同的密文中被重用的情况下,攻击者会有任何现实的机会破解该加密吗?

评论

看看我们的问题,一个人如何攻击两次密码键盘(即一次使用密钥重用的密码键盘)?及其最近的副本如何知道我知道$ m_1 \ oplus m_2 $?如何找到两个字符串$ m_1 $和$ m_2 $?相同的攻击原理对每个同步流密码均有效(CTR模式就是一个例子)。

如果在阅读本文后仍有其他内容,请相应地编辑您的问题。

对于以后在此登陆的其他人,此链接(来自这个问题)可能最好地说明了这一点。感谢有关“两次装卸” Pa“ lo Ebermann和雨披的提示!

#1 楼

是的,攻击者将有一个恢复纯文本的现实机会,并且阻止他知道IV值也不会降低这种风险。

问题是CTR模式加密有效:

$ C = P \ oplus F(键,IV)$

其中$ P $是纯文本,$ C $是密文,$ F $是两个函数的复数输入。

问题是,如果用相同的$ Key $,$ IV $值加密两个不同的纯文本,则攻击者将得到两对密码:

$ C_1 = P_1 \ oplus F(键,IV)$

$ C_2 = P_2 \ oplus F(键,IV)$

他可以在其中看到值$ C_1 $, $ C_2 $。有了这些,他就可以计算出:

$ C_1 \ oplus C_2 = P_1 \ oplus P_2 $

,从而得出两个异或在一起的明文的值。 。

关于如何进行攻击,那么,您可以在此处和此处找到两个针对ASCII-英语纯文本的示例。

并且请注意,由于攻击者没有实际使用IV值,对他是否知道无关紧要。

评论


$ \ begingroup $
作为后续措施,尽管IV冲突可能会导致可扣除的纯文本,但是由于已知AES具有抵御纯文本攻击的能力,因此在发生冲突后我还能承担密钥本身的安全性吗?也就是说,如果我将新的IV用于另一条消息。使用新IV加密的消息是否仍被认为安全?
$ \ endgroup $
–崇
17年8月29日在13:07

$ \ begingroup $
@Chong:是的,任何用良好(正确选择)的IV加密的明文都是安全的。
$ \ endgroup $
–雨披
17年8月29日在13:09