有关山东大学王小云教授破解MD5和SHA-1的报道,让人对电子信息的安全性颇为关注,真相究竟如何?
要问当今众生,在日常生活中什么对你最重要,什么让你最头痛?相信很多人的回答是密码。“请您输入密码,请再输一遍”,无论是在银行柜台还是在网上冲浪,这样的提示对我们已是司空见惯。银行密码、登录密码、邮箱密码、各种游戏的密码、各个用户名的密码……密码已是世人生活中不可或缺的一部分。最近有关山东大学王小云教授破解MD5和SHA-1报道频频见诸报端,使人们对电子信息的安全性颇为关注,密码真的不可靠了吗?
何谓破解
信息安全国家重点实验室教授、密码学专家翟起滨在办公室平静地告诉记者:“MD5和SHA-1属于散列算法,从设计原理来讲,就有产生碰撞的可能,王小云教授的方法缩短了找到碰撞的时间,是一项重要的成果。但她找到的是强无碰撞,要能找到弱无碰撞,才算真正破解,才有实际意义。”
根据密码学的定义,如果内容不同的明文,通过散列算法得出的结果(密码学称为信息摘要)相同,就称为发生了“碰撞”。散列算法的用途不是对明文加密,让别人看不懂,而是通过对信息摘要的比对,防止对原文的篡改。
作为中国出席“Crypto′2004”和“RSA 2005”年会的唯一正式代表,翟起滨教授特别强调:“碰撞分为‘强无碰撞’和‘弱无碰撞’。强无碰撞是无法产生有实际意义的原文的,也就无法篡改和伪造出有意义的明文。”通过强无碰撞伪造一个谁也看不懂的东西,没有实际意义。翟教授还让记者浏览了“RSA 2005”年会的会议摘要,国际密码学专家沙米尔(Shamir)在“RSA 2005”年会上就王小云教授找到一对强无碰撞发表观点:“这是个重要的事情,但不意味着密码被破解。”
现实无忧
“找到一对强无碰撞和找到有实际意义的碰撞,是有本质区别的。”翟教授认为破解的说法不确切。他介绍说:“在‘RSA 2005’年会上,专家们认为SHA-1目前绝对安全,再使用5~10年没问题,计划在2010年以后考虑更换。”
我们知道理论上破解密码的方法,如果要在现实中实现,需要通过超级计算机海量的计算,所需时间一般是成千上万年。在实际应用中,破解时间太长意味着破解将失去现实意义。
中国金融认证中心(CFCA)的技术顾问、原中国建设银行科技部总工程师,曾参加《电子签名法》制定的关振胜介绍:“目前网上银行的认证采用多次散列算法的加密手段。如B to B的交易,首先对网上银行的表单进行SHA-1的摘要计算;然后对客户填写的信息再计算;最后银行收到信息后还要进行签名。如果要篡改其中的信息,必须破解3次(前提是能破解,现在还做不到),既使是你若干天或若干月后破解了,交易早已完成。同时,信息摘要的传输还要在PKI体系(公钥基础设施)下进行,PKI体系现在大多应用RSA算法,该算法的安全性大可放心。所以,对于银行这样的实时系统,篡改信息影响交易过程是绝对不可能的。”
如果集中所有的军用超级计算机来破解怎么办?哪我们想想,穷全美国之力,破解你一笔商业交易干什么。像散列算法这么弱的算法,政府部门是根本不会采用的。
另外,关总还介绍说:“伪造数字证书也是不可能的。数字证书包含了很多特定内容,只有具备了包括序列号等一系列特定信息,这个证书才有意义。根据特定的原文内容,伪造出相应的摘要信息是根本做不到的。”
我们看到,如果找不到弱无碰撞,或即使找到弱无碰撞但找不到超大型计算机,想干点篡改和伪造的勾当是不可能的。况且,当管理部门一旦发现算法的安全性可能出现风险,换一个新的算法不存在难度。
从事计算机安全的厂商,对所谓密码破解均不以为然。他们认为,任何产品都有生命周期,产品技术的改进工作时刻都在进行。虽然有人说密码算法不安全,但现在没有任何实质的危害发生。信息安全有多种防范措施保证,散列算法只是其中较弱的一种,不必过分担心。
魔高一尺,道高一丈。随着技术的发展,任何手段都不可能永远不变。当今世界是安全的,大可不必为了密码寝食难安。
产生了碰撞,就带来了问题。王小云等人发现了当前所用的散列算法存在的问题,必将帮助未来的新的散列算法设计者考虑到这方面的问题,使得新的散列算法具有更好的安全性。比如DES开始不安全以后,更多更强的加密手段也一一涌现。不管破解的结果如何,王小云教授的成果足以让我们振奋,对商用密码的研究起了促进作用。
链接一
什么是强无碰撞和弱无碰撞
散列函数h称为是弱无碰撞的,是指对给定消息x∈ X ,在计算上几乎找不到异与x的x'∈ X,使hx=hx'。散列函数h被称为是强无碰撞的是指在计算上几乎不可能找到相异的x、 x',使得hx=hx'。弱无碰撞是对给定的消息x,就是对你想伪造的明文,进行运算得出相同的摘要信息。也就是说你可以控制明文的内容。强无碰撞是指能找到相同的摘要信息,但伪造的明文是什么并不知道。数字签名最多的是文本内容 也就是人类可读内容,如果你产生一个人类不可读的碰撞 并不会对于原文产生重大影响。王小云教授找到的是强无碰撞。
链接二
数字签名与验证过程
网上通信的双方,在互相认证身份之后,即可发送签名的数据电文。数字签名的全过程分两大部分,即签名与验证。
数字签名操作过程
数字签名操作具体过程如下:首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用散列算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即作数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。
数字签名验证过程
接收方收到数字签名的结果,其中包括数字签名、电子原文和发方公钥,接收方进行签名验证。验证过程是:接收方首先用发方公钥解密数字签名,导出数字摘要,并对电子文件原文做同样散列算法得出一个新的数字摘要;将两个摘要进行结果比较,结果相同则签名得到验证,否则签名无效。这就做到了《电子签名法》中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。
数字签名的作用
如果接收方对发送方数字签名验证成功,就可以说明以下三个实质性的问题:
(1) 该电子文件确实是由签名者的发送方发出的,电子文件来源于该发送者。因为,签署时,电子签名数据由电子签名人所控制。
(2) 被签名的电子文件确实是经发送方签名后发送的,说明发送方是用了自己的私钥做的签名,并得到验证,达到不可否认的目的。
(3) 接收方收到的电子文件在传输中没有被篡改,保持了数据的完整性。因为,签署后对电子签名的任何改动都能够被发现。
链接三
什么是数字证书
数字证书,简称为证书,它是PKI(公钥基础设施)的核心元素,由认证机构服务者所签发,它是数字签名的技术基础保障。它符合X.509标准,是网上实体身份的证明,证明某一实体的身份以及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。证书是公钥的载体,证书上的公钥唯一与实体身份相绑定。证书在公钥体制中是密钥管理的媒介,不同的实体可以通过证书来互相传递公钥。证书由权威、可信任和公正的第三方机构所签发。
|