DES密钥0E329232EA6D0D73具有非同寻常的特性,即解密完全由零组成的密文块将得到由相同字节的八个重复(0x87)组成的明文块。

最初是如何找到此密钥的?

评论

由于DES密钥只有56位,因此如果它是纯蛮力,我不会感到惊讶。

这也是我的预感。破解DES的硬件已经存在了很长时间,我想不出任何可行的替代方法。

#1 楼

该值0E329232EA6D0D73是通过蛮力发现的。如果有一个更好的方法,我会感到惊讶:这相当于DES的密码分析破解,与我们所知的几种完全不同。

蛮力方法的简图(有关$ 2 ^ {56} $有效DES密钥中的每个$ K $的64位$



使用密钥$ K $一个完全由零组成的密文块,如果$ P $中的八个字节相等,则给出$ P $




输出$ K $和停止





不输出任何内容并停止。

对于完美密码,$ P $本质上是8个随机字节对于每个尝试的$ K $,因此如果满足条件,则每个$ K $的赔率为$ 2 ^ {-56} $。在DES的近似值下(由于密文是固定的,因此不会因补码属性而无效),因此未输出任何内容的几率是$(1-2 ^ {-56})^ {(2 ^ {56})} \ approx1 / e \ approx36.8 \%$。相应地,找到$ K $的几率是$ 1-(1-2 ^ {-56})^ {(2 ^ {56})} \ approx1-1 / e \ approx63.2 \%$。 br />
事实证明,我们处于第二种情况(也是最有可能的情况)(证明:问题中的断言成立)。知道这一点,通过概述的方法找到解决方案$ K $最多需要$ 2 ^ {56} $个解密。这并不比通过明文/密文对通过蛮力找到DES密钥难得多,这在几天内是可行的,1998年的预算为25万美元(包括NRE),请参见EFF DES Cracker。与此相比,唯一的困难是稍有异常的停止条件。但是,在像Copacobana这样的基于FPGA的实现中,或者在基于GPU的实现中,却增加了很少的成本。


更新:EFF DES Cracker的设计具有足够灵活的停止条件,并被用来首先公开找到该特定密钥,以证明其有效。引用EFF¹:


EFF DES破解程序首先解决了世界著名密码学家和AT&T Labs研究科学家Matt Blaze于约1996年提出的挑战。 “ Blaze Challenge”设计为只能通过DES的“强力”密码分析来解决。 Blaze先生向世界挑战,寻找匹配的明文和密文数字对,这些数字只包含重复的数字。直到EFF DES Cracker揭示了第一个已知的配对之前,Blaze自己都不知道有任何这样的配对。发现十六进制密钥0E 32 92 32 EA 6D 0D 73会将8787878787878787的明文转换为密文0000000000000000。




¹这链接到原始文档的存档。其中一些材料仍保留在当前的EFF网站上,但遗憾的是,该日期在现代化过程中丢失了,成为2016年8月而不是1998年7月。