2

我记得听说 SHA-1 发现了一些弱点,使得在给定输出哈希的情况下更容易找到明文输入。我也知道 MD5 对于某些应用程序已经确定为弱。我正在尝试创建一个程序来演示两种方法的不同复杂性:蛮力搜索来查找输入,以及利用 SHA-1 或 MD5 中的弱点来查找输入。

明文输入的长度将小于 4,并且仅包含 AZ,因此蛮力并非不切实际。

我的问题是:
是否有 C/C++ 实现通过利用弱点来反转 SHA-1?
是否有 C/C++ 实现通过利用弱点来反转 MD5?

我目前的感觉是,任何利用弱点的方法都没有足够的时间复杂度差异来证明如此小样本量的好处。

4

2 回答 2

7

不,这是不可能的。虽然 MD5 和 SHA-1 中确实存在一些弱点,但它们通常不允许这种形式的原像攻击——大多数已知的弱点都涉及碰撞对的构造。

于 2013-01-30T17:53:42.953 回答
2

有关 SHA-1 漏洞利用的非常详细的概述,请参阅

https://hashcat.net/p12/js-sha1exp_169.pdf

对于如此小的输入样本,您可以在内存中构建一个包含所有可能输入值及其哈希值的彩虹表(以毫秒为单位)。我怀疑您是否会使用漏洞利用与蛮力来衡量任何显着差异。

此外,对于如此小的输入范围,碰撞是极不可能的(因此几乎肯定不会有碰撞对)。

于 2013-01-30T17:55:11.057 回答