zoukankan      html  css  js  c++  java
  • Google研究人员宣布完成全球首例SHA-1哈希碰撞!

    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文件。

     

    1487904540368.jpg (24.1 KB, 下载次数: 0)

    下载附件  保存到相册

    2017-2-24 12:18 上传

     

    根据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

    转载请注明出处:云态中国


  • 相关阅读:
    idea创建maven web项目需要注意的一些细节
    idea中默认maven配置
    怎么写开发用例?
    css样式 给div水平垂直居中
    elementUI日期选择器里禁用选择未来时间
    常用的正则表达式
    Unknown custom element: <el-table-column>
    几个简单的JavaScript字符串方法
    新的vue-cli默认禁止了commonjs语法,可以添加babel解决
    解决webstorm左下角没有vue的npm项目启动快捷方式
  • 原文地址:https://www.cnblogs.com/cnhacker/p/6984473.html
Copyright © 2011-2022 走看看