单向散列函数的具体例子

一MD4、MD5
MD4是由于1990年设计的单向散列函数,能够产生的散列值 。不过随着提出寻找MD4散列的碰撞方法,现在已经不安全了 。
MD5是由于1991年设计的单向散列函数,能够产生128比特的散列值 。
MD5的强抗碰撞性已经被攻破,也就是说,现在已经能够产生具备相同散列值的两条不同的消息,因此它已经不安全了 。
MD4和MD5中的MD是消息摘要()的缩写 。
二SHA-1、SHA-256、SHA-384、SHA-512
SHA-1是由NIST设计的一种能够产生160比特的散列函数 。
1993年被作为美国联邦信息处理标准规格发布的是SHA 。
1995年发布的修订版 180-1称为SHA-1 。在《密码清单》中,SHA-1已经被列入“可谨慎运用的密码清单”,即除了可用于保持兼容性的目的外,其他情况下都不推荐使用 。
SHA-256、SHA-384、SHA-512都是由NIST设计的单向散列函数,它们的散列值长度分别为、、 。这些单向散列函数合起来统称SHA-2,它们的消息长度也存在上限(SHA-256的上限接近于2的64方比特,SHA-384和SHA-512的上限接近于2的128比特) 。这些单向散列函数于2002年和SHA-1一起作为 180-2发布的 。
SHA-1的强抗碰撞性已于2005年被攻破,也就是说,现在已经能够产生具备相同散列值的两条不同的消息 。不过,SHA-2还尚未被攻破 。
SHA-2共包含6种版本,这6种SHA-2实质上都是由SHA-256和SHA-512这两种版本衍生出来的,其他的版本都是通过将上述两种版本的结果进行截取得到的 。此外,SHA-224和SHA-256在实现上采用了32*8比特的内部状态,因此更适合32位的CPU 。
6种版本的SHA-2

单向散列函数的具体例子

文章插图

单向散列函数的具体例子

文章插图
三-160
-160是于1996年设计出的一种能够产生的散列值的单向散列函数 。-160是欧盟PIPE项目所设计的单向散列函数的修订版 。这一系列的函数还包括-128、-256、-320等其他一些版本 。在密码清单》中,-160已经被列入“可谨慎运用的密码清单”,即除了用于保持兼容性的目的以外,其他情况都不推荐使用 。
的强抗碰撞性已经于2004年被攻破,但-160还尚未被攻破 。顺便一提,比特币使用的就是-160 。
四SHA-3
在2005年SHA-1的强抗碰撞性被攻破的背景下,NIST开始着手制定用于取代SHA-1的下一代单向散列函数SHA-3.SHA-3和AES一样采用公开竞争的方式进行标准化 。
【单向散列函数的具体例子】SHA-3的选拔于5年后的2012年尘埃落定,一个名叫的算法胜出,最终成为了SHA-3.