导致MD5碰撞是否“容易”?

时间:2014-09-07 05:14:15

标签: hash-collision

来自this page it appears you can do 5 billion hashes per second。这是否意味着引起碰撞并不困难?如果我想创建一个具有特定MD5或SHA1的文件需要多长时间?

根据我的数学(使用2 ^ 160)它仍然需要很长时间但是从我听到的不是2 ^ 160来暴力破解160比特sha1哈希

1 个答案:

答案 0 :(得分:1)

如果每秒50亿次哈希是真的,那就意味着你可以大致 45 211 226 851 851 851 851 852年创建/“反转”哈希 (所以你会更好在你还年轻的时候开始)

这个假设背后的数学

  • MD5哈希有2 ^ 128种可能的组合
  • 每秒50亿意味着秒数= 2 ^ 128 /(5 * 10 ^ 9)
  • 大约10 ^ 30秒
  • 大约是45 211 226 851 851 851 851 852年

结论:你需要3万亿台计算机,从大爆炸开始 - 今天你将拥有你的MD5哈希。

暴力破解和加密

在加密方面,暴力强迫从不答案。一旦它,它只是意味着加密算法不够强,即没有足够的位。这发生在DES,它有一个56位密钥 - 而这还不够。

另外,请注意,256位不是“128位的两倍”! 256位实际上是128位的2 ^ 128倍。

2^256 / 2^128 = 2^128

如何进行MD5碰撞!

因此,随着暴力强迫,你永远不会去任何地方!无论你有多少台电脑。剩下的唯一选择是通过数学攻击算法。

世界各地的加密分析师和数学家都对此进行了研究。

他们设法通过破解算法在合理的时间内创建了MD5冲突。不要问我他们是如何做到这一点的,但这是一个例子:

d131dd02c5e6eec4 693d9a0698aff95c 2fcab58712467eab 4004583eb8fb7f89
55ad340609f4b302 83e488832571415a 085125e8f7cdc99f d91dbdf280373c5b
d8823e3156348f5b ae6dacd436c919c6 dd53e2b487da03fd 02396306d248cda0
e99f33420f577ee8 ce54b67080a80d1e c69821bcb6a88393 96f9652b6ff72a70

具有相同的MD5
d131dd02c5e6eec4 693d9a0698aff95c 2fcab50712467eab 4004583eb8fb7f89
55ad340609f4b302 83e4888325f1415a 085125e8f7cdc99f d91dbd7280373c5b
d8823e3156348f5b ae6dacd436c919c6 dd53e23487da03fd 02396306d248cda0
e99f33420f577ee8 ce54b67080280d1e c69821bcb6a88393 96f965ab6ff72a70

缺陷:彩虹表

所以你不能反转哈希,但有像md5cracker这样的彩虹表。他们有一个巨大的字符串数据库(通常是密码)和它们的哈希值。因此,如果您使用简单的密码,则可以在那里查找哈希值。

尝试查找此哈希:

  

5a8dd3ad0756a93ded72b823b19dd877

因此,如果您将密码的MD5存储在数据库中,那么向它添加一个盐是一个聪明的主意。例如,代替md5(password)存储md5("salt1234" + password)。或者,更好的是,您为每个用户使用不同的盐,因此任何人都无法看到哪些用户共享相同的密码。

结论:请注意,即使你无法反转哈希,你仍然可以查找一个哈希,这对于像上面这样的无盐哈希很容易。

黑客电影及其行为通常依赖于暴力破解。但这根本不是事实!