我想知道为什么我们在具有三个密钥的3DES(也称为DES-EDE,TDES或TDEA)中使用加密-解密-加密(EDE)序列,而不是使用具有三个不同密钥的三次加密(EEE)?

评论

在安全性SE上重复:security.stackexchange.com/questions/1886/…

#1 楼

好吧,标准答案是保持与DES的兼容性。实现3DES(带有EDE)的硬件电路也可以用来做DES(例如,通过使所有三个子键都相同)。

现在,这种简单易用的一个小问题论据; 3DES(EEE,即具有三个加密操作)也将具有此属性;如果我们选择前两个子密钥为相同的弱密钥,则第二个使用弱密钥加密的密钥将完全撤消第一个子密钥,而纯文本块将由第三个子密钥进行操作(这是我们真正想要的DES操作)。

但是,设计3DES的人并非没有遗漏这一点。相反,他们还考虑了第三个选项,即2个密钥3DES(除了第一个和第三个子密钥相同之外,这是常规的3DES)。

现在,如果我们具有带有三个独立子密钥的3DES EEE实现,则可以支持DES(使用弱密钥把戏),2密钥3DES(EEE)和3密钥3DES(EEE)。但是,这并不是他们想到的唯一情况。他们还考虑了有人在硬件中实施2个关键3DES的情况(第一个和最后一个子密钥被约束为相同)。这是EEE模式无法做的一件事;我们不能将弱子键技巧与2个键3DES一起使用(如果我们使两个相邻子键成为相同的弱键,那么所有三个子键都是相同的弱键)。但是,EDE技巧仍然有效。

因此,完整的答案是,一个硬件电路可以同时支持DES和2个密钥3DES(其中,硬件电路在第一个密钥中坚持使用相同的子密钥)和第三个子密钥),并且一个硬件电路可以支持DES,2个密钥3DES和3个密钥3DES。

评论


$ \ begingroup $
我很确定DES-EEE2与DES-EDE2一样可行。
$ \ endgroup $
–亨里克·赫尔斯特伦
2012年3月9日14:40

$ \ begingroup $
@Henrick Hellstrom:是的,但是DES-EEE2不能与DES向后兼容;您无法以某种方式将DES-EEE2子密钥与特定的DES密钥完全相同。您可以使用DES-EDE2。
$ \ endgroup $
–雨披
2012年3月9日14:44



$ \ begingroup $
另一个优点是,您只需两个加密器和两个解密器即可支持3DES(加密和解密)。如果是EEE,则​​需要三个加密器进行加密和三个解密器进行解密。
$ \ endgroup $
– David Schwartz
2012年10月10日,0:49

$ \ begingroup $
是否有任何与安全相关的动机并有据可查?像在坚持相同算法的同时最大化操作的结构差异?
$ \ endgroup $
–eckes
17年4月28日在1:47

$ \ begingroup $
@eckes:并非如此; DES加密和DES解密实际上实际上是相同的操作(除非您以相反的顺序处理子密钥)
$ \ endgroup $
–雨披
17年4月28日在12:34

#2 楼

另一个原因是EEE导致暴力攻击时间略有减少。 DES的第一步是与密钥无关的初始置换,而DES的最后一步是该置换的逆过程。使用EEE,第一次加密结束时的反向置换将被第二次加密的初始置换(与第二次加密的反向置换和第三次加密的初始加密相同)抵消。
EDE并非如此。