MD5是否将会被SHA-1取而代之?

日期: 2010-06-24 作者:Michael Cobb翻译:王勇 来源:TechTarget中国 英文

问:许多组织已经用SHA-1算法取代了MD5算法,那么MD5算法现在仍可以安全地使用吗?   答:MD5(Message-Digest Algorithm 5,消息摘要算法5)算法是一个用于加密的单向散列函数。散列函数可以对一段数据(如文件或消息)进行运算,生成一个较短的、固定长度的数值,称为散列值。一个MD5散列值通常表示为一个32位的十六进制数。散列函数在加密方面用途广泛,因为对原始输入的任何修改(包括故意的和无意的修改)都将会引起结果散列值的变化。

散列函数可用于多种形式的认证,例如数据签名和消息认证码。另外,散列函数还可用于验证文件的完整性,因为即使是对文件最细微的修改,也会改变其散列值……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

:许多组织已经用SHA-1算法取代了MD5算法,那么MD5算法现在仍可以安全地使用吗?

  :MD5(Message-Digest Algorithm 5,消息摘要算法5)算法是一个用于加密的单向散列函数。散列函数可以对一段数据(如文件或消息)进行运算,生成一个较短的、固定长度的数值,称为散列值。一个MD5散列值通常表示为一个32位的十六进制数。散列函数在加密方面用途广泛,因为对原始输入的任何修改(包括故意的和无意的修改)都将会引起结果散列值的变化。散列函数可用于多种形式的认证,例如数据签名和消息认证码。另外,散列函数还可用于验证文件的完整性,因为即使是对文件最细微的修改,也会改变其散列值。例如,许多软件出版商都会提供其可下载软件的MD5散列值,从而使用户可以验证该文件是可信的,没有被篡改的。

  然而,由于散列算法生成一个较短的、固定长度的散列值来代表任意长度的数据,这就意味着,可能的输入值要远远多于散列算法生成的唯一散列值。因此,必定会有多个输入值将产生相同的散列值,这就是所谓的散列碰撞。对于一个在密码学意义上被认为是安全和具有抗碰撞性的散列函数来说,找到能够产生相同散列值的两个输入值非常困难。2005年3月,两名研究人员创建了两个公钥不同但MD5散列值相同的X.509数字证书。从那以后,可以在一分钟内找到一个MD5碰撞的各种方法层出不穷。正是因为如此,MD5算法在密码学上被认为已经遭到破解,并逐渐被SHA-2散列函数系列所取代。

  MD5算法肯定不适合基于安全性的应用和服务,例如SSL(安全套接字层)和依赖抗碰撞性的数字签名。对于使用MD5散列值存储用户密码的早期应用来说,降低MD5算法脆弱性的一种可能的方法是,先向密码中添加一段随机字符,然后再计算其散列值。这种方法在一定程度上可以抵抗针对散列密码的字典攻击。尽管MD5散列值不再能保证文件未被篡改,但是在下载较大的文件时,可以使用MD5散列值检查错误,并验证文件是否损坏和完整。

  需要指出的是,在新的应用中没有理由再使用MD5。美国政府的大多数应用被要求在今年年底以前改用SHA-2散列函数系列,早期的应用也要尽可能地进行升级。至于你在问题中提到的SHA-1散列算法也具有安全漏洞,而迄今为止还没有出现关于成功攻击SHA-2散列函数系列的报道。同时,研究人员已经在进行SHA-3算法的开发。一个紧跟加密技术最新发展的好方法是,及时关注标准机构(如美国国家标准与技术研究所)的新闻并接受其建议。

翻译

王勇
王勇

相关推荐