您的位置:首页 > 其它

一起来学信息安全知识(1)——一个小故事的大道理

2011-08-21 20:32 405 查看
大概是在04年,某天晚上我们上《密码学技术与原理》课程。

老师刚站上讲台,乐呵呵的对我们说,

“我刚参加了一个国际密码学学术会议,有个人竟然声称自己破解了MD5算法,真是个笑话。这个算法怎么可能被破解呢。”

当时我们也把这件事情当做了一个笑话。然而,后来事实证明,这不是笑话,就是王小云当时破解了MD5。从这件事情中,我们要知道:

1. 自己做梦都做不到的事情,也许别人可以做到;

2. 没有不可能的事情;比如目前RSA很健壮,但如果某天该算法被破解,那么当今世界的安全体系就崩溃了。



下面我们来对MD5了解一下。



MD5是Message Digest 5的缩写,即消息摘要,是一种哈希(Hash)算法,也可以称之为是一种散列算法。可以把MD5算法看做是一个漏斗,无论你往漏斗中放多少数据,最终只能得到一个16字节(128位)长度的数据,这个数据称之为哈希值、或散列值、或消息摘要、或MD5值。就好比是,你无论往漏斗中倒入多少粒大米,最终从漏斗中出来的大米个数仅为128粒,即使你只倒入1粒大米。那么这个漏斗就是通过轮转、置换等方法来生成这个散列值的。该算法是单向的,有损的,不可逆的。

MD5算法是公开的,即你可以知道MD5算法是如何将数据一步步的生成16字节的哈希值的。假设有个数据A,其哈希值是H,那么,很难找到另一个数据B(不等于A),使得B的哈希值也等于H,如果你找到了数据B,那么就说数据B跟数据A发生了碰撞。而王小云就是找到了一种能很快的找到数据A的碰撞数据,而且不只是找到一个碰撞,可以找到很多个碰撞。

先说说MD5的用途,再说说MD5破解后的事宜。

最普通的应用,我们电脑的密码,比如我们的密码是123456,其实在电脑的硬盘中,不会真正的保存123456这样的值的,而是保存123456的哈希值,这样就可以防止恶意人员知道真正的密码。因为根据哈希值无法倒推出密码。但是,根据王小云的破解,用MD5就不太安全了。

在安全领域,MD5会用于数字签名过程,这个随后再说。

MD5虽然破解了,在有些应用场合还是会采用MD5。这就好比说我们平时发邮件的时候可能邮件正文是以明文发送的,所以即使有时会有一些稍微敏感的信息,我们可以认为没有人故意监听网络。不过,对于一些重要的应用,将不会使用MD5,而是使用更为安全的SHA1。

SHA1也是一种散列算法,其哈希值长度为20个字节。

[未经许可,不得转载]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐