我想知道为什么我们在3 DES(也称为DES、TDES或TDEA)中使用三密钥而不是三次加密(EEE)三种不同密钥的加密-解密-加密(EDE)序列?
发布于 2012-03-09 14:09:10
标准的答案是保持与DES的兼容性;实现3 DES(使用EDE)的硬件电路也可以用于DES(例如,通过使所有三个子键相同)。
现在,这个直截了当的参数有一个小问题;3 DES (EEE,即三个加密操作)也具有这个属性;如果我们选择前两个子密钥为相同的弱键,第二个弱密钥加密将完全撤消第一个子密钥,明文块将由第三个子键操作(这是我们真正想要的DES操作)。
然而,设计3 3DES的人并没有错过这一点。相反,他们也在考虑第三种选择,2键3 3DES (这是普通的3 3DES,但第一和第三子键是相同的)。
现在,如果我们有一个带有三个独立子键的3 DES EEE实现,我们可以支持DES(使用弱键技巧)、2键3 DES (EEE)和3键3 DES (EEE)。然而,这并不是他们所想到的唯一情况;他们还考虑了这样的情况:有人在硬件中实现了2个密钥3 3DES (第一个和最后一个子键被限制为相同)。这是EEE模式无法做到的一件事;我们不能使用2键3 3DES的弱子键技巧(如果我们使相邻的两个子键成为相同的弱键,那么所有三个子键都是相同的弱键)。然而,EDE的伎俩仍然有效。
因此,完整的答案是,一个硬件电路可以同时支持DES和2个密钥3 DES (其中硬件电路坚持对第一和第三子键使用相同的子键),并且一个硬件电路可以支持DES、2键3 DES和3键3 DES。
发布于 2020-04-12 23:58:38
另一个原因是EEE会使蛮力攻击时间略有减少。DES的第一步是一个关键独立的初始置换,DES的最后一步是这个置换的倒数。对于EEE,第一加密结束时的逆置换将被第二加密的初始排列所抵消(第二加密的逆和第三加密的初始置换相同)。EDE的情况并非如此。
https://crypto.stackexchange.com/questions/2060
复制相似问题