#1 楼
AES-GCM具有以下问题:在随机数重用的情况下,完整性和机密性属性均受到侵犯。如果两次使用同一随机数,则对手可以轻松创建伪造的密文。使用短标签时,很容易产生伪造的消息。例如,如果标签为32位,则在经过$ 2 ^ {16} $伪造尝试和$ 2 ^ {16} $加密所选明文(长度也为$ 2 ^ {16} $)之后,可以生成伪造密文。一旦发现足够多的伪造品,伪造品的创建就可以立即进行。
GCM安全证明存在缺陷。它最近已得到修复,但是对于不超过12个字节长的随机数,新的安全性范围要差得多;
如果不使用特殊的AES指令,GCM实现很容易受到定时攻击。即使AES本身是恒定时间实现的,该漏洞仍然存在。存在GCM的固定时间实现,但它们的速度很慢。
GCM将消息长度限制为68 GB,这在将来可能是不可取的。单个密钥上允许加密的数据总量受到$ 2 ^ {64} $个块的限制,但是如果允许使用较长的随机数,则此数量会减少。
GCM的快速实现需要特定的查找表,而无需
GCM很容易受到循环攻击;内部$ H $密钥的错误值(可以针对特定的AES密钥值进行预先计算)会对安全性产生负面影响。
评论
$ \ begingroup $
在GCM的身份验证弱点中,尼尔斯·弗格森(Niels Fergusson)说(关于伪造):“这很快导致攻击者知道所有H,然后可以创建任意伪造而不会被接收者发现。”其中H是用作身份验证密钥(!)的数据。因此,短标签会导致完全丢失身份验证,即使对于以后使用较大标签的密文也是如此。显然,这是比第二条语句更有效的声明。
$ \ endgroup $
–马腾·博德威斯♦
2014年9月11日上午10:06
$ \ begingroup $
我不想进一步详细说明多次伪造,但是如果您愿意,可以编辑我的答案。
$ \ endgroup $
–德米特里·霍夫拉托维奇(Dmitry Khovratovich)
2014年9月11日上午11:48
$ \ begingroup $
如果您不清楚,请做同样的事情,请编辑或让我知道。我认为公开密钥太严重了,不容忽视,我的意思是,身份验证功能的破坏性不能超过此。
$ \ endgroup $
–马腾·博德威斯♦
2014年9月11日11:57
$ \ begingroup $
我会说“身份验证密钥”有点令人困惑。可能会更好:“随后的伪造几乎可以立即进行,从而不再提供真实性。”
$ \ endgroup $
–德米特里·霍夫拉托维奇(Dmitry Khovratovich)
2014年9月11日下午13:15
$ \ begingroup $
可能会增加一个性能问题:GCM的实现不太慢,它使用的表耗尽了小型体系结构上的L1缓存(例如廉价家用路由器中的32位Mips)。据报道,在这样的系统上,EAX模式优于GCM。
$ \ endgroup $
–托马斯·波宁(Thomas Pornin)
14-10-24在18:45
#2 楼
我认为像GCM这样的模式存在的一个问题(在简短阅读后会提到几个问题)是随机数滥用(例如重用)。当密钥相同且重复使用现时时,通过误解概念或简单的编程错误,就可以显示有关纯文本的信息。Phillip Rogaway已经定义了一种加密模式(SIV ,合成IV),旨在更强大地抵御随机数滥用。但这很慢,因为它需要处理两次数据。它也不是“在线”的,因为必须先完成第一个数据处理,然后才能开始第二个数据处理。
评论
$ \ begingroup $
对于完全的随机数重用阻力,无法两次处理该消息。也就是说,当重用随机数时,任何仅处理消息一次的模式都比SIV弱得多。
$ \ endgroup $
– CodesInChaos
2014年8月4日在13:03
评论
我删除了我的答案,因为Dimitry的答案要好得多(别忘了接受)。但是,我在这里发表评论:竞争的目标是找到更好的身份验证加密方案。尽管GCM有很多缺点,但它似乎主要用作比赛的基准。这并不意味着以前的模式已被打破,也不意味着它们专注于一个特别的优势。