OCB身份验证加密模式(例如与AES结合使用)是提供真实性和机密性的最快方法,而无需解决诸如以下问题:先加密然后再加密MAC,然后再加密,再加密和MAC。

那么为什么它没有被广泛使用并且没有成为标准呢?

评论

OCB在美国获得了商业用途的专利。

更新:OCB已获得专利,但可用于非军事用途

预计专利将在2021年左右到期时情况会发生变化

@figlesquidge在禁止军事用途的许可下,它可用于某些特定用途。它还禁止各种其他用途,例如嵌入式系统中的商业用途。为了方便起见,它被称为“非军事用途”许可,是通过其主要限制之一来识别该特定许可,而不是因为它允许所有非军事用途。

从技术上讲,美国政府或军方总是可以取消对专利的限制,任何人都可以尝试“ mayo利用”!

#1 楼

作为D.W.提到,OCB的专利确实是杀手;;当有免费的经过身份验证的加密模式可用时,谁愿意经历OCB的法律麻烦和费用。

另一个小得多的问题是OCB不支持“附加的身份验证数据” 。这是加密器和解密器都提供给该模式的数据。它用于计算身份验证标签(以及实际的加密消息)。这允许您执行的操作是将消息加密地绑定到消息上下文。接收者不仅可以验证邮件是否未被修改,还可以验证收件人没有剪切/粘贴原本是在不同上下文中发送的邮件。

您并不总是需要那;但是,如果确实需要,则使其与OCB一起使用的唯一方法是将上下文的副本放入纯文本中(并让接收者验证消息中的上下文实际上是他期望的上下文) )。这是可行的,但是如果该模式直接支持它会更干净。

评论


$ \ begingroup $
OCB确实允许其他经过身份验证的数据(作者称之为“关联数据”);请参阅此算法说明。尽管包括关联数据所需的时间与简单地(冗余地)将其包括在明文中的时间相同,但是您确实在带宽/存储方面节省了一些时间。
$ \ endgroup $
–赛斯
2012年12月9日23:55

$ \ begingroup $
OCBv1不允许关联数据,但已在OCBv2中引入。
$ \ endgroup $
–斯蒂芬·托瑟(Stephen Touset)
13年2月13日在23:08

$ \ begingroup $
@poncho:对不起,但由于现在可获得许可证并且OCB(现在为v3)支持AD,因此被否决了。两者都是为什么它最初未被接受的很好的理由,但是如今,我认为它不被使用的主要原因与“因为我们已经实现了”有关。如果更正的话,确实很高兴删除downvote! :)
$ \ endgroup $
–密码学家
2013年12月12日11:53



$ \ begingroup $
@figlesquidge在AEAD模式下,我碰到了您的反对意见/理由。请注意,只要OCB并非完全免费,它仍然是杀手er。通常,加密是在库中实现的,而不是直接在应用程序中实现的。无法知道是否允许在通用库中实现OCB,如果该库可用于军事目的。只要受IP限制,我就不会在任何标准中指定它,包括我目前正在编写的AEAD标准。
$ \ endgroup $
–马腾·博德威斯♦
2014年11月5日,11:50



$ \ begingroup $
同意,我不同意我过去的自我。当回到办公桌时会尝试破解该选票
$ \ endgroup $
–密码学家
2014年11月5日,11:53

#2 楼

因为OCB已获得专利。在大多数情况下,这使它们更适合。我可以推荐例如EAX,GCM或CWC。 EAX和GCM已在某些标准中使用,而AES-GCM已标准化。

有关可以了解更多信息的指针,请阅读Wikipedia。并尝试在此站点上使用短语“经过身份验证的加密”进行搜索。


更新:现在,OCB有免费的许可证。但是,它们具有一些不寻常的限制,一些实施者对此表示了担忧(例如,一个许可仅适用于开源软件;另一个许可仅用于非军事用途)。有关详细讨论,请参阅IRTF CFRG邮件列表上对此线程的响应。

评论


$ \ begingroup $
非军事许可实际上是三个许可,例如,在嵌入式系统中的商业使用均不许可。非军事用途只是许可证所具有的要求之一。
$ \ endgroup $
– David Schwartz
16年5月2日在22:35

$ \ begingroup $
我不会真的推荐EAX。在灵活性方面,这实际上只是对CCM的改进,它本身被设计为可替代IEEE 802.11i的OCB(我相信)。与OCB或GCM不同,由于需要在纯文本上进行两次传递而不是一次传递,因此它具有可怕的性能问题。
$ \ endgroup $
–森林
20年1月4日,3:09

#3 楼

这些是OCB的缺点,当时有人将AES作为基础分组密码,由Langstein的Bernstein在本演讲中讨论。在随机数重用情况下中断)已经超过了AES-OCB3)。考虑到AES的安全性,下一个AES-OCB3是可证明的安全性,但是由于最近对AES的攻击,情况已不再是事实。至于AES-OCB3的安全性证明,它允许$ 6q ^ 2/2 ^ {128} $的攻击概率,其中$ q $是AES块输入的数量:如果$ q $约为$ 2 ^ {60} $的界限远没有确定。当涉及到旁道攻击时,这不是AES的强项,因此也不是AES-OCB3。最后,目前尚不清楚OCB在伪造泛滥时如何处理(GCM允许丢弃而无需解密)。 />

评论


$ \ begingroup $
1)使用AES-NI,AES-OCB的性能非常好,即使ChaCha12也无法与之匹敌。只是没有AES-NI,它的速度很慢。 2)您在说什么针对AES的攻击?当AES与随机密钥一起使用时,我不知道有任何真正的攻击。 3)伪造的成本如何不清楚?这仅仅是解密的代价。我还认为伪造洪水不是一个大问题。
$ \ endgroup $
– CodesInChaos
13年2月14日在16:19



$ \ begingroup $
与使用AES相比,专用的AE结构显然可以在性能上做得更好。对于2),您从假设安全运行而不能安全运行的安全证明中得出什么呢?无论如何,这些都是一些更广泛的争论,为什么OCB并没有看起来那么完美。
$ \ endgroup $
– wu7
13年2月14日在17:28

$ \ begingroup $
我不清楚,使用AES-NI硬件,您可以做得更好。如果我们需要新的说明,这将花费十年左右,这不会感到惊讶。 2)大多数安全证明都假定AES的PRPness,而相关的密钥攻击不受影响,而biclique攻击只是次要的加速。因此,我认为不应有许多受影响的证据。 |我也认为这些答案都不能解释为什么不使用AES-OCB。人们使用AES很好,而且似乎比其他基于AES的模式更好。
$ \ endgroup $
– CodesInChaos
13年2月14日在17:48

$ \ begingroup $
$ 2 ^ {60} $块= 16艾字节。好的,要承认,下次我要加密16艾字节时,我将远离OCB3。 :)另一方面,只要您加密的字节数少于16 TB,则绑定的值始终保持在$ 2 ^ {-40} $以下。
$ \ endgroup $
–赛斯
13年2月14日在21:06

$ \ begingroup $
@CodesinChaos请注意,AES-NI并不提供完整AES的指令,而是全面的指令。因此,回收某些AES操作的专用结构可以轻松利用新指令。 DIAC研讨会手册中给出了新的新AE方案的示例:AEGIS和ALE
$ \ endgroup $
– wu7
13年2月15日在18:42

#4 楼

OCB的“ OpenSSL”许可证允许在“包含或基于” OpenSSL的任何作品中不受限制地使用OCB模式。仅排除与“ OpenSSL无关”的作品。没有军事或嵌入式的排斥,没有对仅二进制分发的限制,没有任何限制:只要从OpenSSL开始或包含任何内容,您就大开眼界。它虽然是专利而不是版权许可,但最终对您对许可材料的处理方式的限制远不如GPL,甚至可以说比2条款BSD许可更自由。

鉴于目前很难看出有人可能会对OCB的许可条款提出异议,除非是出于宗教目的。