OCB2由Rogaway提出,可调整的块密码的有效实例化以及对OCB和PMAC模式的细化
,并在ISO / IEC 19772:2009中进行了标准化。作者还提供了安全性降低的证明,即OCB2的破坏意味着基础块密码的破坏。

然而,井上彰子和Minematsu Kazuhiko描述了针对OCB2的实际伪造攻击。


(如何从高层次上进行攻击?)
为什么降低安全性的证明失败了?
意味着什么?


评论

twitter.com/hashbreaker/status/1057791485016526848

如果djb吓坏了,那我也会。谢天谢地,Rogaway的专利阻止了OCB的广泛采用。

早在OCB2取代OCB3(现在称为OCB)吗?

OCB2于2003年创建,OCB3于2011年创建。使用了8年,比OCB3失效的时间略长(根据Wikipedia),OCB2也已在多个地方进行了标准化,包括尚未撤销的ISO标准。它似乎。在某些情况下,我一定会确保OCB并不表示OCB2。如果它仍在标准文档中,那么它还没有完全被“抛弃”,只是成功了。

#1 楼


攻击是如何进行的(高水平)?


这是最后一个加密块的填充如何计算的不幸结果。填充实际上可以用来消除所选密文解密的块密码操作(允许攻击者确定明文),并且填充可以用作此攻击中的标签。这非常令人难以置信。

攻击会生成特殊的初始纯文本,将其发送到加密oracle,接收密文和标记,对二者进行修改,然后将它们发送到接受修改后的解密oracle

修改后的密文(提交给解密Oracle)将在解密中取消其块密码操作。有关其工作原理的详细信息,请参见本文。该思想的主旨是,用于最后一个(也是唯一的块)的填充在其中具有与密文块相同的块加密操作。换句话说,填充和密文都是用在同一输入上调用的分组密码进行异或的数据结果。由于填充板是与密文块异或的,因此我们基本上消除了唯一需要知道密钥的操作,因此我们现在知道了明文。

修改后的密文的正确标记原来是原始加密oracle调用的填充。该填充只是原始明文的最后一个块,它被发送到加密的oracle,与oracle输出的最后一个密文块异或。因此,伪造只需要一个加密oracle调用。

我强烈建议阅读本文以获取详细信息,自从您寻求高级知识后,我就尽力避免所有数学运算,但是魔术是真正地在于如何设计纯文本以及如何以可以由攻击者推断出相应标记的方式修改密文。


为什么通过安全性降低进行的证明失败了?


安全性降低失败了,因为在将OCB2的XEX(xor加密xor)和XE(xor加密)组合到XEX *中时有些微妙模式。问题是,即使加密功能(例如,分组密码)从理论上讲是安全的信息(认为是统一的随机排列),XEX *也不是。

对手是什么有问题顾名思义,允许在OCB2的安全证明中这样做。假定对手是尊重标签的,即它只能查询带有某些参数的加密和解密oracle到XEX *,但是OCB2的构造实际上以非常微妙的方式违反了尊重标签的属性。我将再次向您介绍该纸张的详细信息,证明有点复杂,并且没有彻底重写它的好方法。

强制执行此尊重标签属性的解决方案是非常简单,那就是使用XEX而不是XE来生成最后一个块中使用的填充。


意味着什么?


此中断特定于OCB2,具体取决于它如何使用XEX *。 OCB1和OCB3不受影响。应当停止使用OCB2的ISO规范。对于需要快速修复的使用OCB2的部署,上面提到的使用XEX而不是XE进行最后一块填充的解决方案就足够了。作者称此修改为OCB2f,并断言声称OCB2的安全范围实际上是正确的。

我试图以可读的方式回答问题,而没有涉及所有技术细节(重新撰写论文),但真正了解攻击及其影响的最佳方法是阅读本文并仔细研究攻击如何起作用以及其如何违反原始安全证明中的假设。