破解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算法,该算法的安全性大可放心。所以,对于银行这样的实时系统,篡改信息影响交易过程是绝对不可能的。”