假设对一个分组密码(DES或AES)进行一次评估需要10次操作,并且计算机每秒可以执行$ 10 ^ {15} $美元的此类操作。

需要花费多长时间?使用蛮力搜索恢复DES密钥? 128位AES密钥怎么样?

#1 楼

假设对{DES,AES}进行1次评估需要10次操作,我们每秒可以执行$ 10 ^ {15} $次操作。琐碎地讲,这意味着我们每秒可以评估$ 10 ^ {14} $或大约$ 2 ^ {46.5} $ {DES,AES}个加密。这是一个简单的视图:我们在这里忽略了测试是否找到正确密钥的成本以及密钥调度成本。

因此,在我们假设的机器上,将使用56位DES密钥,平均来说,找到$ 2 ^ {55} / 2 ^ {46.5} = 2 ^ {8.5} \大约362 $秒。同样,找到128位AES密钥需要花费$ 2 ^ {127} / 2 ^ {46.5} = 2 ^ {80.5} $秒$ \大约2 ^ {55} $(或大约$ 36万亿)年才能找到。

评论


$ \ begingroup $
仅仅因为它让我有些困惑-56位当然意味着$ 2 ^ {56} $的可能性,但平均而言,尝试一半后,您会找到合适的可能性,因此$ 2 ^ {55} $ 。
$ \ endgroup $
– PJSCopeland
19-10-17在3:01



#2 楼

您可以查看3个DES挑战所花费的时间:


DES挑战1 = 140天
DES挑战2 = 41天
DES挑战3 = 56小时


来源:http://cs-exhibitions.uni-klu.ac.at/index.php?id=263

#3 楼

这取决于实现方式。我只是用任务管理器和十六进制编辑器破解了大约五分钟。
这是一个常用的公共领域实现,但是免费的(所以可能不是一个很好的例子)。
只是把它运行后搜索我的钥匙。寻找围绕密钥的关联内存片段。现在,我可以找到运行该实现的任何人的密钥。
买一个不错的程序,不要做一个草率的实现。

评论


$ \ begingroup $
嗨,嗨!根据问题的要求,破解应用程序与进行暴力搜索不同。不幸的是,出于这个原因,我不得不否决了你的答案。
$ \ endgroup $
–马腾·博德威斯♦
17年4月4日在23:02

$ \ begingroup $
我同意,我没有回答桌上的问题。请继续享受练习。
$ \ endgroup $
– jjhiv
17年5月5日在13:50