一起来学信息安全知识(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个字节。
[未经许可,不得转载]
老师刚站上讲台,乐呵呵的对我们说,
“我刚参加了一个国际密码学学术会议,有个人竟然声称自己破解了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个字节。
[未经许可,不得转载]
相关文章推荐
- 一起来学信息安全知识(2)——对称密码和非对称密码
- 一起来学信息安全知识(3)——签名
- 一起来学信息安全知识(4)——CRC, MD5, SHA1的关系与区别
- 信息安全基础知识
- 信息安全基础知识(二)消息摘要与数字签名
- iframe标签引用显示为空,ie下 【此内容不能显示在一个框架中, 为了帮助保护在此网站中输入的信息的安全……】
- [VB.NET]我打开网页的时候会弹出一个安全信息,然后出现:本页包含安全能容和不安全内容,是否显示不安全内容”请达人指教一下怎么删除这个提示
- 火狐 Firefox https 访问时出现安全连接失败提示: 在服务器密钥交换握手信息中 SSL 收到了一个弱临时 Diffie-Hellman 密钥 解决办法
- 信息安全知识的介绍
- 给大家推荐一个获取安全相关知识的地方
- 权威黑客知识讲座(六):.网络安全基础(四)—信息收集【实战开始】
- 2017-2018-1 20155326 《信息安全系统设计基础》 第一周对本书每章提一个问题
- 2016年4月26日作业(项目整体绩效评估、信息安全相关知识、信息工程监理知识)
- 信息安全基础知识(三)MAC消息验证码及密钥管理问题
- 信息安全基础知识(五)主动攻击与被动攻击
- 让我们一起来案例分析 第十二期 【邮箱信息安全】
- 【软考之路】信息安全相关知识总结
- PyCrypto —— 一个极好的信息安全python库