SHA1和MD5安全性探讨

探讨这个话题是因为山东大学的王小云教授通过碰撞法攻破了SHA1和MD5算法。其成果已经被Crypto大会中的科学家所认可。

SHA和MD系列算法是一种基于散列算法的单向加密算法,也就是说明文一经加密(散列),密文就不可以再被恢复为明文。一般用于数字签名和简单认证。

什么是散列呢?就是所谓的数字指纹。散列将任意长度的数据散列成定长的数据。这个定长的数据就是原始数据的摘要(指纹)。不同数据散列出来的指纹永远不同,而相同数据散列出来的指纹永远相同(理论上)。而且永远无法从散列后的数据恢复原始数据。

散列的安全性是基于概率以及实际计算机能力的理论。因为,定长数据永远存在一个范围。这个范围就是其安全性的瓶颈。因为现在的计算机技术无法使用穷猜法测试每一个数据,所以在概率上认为散列出来的数据是独一无二的。(如果要完成MD5原始数据的穷猜法测试或者找出相同指纹但不同明文的数据大概需要3亿年)

王教授的理论之所以能轰动全世界。特别是将全世界公认的MD5的安全性置之死地。是因为她发明了一种基于算法本身漏洞的算法。将测试时间极大减少,可在极短的时间内,就能找出一个指纹相同但明文不同的数据来。这就破坏了安全性的基点。

但是,即使MD5的算法被攻破,但其并不一定变得不安全。

王教授的碰撞法虽然能找出指纹相同的另一个数据。但这另一个数据的内容是不确定的。

在许多场合,MD5和SHA1被用来实现数字签名,特别多的是签名一段人类文章或字符串。这些文章和字符串是被人类能够直接理解的信息。比如说签名电子邮件,签名交易信函等等。在这些场合中。MD5和SHA1还是安全的。其原因就是因为碰撞法无法确定那另一个数据的内容。

比如说,在一电子邮件中,明文是 Hello,how are you?,经过MD5签名后指纹数据为A.虽然碰撞法能找到指纹数据也为A的另一段数据。但其内容只有极小的可能性也是一段人类可以理解的信息,比如说 Fuck you!,而更多的是一段乱码。这样的信息人类一眼就能识别出来其被破坏过。那也就不存在安全性丧失后的损失了。

所以说,如果不能使用特定数据来伪造签名的话,就不存在安全性丧失的问题。因此,MD5和SHA1算法在一些场合中还是安全的。

转自:http://www.cnblogs.com/cjrboy/articles/1166626.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值