Cryptography SHA512优于MD5的原因

Cryptography SHA512优于MD5的原因,cryptography,md5,hash,sha512,Cryptography,Md5,Hash,Sha512,我想知道我是否可以解释为什么SHA512是MD5的高级哈希算法的原因或参考资料链接。它需要一个更大的字典来向后映射,并且冲突的可能性更低。 然而,已经证明MD5不耐碰撞 MD5已经被密码破解了很长一段时间了。这基本上意味着一些通常由哈希算法保证的属性不再有效。例如,可以在比输出长度可能需要的时间少得多的时间内找到哈希冲突 SHA-512(SHA-2系列散列函数之一)目前已经足够安全,但在可预见的未来可能不会太长。这就是NIST发起SHA-3竞赛的原因 通常,您希望哈希算法是单向函数。它们将一些输

我想知道我是否可以解释为什么SHA512是MD5的高级哈希算法的原因或参考资料链接。

它需要一个更大的字典来向后映射,并且冲突的可能性更低。

然而,已经证明MD5不耐碰撞


MD5已经被密码破解了很长一段时间了。这基本上意味着一些通常由哈希算法保证的属性不再有效。例如,可以在比输出长度可能需要的时间少得多的时间内找到哈希冲突

SHA-512(SHA-2系列散列函数之一)目前已经足够安全,但在可预见的未来可能不会太长。这就是NIST发起SHA-3竞赛的原因

通常,您希望哈希算法是单向函数。它们将一些输入映射到一些输出。通常,输出是固定长度的,因此提供原始输入的“摘要”。常见的属性是,例如,输入的小变化会导致输出的大变化(这有助于检测篡改),并且函数不容易可逆。对于后一个属性,输出的长度非常有帮助,因为它为碰撞攻击的复杂性提供了理论上限。然而,设计或实现中的缺陷通常会降低攻击的复杂性。一旦知道了这些,就应该评估是否仍在使用哈希函数。如果攻击复杂度下降足够多,那么实际攻击很容易进入没有专门计算设备的人群范围


注意:我在这里只讨论了一种攻击。现实虽然更加微妙,但也更加难以把握。由于散列函数通常用于验证文件/消息的完整性,因此冲突可能是最容易理解和理解的问题。

很简单,MD5被破坏;)(见附件)

布鲁斯·施奈尔(Bruce Schneier)在谈到这次攻击时写道,“我们已经知道MD5是一个已损坏的哈希函数”,并且“任何人都不应该再使用MD5了。”


MD5有可能发生冲突(),并且有许多MD5 rainbow表用于在web上进行反向密码查找,可供下载

这取决于您的用例。你不能笼统地宣称“优越”。(我的意思是,是的,在某些情况下你可以,但严格来说,你真的不能)

但也有一些MD5被破坏的领域:

  • 首先,MD5很老,很常见。靠着它有很多彩虹桌子,很容易找到。所以,如果你正在使用md5对密码进行哈希运算(毫无疑问,真丢脸!),你最好不要对它们进行哈希运算,因为它们很容易找到。即使你真的在用简单的盐做杂烩
  • 其次,MD5不再是安全的加密散列函数(事实上,它甚至不再像分叉函数所指出的那样被视为加密散列函数)。您可以生成散列为相同值的不同消息。因此,如果您有一个带有MD5散列的SSL证书,我可以生成一个重复的证书,该证书说明了我想要的内容,并生成了。这通常是人们说MD5“坏了”的意思——类似这样的事情
  • 第三,与消息类似,您还可以生成不同的文件,因此使用MD5作为文件校验和是“不正确的”
  • 现在,SHA-512是一种哈希算法。如今,SHA-1被认为是“呃”,我将忽略它。然而,SHA-2对它的攻击相对较少。维基百科所讨论的主要问题是,如果你以一种可怕的错误方式使用SHA-512,我可以破坏它。很明显,你不太可能以这种方式使用它,但攻击只会变得更好,这是一个很好的跳板,进入更多的研究,以同样的方式打破SHA-512的MD5被打破


    然而,在所有可用的散列函数中,SHA-2系列目前是最强的,并且是考虑到通用性、分析和安全性的最佳选择。(但不一定是速度。如果你在嵌入式系统中,你需要执行一个完整的其他分析。)

    这里有几点没有提到,我觉得这是因为对哈希是什么、如何工作以及成功攻击它们需要多长时间缺乏了解,使用彩虹或目前已知的任何其他方法

    从数学上讲,MD5不是“坏”的,如果你在散列和节流尝试中加盐(即使是1秒),你的安全性也会像攻击者用木勺缓慢地向你的1ft实心钢墙投掷一样“坏”:

    这将需要数千年的时间,届时所有相关人员都将死亡;还有更重要的事情要担心。

    如果你在第20次尝试之前锁定了他们的帐户。。。问题解决了。在你的墙上点击20次=0.000000000他们通过的几率为1%。从统计学上看,你实际上是耶稣的可能性更大

    同样重要的是要注意,任何散列函数都会很容易受到冲突的影响,因为散列是:“其他事物的(小)唯一id”

    增加位空间会降低冲突率,但也会增加id的大小和计算它所需的时间

    让我们做一个小小的思维实验

    SHA-2,如果存在的话,将有4个可能的唯一ID用于其他东西。。。00, 01, 10 & 11. 显然,它会产生碰撞。你看到这里的问题了吗?散列只是您试图识别的内容的生成ID

    MD5实际上非常非常擅长根据输入随机选择一个数字。事实上,沙祖康在这方面并不是很在行;SHA为ID提供了更大的空间

    使用的方法大约是碰撞可能性较小原因的0.1%。真正的原因是较大的位空间

    这实际上是SHA-256和SHA-512的vu更少的唯一原因