专家观点:破解MD5和SHA-1不意味密码破解(图)

有关山东大学王小云教授破解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,使hx =hx' 。散列函数h被称为是强无碰撞的是指在计算上几乎不可能找到相异的x、 x',使得hx =hx' 。弱无碰撞是对给定的消息x,就是对你想伪造的明文,进行运算得出相同的摘要信息。也就是说你可以控制明文的内容。强无碰撞是指能找到相同的摘要信息,但伪造的明文是什么并不知道。数字签名最多的是文本内容 也就是人类可读内容,如果你产生一个人类不可读的碰撞 并不会对于原文产生重大影响。王小云教授找到的是强无碰撞。

  

  链接二


  数字签名与验证过程

  网上通信的双方,在互相认证身份之后,即可发送签名的数据电文。数字签名的全过程分两大部分,即签名与验证。

(0)

相关推荐

  • 专家观点:破解MD5和SHA-1不意味密码破解(图)

    有关山东大学王小云教授破解MD5和SHA-1的报道,让人对电子信息的安全性颇为关注,真相究竟如何? 要问当今众生,在日常生活中什么对你最重要,什么让你最头痛?相信很多人的回答是密码."请您输入密码,请再输一遍",无论是在银行柜台还是在网上冲浪,这样的提示对我们已是司空见惯.银行密码.登录密码.邮箱密码.各种游戏的密码.各个用户名的密码--密码已是世人生活中不可或缺的一部分.最近有关山东大学王小云教授破解MD5和SHA-1报道频频见诸报端,使人们对电子信息的安全性颇为关注,密码真的不可靠

  • QQ密码破解与对策全攻略

    QQ密码破解与对策全攻略 一.本地破解  方法:  这个办法的首要条件是你所在的机器开过你想要的QQ号,这又分两种情况,一是你所在的机器真的 曾经开过这个号码,二是通过共享入侵得到你想要的号码的整个目录,把它拷贝到你的OICQ的目录 下,启动OICQ你就能在号码选择下拉列表中看到这个号码了.共享入侵请参看本站黑客教程之 对 共享主机的简单入侵 ,网上硬盘共享最多的就是网吧和公司,而前者的硬盘里存有大量的QQ号码, 只要你能进去且它的OICQ目录或它所在的分区是共享的话,自己慢慢挑吧.但是网上的I

  • Java实现常用加密算法——单向加密算法MD5和SHA

    本文主要介绍了Java实现常用加密算法--单向加密算法MD5和SHA,具体如下: 1.Java的安全体系架构 1.1 Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 API 是 Java 编程语言的核心 API,位于 java.security 包(及其子包),以及sun.securityAPI包(及其子包)中.设计用于帮助开发人员在程序中同时使用低级和高级安全功能. JDK 1.1 中第一次发布的 JDK 安全中引入了"Java 加密体系结构"(JCA),

  • Java 详解单向加密--MD5、SHA和HMAC及简单实现实例

    Java 详解单向加密--MD5.SHA和HMAC及简单实现实例 概要: MD5.SHA.HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法. MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.MD5是输入不定长度信息,输出固定长度128-bits的算法. MD5算法具有以下特点: 1.压缩性:任意长度的数据,算出的MD5值长度都是固定的. 2.容易计算:从原数据计算出MD5值很容易. 3.抗修改性:对原数据进行任何

  • 破解md5加密扫描程序(适合扫描弱密码)[

    *{font-family:宋体;font-size:10pt} body{text-align:center} .txt{border:1px groove gray} 破解md5加密扫描程序(适合扫描弱密码) var sAscii = " !\"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" var sAscii = sAscii + "[\\]^_`abcdefghijklmnopqrstu

  • C#计算字符串哈希值(MD5、SHA)的方法小结

    本文实例讲述了C#计算字符串哈希值(MD5.SHA)的方法.分享给大家供大家参考.具体如下: 一.关于本文 本文中是一个类库,包括下面几个函数: ① 计算32位MD5码(大小写):Hash_MD5_32 ② 计算16位MD5码(大小写):Hash_MD5_16 ③ 计算32位2重MD5码(大小写):Hash_2_MD5_32 ④ 计算16位2重MD5码(大小写):Hash_2_MD5_16 ⑤ 计算SHA-1码(大小写):Hash_SHA_1 ⑥ 计算SHA-256码(大小写):Hash_SHA

  • 浅析Java 常用的 4 种加密方式(MD5+Base64+SHA+BCrypt)

    一.工具类  md5加密工具类  public class MD5Utils { private static final String hexDigIts[] = {"0","1","2","3","4","5","6","7","8","9","a","b",&qu

  • 密码破解全教程

    在日常的计算机操作中,我们随时随地都离不开密码--开机要使用CMOS密码.进Windows  98要使用用户密码.编辑Word文档要设置文档密码--,所有这些都为用户的数据安全提供了必要的安全保障!不过随着密码应用范围的增加,遗忘密码的情况也在与日俱增(谁也无法保证自己绝对不会忘记密码)!在忘记密码之后如何破解这些密码,尽可能减少损失就成为广大用户所关注的一个话题.为方便用户的使用,现将常用计算机密码的破解方法向大家作一简要介绍: 一.开机密码  根据用户设置的不同,开机密码一般分为两种不同情况

  • 使用Ruby实现FTP密码破解

    这篇文章我将带大家利用Ruby,来构建我们自己的FTP密码破解器.并希望通过这个例子,让大家明白暴力攻击的概念及其重要性.好了话不多说,下面让我们开始吧! 何为暴力攻击? 暴力攻击这个词,其实对于许多安全圈的小伙伴来说都并不陌生,可谓是简单粗暴.但对于许多攻击者而言,暴力攻击却是不可或缺的一种攻击手段.在实际应用中,由于暴力攻击需要消耗大量的时间和资源,因此往往都不会成为攻击者首选的方案,但它却会是攻击者最后的选项. 例如我们设置一个如下场景: 你现在想要访问你所在公司的FTP(文件传输协议)服

  • 实现winrar密码破解的vbs代码

    复制代码 代码如下: title="WinRaR破译(目前只做了破译数字)" set WshShell = CreateObject("WScript.Shell" ) set fso = CreateObject("scripting.filesystemobject") Function input() rar_path=InputBox("请输要解密的rar或zip入路径"&Chr(13)&Chr(10)

随机推荐