博客网 >

MD5的安全性
作者:分类:默认分类标签:
      2004年9月2日,对于所有关心密码学的朋友而言,是一个不得不记住的日子:来自中国山东大学的王小云教授找出了哈希密码MD5和SHA-1等的缺陷,使得碰撞成为可能。各大媒体一致惊呼:中国王让当今世界电子商务的安全机制轰然倒塌!
      为王教授的这个发现高兴的同时,我们也需要思考,MD5的“破解”是彻底的吗?我们今后还能继续使用安全的哈希函数吗?(就目前而言,SHA-256似乎还是安全的)其实,通过对MD5的机制的简单分析,我们可以得出这样的结论:
      第一,MD5并没有被完全的破解,目前只是获得了快速产生碰撞的算法(大约需要2^40次尝试,在当前的计算能力下仅需几小时即可)。因为要从经过MD5散列处理所得到的结果逆向分析从而得到散列前的原文是根本不可能的!
      根据MD5的基本原理,该算法是将一段任意长的数据转换成一段长度为128位的数据,并且保证转换后得到的数据是伪随机的。从函数的角度而言,MD5即是将一个不做任何要求的自变量映射成为一个长度固定的因变量,显然,这是一个多对一的映射(因变量空间仅为2^128,而自变量空间为无穷大,所以可以将MD5视为一个无穷多对一的映射)。由最基本的数学定理可知,多对一的函数是不可逆的,即是说,不可能从MD5的散列结果逆推出原文。所以,用户不用担心其使用MD5进行散列处理后得到的结果会被人破解得到原文。
      第二,MD5的碰撞的发现,仅仅是使得使用其进行对随机序列的哈希操作变得不可靠,而对于一段有特殊意义或者格式的文字进行哈希而言仍然是安全的。
      根据当初王教授演示的结果,我们知道,使用她的碰撞算法得到的结果是一串随机字符串。因此,我们仍然可以使用MD5对软件等进行哈希,并且,目前市面上仍然有大量的软件是使用的MD5进行哈希作为验证码。只是利用MD5存储密码等已经不再安全!前段时间我在RSA公司的blog上也看到一篇讨论MD5在目前仍然可以使用的文章,作者提出的解决方案是在需要哈希处理的代码前加入一段格式固定的字符串,这个简单的做法就可以使王教授的攻击无效,这一点是值得我们去进一步探讨的!
      当然,为了获得更高的安全性,在仍然使用MD5的同时,我们也应该考虑将软件向SHA-256等仍然安全的算法进行迁移,并且期待密码学家们提出更加安全的哈希算法。
<< 网络嗅探威胁 / 认证方案的改进(一) >>

专题推荐

不平凡的水果世界

不平凡的水果世界

平凡的水果世界,平凡中的不平凡。 今朝看水果是水果 ,看水果还是水果 ,看水果已不是水果。这境界,谁人可比?在不平凡的水果世界里,仁者见仁,智者见智。

中国春节的那些习俗

中国春节的那些习俗

正月是农历新年的开始,人们往往将它看作是新的一年年运好坏的兆示期。所以,过年的时候“禁忌”特别多。当然,各个地方的风俗习惯不一样,过年的禁忌也是不一样的。

评论
0/200
表情 验证码:

Romeo

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        博文分类
        日期归档