前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google研究人员宣布完成全球首例SHA-1哈希碰撞!

Google研究人员宣布完成全球首例SHA-1哈希碰撞!

作者头像
FB客服
发布2018-02-23 16:01:17
1.1K0
发布2018-02-23 16:01:17
举报
文章被收录于专栏:FreeBufFreeBufFreeBuf

2004年的国际密码讨论年会(CRYPTO)尾声,我国密码学家王小云及其研究同事展示了MD5、SHA-0及其他相关杂凑函数的杂凑碰撞并给出了实例。时隔13年之后,来自Google的研究人员宣布完成第一例SHA-1哈希碰撞。

什么是SHA-1算法,什么是碰撞?

SHA-1(Secure Hash Algorithm 1,中文名:安全散列算法)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。

SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。

由于算法的特点,消息摘要往往有以下特点:

难以由一个已知的散列数值,去推算出原始的消息 在不更动散列数值的前提下,修改消息内容是不可行的 对于两个不同的消息,它不能给与相同的散列数值

因此在信息安全中,有许多重要的应用,都使用了密码散列函数来实现,例如数字签名,消息认证码,甚至当你从网上下载文件,为了防止文件被篡改,很多网站也会公布文件相应的校验值。

而所谓哈希碰撞,简而言之就是:先得出一个字符串的哈希值,再根据这个值,逆算出另外一个不同的字符串——但保证它们的检验值完全一致。

如果存在碰撞的可能,消息摘要的唯一性就被破坏,这个算法也不再安全。

2004年的国际密码讨论年会(CRYPTO)尾声,我国密码学家王小云及其研究同事展示了MD5、SHA-0及其他相关杂凑函数的杂凑碰撞并给出了实例(Collisions for hash functions MD4, MD5, HAVAL-128 and RIPEMD,rump session of CRYPTO 2004,How to Break MD5 and Other Hash Functions,EuroCrypt 2005)。

这项研究当时轰动一时,直接宣告MD5算法不再安全。而人们对于SHA-1碰撞算法的研究也从未停止过,直到2月23日Google研究人员公布首例SHA-1哈希碰撞实例。

研究过程

这项研究成果来源于荷兰数学和计算机科学国家研究所和Google安全、隐私和反滥用研究小组的长期合作。

两年前,Marc Stevens和领导Google反滥用研究团队的Elie Bursztein开始合作,利用Google的专业性和强大的计算能力,实现Marc对SHA-1的密码分析攻击。2013年时,Marc Stevens曾经发表论文阐述制造哈希碰撞的理论方法。

研究人员在他们的研究网站SHAttered上给出了两份内容不同,但是具有相同SHA-1的PDF文件。

根据Google博客给出的数据,改进后的shattered攻击完成这一次SHA-1哈希碰撞需要单一GPU计算110年。

而传统的暴力搜索方式则需要单一GPU计算12000000年,即便是拥有强大计算能力的Google也无力承担。

安全建议

SHA-1哈希算法本身存在缺陷,这就导致理论上一直存在碰撞可能,而这次碰撞实例的出现更是完全否定了算法的安全性。

SHA-1的应用众多,比如浏览器证书、Git管理代码仓库,甚至校验文件是否相同,所以将SHA-1替换为更安全的算法就显得尤为紧迫。

实际上早在2014年,Chrome浏览器就不再推荐SHA-1算法的浏览器证书,微软Edge浏览器、Firefox浏览器都在计划逐步淘汰SHA-1算法。在博客中,Google建议大家切换到更安全的SHA-256和SHA-3算法。

90天后,Google还会提供代码让大家生成两份拥有相同SHA-1值而内容不同的PDF文件。

研究网站:https://shattered.it/

相关论文:https://marc-stevens.nl/research/papers/SBKAM17-SHAttered.pdf

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是SHA-1算法,什么是碰撞?
  • 研究过程
  • 安全建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档