在其他来源中,此维基百科条目指出,使用三个单独的键(k1,k2,k3)的三重DES很容易遇到中间攻击,而仅使用两个键(k1,k2,k1)的三重DES很容易受到攻击。

如果所有密钥都不相同,为什么会发动这种攻击,但如果第一个和第三个相同,则为什么不能?

评论

请注意,中间攻击肯定不是三重DES的安全性低于仅通过查看密钥大小所期望的安全性的唯一原因。查看最新的NIST和ECRYPT建议,例如在keylength.com上。

@owlstead感谢您的链接。无论如何,我永远不会使用3DES,这只是一个问题,维基百科的文章并未对此予以回答。

#1 楼

主要区别在于,使用两个56位密钥的最大安全级别为112位,因此,攻击成本为$ 2 ^ {112} $操作的攻击为无攻击,而对于三个56位密钥的最大安全级别为168位,并且一次攻击的成本为$ 2 ^ {112} $个操作,算作一次攻击。就像我们期望的那样,理想的168位密码一样。攻击的成本是对两半的攻击之和,而后者则由较昂贵的一半控制。因此,如果您可以采用以下方式来分割密码,即比起猜测整个密钥,更昂贵的一半更容易受到攻击,那么可以进行中间相遇。 (不考虑内存使用)

用两个键,一半有(k1,k2),另一半有(k1,k2)。攻击前半部分需要$ 2 ^ {112} $的操作,攻击后半部分需要$ 2 ^ {56} $的操作。总共执行$〜2 ^ {112} $个操作。

用三个键,一半有(k1,k2),另一半有(k3)。攻击前半部分需要$ 2 ^ {112} $的操作,攻击后半部分需要$ 2 ^ {56} $的操作。总共进行了$ 2 ^ {112} + 2 ^ {56} \ approx 2 ^ {112} $的操作。

所以居中碰头给了我们$ 2 ^ {112的攻击} $操作针对其中任何一个,但仅在使用三个键时比蛮力好。

评论


$ \ begingroup $
感谢您的回答,但是我想问的问题是,为什么在中间键上会见2键而不是在三个键上会变得“便宜”。还是114个操作是中间会议的固定值?编辑:看到您的编辑,对我来说您的意思现在更清楚了。谢谢。
$ \ endgroup $
–malexmave
13年2月14日在14:01

$ \ begingroup $
@malexmave无法以较昂贵的一半少于2 ^ 112个键的方式将它们分成两半。
$ \ endgroup $
– CodesInChaos
13年2月14日在14:03



$ \ begingroup $
@CodesInChaos好的,但是为了使答案完整,您可以解释为什么可以用3个键将三重DES分成两半。
$ \ endgroup $
–马腾·博德威斯♦
13年2月14日在23:02

$ \ begingroup $
让我看看我是否理解正确。两键3DES EDE(或换句话说,三键EDE,其中K1 == K3)方案的绝对安全性与三独立键3DES EDE方案的绝对安全性几乎相同;三键方案仅被视为“更糟糕”,因为我们希望三键方案在理想的情况下提供的算法密钥长度值得安全性的三倍,而不是算法密钥长度的两倍,因此在三-independent-keys方案,我们没有获得全部168位的价值?
$ \ endgroup $
–用户
2015年4月18日在17:09



$ \ begingroup $
@MichaelKjörling是的。如果使用随机密钥,则3密钥3DES至少与2密钥3DES一样强,但是它不能提供我们理想的168位密码所期望的168位安全性。对于2键和3键3DES,MitM的成本几乎相同。但是由于“攻击”通常被定义为“比蛮力要快”,而用168位密钥的蛮力要慢,因此MitM现在算是一次攻击。 (如果允许相关键攻击,则3键变体的结果可能会变得更糟,但是相关键不适用于设计良好的协议,因此我在回答中没有提及。)
$ \ endgroup $
– CodesInChaos
2015年4月18日在17:21