MD4

科技工作者之家 2020-11-17

MD4是麻省理工学院教授Ronald Rivest于1990年设计的一种信息摘要算法。它是一种用来测试信息完整性的密码散列函数的实行。其摘要长度为128位。这个算法影响了后来的算法如MD5、SHA家族和RIPEMD等。

简介MD4是麻省理工学院教授Ronald Rivest于1990年设计的一种信息摘要算法。它是一种用来测试信息完整性的密码散列函数的实行。其摘要长度为128位,一般128位长的MD4散列被表示为32位的十六进制数字。这个算法影响了后来的算法如MD5、SHA 家族和RIPEMD等。1

发展历史1991年Den Boer和Bosselaers发表了一篇文章指出MD4的短处,至今未能找到基于MD4以上改进的算法有任何可以用来进攻的弱点。

2004年8月王小云报告在计算MD4时可能发生杂凑冲撞。

Den boer和Bosselaers以及其他人很快的发现了攻击MD4版本中第一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到MD4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。毫无疑问,MD4就此被淘汰掉了。

在MD4淘汰后掉之后1991年MD5的理论被提出,现主流编程语言普遍已由MD5实现。

除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval

而且MD4还是游戏quake3中的文件模型。

MD4散列一般128位长的MD4散列被表示为32位的十六进制数字。以下是一个43位长的ASCII字母列的MD4散列:1

MD4("The quick brown fox jumps over the lazy dog") = 1bee69a46ba811185c194762abaeae90

即使在原文中作一个小变化(比如用c取代d)其散列也会发生巨大的变化:

MD4("The quick brown fox jumps over the lazy cog") = b86e130ce7028da59e672d56ad0113df

空文的散列为:

MD4("") = 31d6cfe0d16ae931b73c59d7e0c089c0

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。