第七章——单向散列函数
单向散列函数的具体例子
MD4 MD5
MD是消息摘要(message digest)的缩写
MD4和MD5都是单向散列函数,能够产生128比特的散列值
随着提出寻找MD4散列碰撞的方法,MD4已经不安全了
MD5的强碰撞性已经被攻破,现在已经能够产生具备相同散列值的两条不同的消息,因此它也已经不安全了。
SHA-1、SHA-256、SHA-384、SHA-512
SHA-1是由NIST(national institute of standards and technology美国国家标准技术研究所)设计的一种能够产生160比特的散列值的单向散列函数。SHA-1的强抗碰撞性已被攻破,也就是说,现在能够产生具备相同散列值的两条不同的消息。(王小云教授团队提出的)
SHA-256、SHA-384、SHA-512都是由NIST设计的单向散列函数,他们的散列值长度分别为256比特、384比特、512比特。这些单向散列函数合起来统称SHA-2
RIPEMD-160
RIPEMD-160是欧盟RIPE项目所设计的
RIPEMD的强碰撞性已经于2004年被攻破,但RIPEMD-160还尚未被攻破。
比特币中使用的就是RIPEMD-160
SHA-3(secure hash algorithm-3)
在2005年SHA-1的强抗碰撞性被攻破的背景下,NIST开始着手制定用于取代SHA-1的下一代单向散列函数SHA-3
和AES一样采用公开竞争的方式进行标准化,经过长达五年的选拔,最终于2012年正式确定将Keccak算法作为SHA-3标准
Keccak