密码学家王小云:中国亟需抢先制订区块链等领域密码协议标准规范_比特币

时间:2019-12-09 11:01:00 作者:IT财经网

国际密码学界知名专家王小云在深圳区块链技术与应用论坛表示,中国亟需抢先制订物联网、车联网、区块链、国产操作系统等密码协议标准与技术规范。

原文标题:《「中国诺贝尔奖」首位女得主王小云:哈希函数是区块链的起源性技术,区块链已扩展到供应链金融等多领域》


作者:火星财经

12 月 7 日,由中国科学院学部主办、中国信息通信研究院等单位联合支持的「区块链技术与应用」科学与技术前沿论坛在深圳开幕。中国科学院信息技术科学部郑志明院士、数学物理学部王小云院士等四位院士发表主题演讲,同时还有 300 余名来自政府和企业界的代表出席会议,围绕区块链与数字身份、监管科技、金融应用等话题展开讨论。

密码学家王小云:中国亟需抢先制订区块链等领域密码协议标准规范

论坛现场,王小云院士从密码技术的角度介绍了区块链技术,阐述了密码学的重要性以及密码学的发展现状。她表示,密码是保障网络与信息安全的核心技术和基础支撑,区块链技术并不神秘,哈希函数、数字签名算法、加密算法是密码学三类基础算法,其中哈希函数是起源性技术。

她进一步解释称,哈希函数可以抵抗基于数据篡改的所有攻击,比如原像攻击、第二原像攻击等,可用于多类信息系统,数字证书、网上银行、电子支付、网络安全协议、数字货币、比特币、区块链、可证明安全密码等,「blockchain」其实是从哈希函数中提取的一个专业概念。

王小云现任清华大学高等研究院杨振宁讲座教授,2017 年当选中国科学院院士,2019 年当选国际密码协会会士 (IACR Fellow),同年获得未来科学大奖,该奖项被誉为「中国诺贝尔奖」,王小云为首位获奖的女科学家。

公开报道显示,MD5 和 SHA-1 曾是最先进的国际通用密码,被专家认为需要运算 100 万年才有可能破解。2004 年和 2005 年,这两大「固若金汤」的算法被王小云先后破解,在国际密码学界引发强烈「地震」。

以下为演讲全文:

密码技术为什么重要?

尊敬的王市长、各位来宾,我今天的报告是从密码技术的角度来介绍一下区块链技术,这个报告我最近作了很多次,可能有一点点变化,但我还是想从底层技术层面介绍一下区块链的密码含义是在哪里。

首先我介绍一下密码学的重要性,对区块链技术发表一点个人感想,区块链技术出来以后,从我们个人的观望到投资者的热情,到今天我们考虑它的技术创新,推动我们产业发展,我想这个过程有几年的时间。最近密码法已经出台了,密码是保障网络与信息安全的核心技术和基础支撑,所有的关键问题都是数学问题,这是毫无疑问的。密码领域比较特别,我对密码领域的理解就是基础数学、应用数学和技术应用是三个合并一体的,分不开的。

我们每一个技术的突破用了大量的基础数据的研究方法和工具,我们突破了以后,基本上行业遍地都用。计算机通信系统,互联网系统的主体系统的安全性都是用密码系统保证的,所以密码技术是通信系统和基础设施融合在一起的,是分不开的技术。

美国的微软和 IBM 在 80 年代初期,它的密码团队是非常杰出的融合发展模式,我们国家我非常高兴,今天我们也到了融合发展的阶段。

今天我们所有的网络,包含计算机、手机、卫星、物联网,特别是物联网,应该是一个国家能够发展好新一代信息技术非常重要的环节,也使密码技术提到更高的环节。另外还有大数据,云计算等,现在我们的数据都上云了,但安全是怎样的,我想大家都比较清楚。

密码技术为什么这么重要?就是因为整个互联网和各种网络,我们的信息从产生到处理到传输,需要四个安全属性:机密性,就是加密算法,这个很简单。

可认证性和不可抵赖性,这是数字签名算法;完整性,就是防数据篡改的 Hash 函数,Hash 函数是区块链的起源性技术,也是密码学的基本工具。为什么说是一个基本工具?我举个例子,我们的电子签名对一个数据库进行签名,花 100 个小时签名才结束,它一个是慢,100 个小时,还不安全。大家就问:我们的数字签名有什么用呢?这么慢、又不安全,怎么办呢?Hash 函数,Hash 函数对一个文件提炼出指纹就行了,它就可以把一百个小时变成一个小时,大家知道一百倍的提速,并且还是安全的,这就是区块链技术,大家不要把区块链技术想象得非常神秘。

Hash 函数的电子签名技术就是标准的区块链技术,它是高效而安全的。

密码学的两大发展方向

密码学的发展有两大方向:第一个方向就是 ENIGMA。1932 年是数学方法,1939 年是破译机,破译机的出现导致二战西欧战场提前两到三年结束,1949 年香农(Shannon)提出是数码学的图像。

一个密码系统把密钥破解了就完全破解了,求解密钥的难度,就是一个攻击者攻击这些明文密文,它没有任何的数学关系不要紧,对破解密钥没有任何影响。传统密码里面,如 ENIGMA 密码,算法公开了,就意味着这个算法破解了。最早的密码破解就是情报人员拿到了图纸。

到了 1973 年 1976 年,美国国家安全局形成了较为系统的对称密码理论体系,宣布算法公开。对称加密 AES,DES 算法涉及 56 次计算(即秘钥长度为 56 位,下同)。

比特币 10 分钟出一个块,奖励 12.5 个比特币,涉及 270 次计算,远比单次破解的难度难。

对数学发展的研究最终发展到了密码分析的自动化,再进一步就是人工智能的介入,所以这个领域,所有的密码分析都可以转化为商用密码的特征。

还有一个领域是公钥密码学的发展,我们的计算机网络是一到多的,互联网时代一天一万个人进行安全通信,密钥通信,全是情报人员分布密钥。现在要对一万个人进行安全通信,一万个人的密钥是要生成的,现在密码学一秒钟可以同时跟很多人建立安全频道,跟每个人都可以修出一个安全的密钥通道,攻击者可以加入安全通信,但它拿不到我们的密钥,我给对方可以生成共同的加密密钥,这就是一到多的安全通信。

网络安全通信涉及对数问题,计算速率,算法速率,代数几何,关系到到很多领域的数学难题。我们在分析算法安全性的时候,我们就要跟其它的数学领域结合,所以密码学是一个多学科交叉的领域,研究的一个是数学难题,尤其是交叉的是多个领域,不仅是在这个领域,在更多的领域。

SM3 是我们国家的标准加密算法,也是 RS 的标准。密码算法设计了以后,保证每个算法是安全可以做到,但不可以用单一的算法保证一个系统——所有的计算机网络通信系统要涵盖多算法,要实现四大功能,大多数都有四个安全属性,也就是需要三种密码算法。

我们要建立一个传输层的安全通信协议,就是 SSL、TLS 协议,TLS 是 SSL 的升级版,它是达到安全可控的。出现信息泄露事件,大家一定不要认为是 SSL 出问题了,这个协议是非常安全的,原因在于,在实现过程中出现了问题。算法安全、协议安全、实现安全是保证整个系统是安全运营的,「实现不安全」永远是会导致非常可怕的攻击。

整个密码领域,从算法的研究到协议的设计,到协议的运营是需要培养高水平的科技人才。网络层是保证路由器安全的 IPsec 协议,无线局域网是 WEP 协议,它是行业标准,不是密码学设计的,它出来以后很快被破解了,图灵奖获得者被破解了,现在的安全协议是安全的。手机通信是行业标准,是二级,不管是算法还是协议,很多漏洞,是各种攻击方法都出现了,用了相当于没用,看起来什么都有,但都是不安全的。所以说到了 3GPP (3rd,Generation Partnership Project),就是支持 3G、4G、5G 安全通信,不管是 3G、4G、5G,只有公开拿出来让大家研究的才是安全的,藏着的,到目前为止,事实证明没有一个是安全的。所以大家一定要注意,如果你认为你的协议是安全的,你不妨拿出来让大家公开分析,有漏洞不要紧,因为现在密码设计的能力非常强,很短的时间就可以把漏洞补上,逐渐变成安全,所以怕的就是大家说安全,又不公开,那问题比较严重,如果内部的人知道,内部的人可以做一定的攻击。

国家层面急需制定密码协议标准与规范

目前我们国家急需抢先制订物联网、车联网、区块链、国产操作系统等密码协议标准与技术规范

,这些领域实事求是地讲,我们跟任何一个国家是站在同一个起跑线上,我不认为其它国家比我们国家更先进,但是如果谁抢先,在这些领域制定出密码算法的标准与协议,就是协议的标准,肯定相对来讲还是比较领先的。

在密码领域,算法协议设计出来以后,要兼顾软件实现和硬件实现。

硬件实现就是芯片实现。做好抗攻击的芯片实现,这个领域说实话比较难,我们国家这方面的优秀人才不多。

为什么要抗特性的攻击?所有的密码算法和协议都基于数学难题,假定我们的软件实现有一个 bug,数学难题是非常容易破解的数学问题,如果我们注入了一个错误,数学难题变成简单的数学问题,它需要抗特性的攻击密码芯片。十几年前我有一个观点,说有的密码芯片是最高级的,因为其它的芯片不需要研究抗特性攻击的能力,但是密码芯片不行,因为它就是要依靠各种各样的攻击,包含物理手段的攻击。

我再来说一下软件实现,软件实现就是白盒安全实现,现在一个领域发展起来了,它不可能做到理论安全,只能做到实践安全,比如别人研究的白盒实现三个月破了,我们做的五年破不了,五年以后升级就可以了,是这么一个概念,我们要达到实际安全。

密码芯片一定要抗各种各样的攻击,这里不多说了。

区块链与密码学

我想讲一下密码 Hash 函数,就是区块链的起源性技术。1953 年,IBM 的一次历史性讨论,对数据库的文件进行检索,每个文件带一个电子指纹,相当于人的指纹一样,搜索的时候搜索指纹就把文件搜索起来了,非常简单。1981 年,为避免电子签名标准 RSA 等存在的伪造攻击,由 Davis 和 Price 提出密码 Hash 函数的概念,就是防止数据篡改,你的数据被篡改了,你的电子指纹一定要发生变化,就发现被篡改了,保证电子签名是安全的。我们对于一份文件进行签名,需要对它的指纹进行签名就行了。我们的指纹是多长呢?128、160、192、256、384 或 512 比特。这是非常高效的,采用这种方式,对一个数据库签名一百小时,现在一个小时就签完了,还安全,何乐而不为。

如果我们这个技术放在交易后台的管理,这么高效安全的技术,何乐而不为呢,所以是值得推广的一个技术。

大家知道,区块链主要是实现防数据篡改的功能,目前防数据篡改只有两三种方法,没有任何其它的数据篡改的技术,只有三种技术:第一种技术就是攻击者同时得到一个合同,100 万或 2000 万的合同电子指纹是一样的,它的签名一定是一样的。而 100 万和 2000 万哪个是真的哪个是假的,你不知道,我说的是这种攻击。256 比特的电子指纹,全球计算资源上千万亿年不可能找到两个文件电子指纹是相同的,这个大家不要担心。

第二种攻击是比特币,大家一定要注意,你在学比特币,你看这张片子就行了,其它的都不要看,比特币就来了,只要会原像攻击就会比特币了。原像攻击是怎样的呢,给出一个电子指纹外,你找到一个原像 M,M 的电子指纹就是 p、y,口令就行了,如果我的计算机存放的是 Y,也就是动态的,我的电子指纹 Y,口令猜出来的概率是多少呢?假如这个口令是 256 比特电子指纹,上千万年是不可能成功实施原像攻击的。但是这个 y 如果只规定 70 比特,对一个 70 比特的 Y,我找一个 M,只有 r 的 70 次计算,这是比特币,也就是说我找一个 Y,对应着 70 个比特的 0,或者 1 都无所谓,Y 是 70 比特,y 的 70 次计算,全球是十分钟就可以找到这个原像,我相信不可能所有人都在找比特币,只有少数的在找比特币,十分钟就可以找到这个 M,这个 M 就是比特币,比特币就产生了。

第二原像攻击,攻击者找到假的消息 M2 替换合法消息 M1,但是替换的前提条件不是电子指纹,因为现在都是数据库,在替换的情况下,必须要跟电子指纹相同才能合法应用,所以不是想替换就能替换,这时候也是破不了的。

Hash 函数我跟大家说,我们的密码算法如何能够证明有数学难题,必须有可证明安全的技术,就是知识证明,我用知识证明证明这个密码算法是安全的,在证明的过程中完成了加密和签名功能,需要交互 128 次 256 次,按照今天的安全长度,最后大家都不干了,那怎么办,很不有效。用 Hash 函数,使用了 Hash 函数以后就比较好了,一次性就可以完成证明,所以这是 Hash 函数的概念,知识证明。

既然我们有高效的证明方法,有的密码系统都要按照可证明安全,必须是用 Hash 函数,所有的密码技术都是区块链技术,因为必须是交互一百多次才能共,使用了 Hash 函数一次两次三次四次五次,一般不超过五六次就完成了。所以我们所有的密码系统都是区块链技术,当时区块链放在哪里呢?是 Hash 函数的一个变量叫 Blockchain,后来就是我们现在的 Blockchain,最早是 Hash 函数迭代过程中的一个专业术语,它的从 Hash 函数提出来就有的概念,大家记住这是一个老概念。

现在我们好多密码都离不开 Hash 函数。这就是 Hash 函数,我在 1995 年到 1996 年开始做 Hash 函数,大家可以看出来,1995 年之前主要的 Hash 函数算法除了 160 没有被破解以外,那五个都是我们首次给出碰撞攻击,破解以后,当时 SHA 是 2005 年提出来的,它是后补的,它只有 60 个比特的指纹,SHA 补了 265、384、512 比特的指纹,SHA 就是破解以后新设立的标准。

MD5 破解以后,发生了一个事件,伪造了一个数字证书,通过了浏览器的认证,这是 2009 年十大黑客技术之一,攻击架构是我提出来的,毫无疑问,整个攻击架构是我提供的。2010 年这个技术就到了一个火焰病毒,火焰病毒是目前为止认为最为复杂的一个网络病毒。

这是新一代的 Hash 函数 ISO、IEC 标准。美国设计的的 SHA-2,SHA-3,我们国家的 SM3,目前我们国家的区块链技术就是 SM3 了,国产化的区块链已经使用了 SHA-3,因为这是唯一的标准,还没有其它的标准产生。

区块链技术起源

最后说一下区块链技术起源,大家知道,Hash 函数是任意的长度压缩成一个定长,我们没有想要的数学函数满足要求,所以密码学家 Ralph Merkle 在博士论文中首次描述 Merkle-Damgard 结构,第一次压缩 M1、M2,把所有的数据分块压缩,这是比特币的结构,也是区块链的早期数据结构。

中本聪提出的比特币,找一个原像就是比特币,很容易。这就是比特币的区块链结构,这就是区块链结构,横着的就是这两条,只是 M 的长度有所变化,因为压缩的过程是自由组合的,可长可短,M 一定长,把好多 M 组合在一起,就是比较大的 M,所以可以灵活搭配,横的就是那个链,这里面就是 Hash 函数的压缩过程,这里面就是真正的 Hash 函数,F 就是 MD5,正向的运算过程。这就是区块链的数据结构。

比特币的系统运行就是交易,交易结构是怎样的,挖出 12.5 个比特币就是一个交易,求出一个原像就是一个交易,我拿比特币买了一件衣服是一个交易,我拿比特币买了一些食品是一个交易,我有这个交易以后要全球广播,广播以后要在平台上广播,广播完了以后,大家同步把我的交易信息放在 M 里面。大家一定要注意,这是交易信息进行压缩,最后一步才是我搜的,M2 一块搜,前面都是全球一定时间内的交易信息,把交易信息都放在这里面,有了交易新的再放进来,再搜出一个电子指纹,等于 70 个 0,这等于新的比特币就产生了,所以方法非常简洁。最后验证,研发合法性以后再进行挖矿,基本上这个过程。这个「?」就是比特币。

分布式系统得到了很好的利用,我们要进行共识协议,所有的数据达成一致,使用分布式环境下用户的数据达成一致,上世纪 80 年代有一个拜占庭共识协议,是分布式计算研究领域的重要方向,为什么区块链能解决这个技术,所有的密码算法,只有 Hash 函数有三个属性,其它的算法属性很少,并且想来就来,想走就走,非常灵活,所以为什么去中心化,它没有密钥,但有了密钥就可以去中心化。

它的一致性即所有的记录是一样的,就是分布式系统,我们的区块链增长速度要稳定,大家知道一个链,一个币同时三个人挖出来和六个人挖出来谁是合法的呢?你挖完以后再挖第二个链第三个链,谁先挖到第六个链谁是合法的,所以必须是先挖六个链。区块链要抵抗各种攻击,我们 2018 年有两篇区块链的论文,山东大学有一篇,就是在一个小时十分钟的延迟后,挖一个比特币的延迟是安全的,目前有三类区块链,一个是逆向的,正向的就是压缩的过程,一秒钟可以 10G,谁的权重大,它就是建链的概率高。第二就是分布式系统的拜占廷协议,数字签名本身就是区块链技术。

目前我们国家有一个供应链金融,有一个供应商,有一个采购商,采购商要采购一批货物,要支付 200 万,但它没钱,从银行贷款,传统的就是银行要检测供应商的供应能力和信用能力,然后要检查采购方的支付能力,可能半年才能放贷。但是区块链链上一检查,大家知道,我们任何一个信息上千万年以上才能篡改,篡改不了。所以在链上一检查就可以放贷了,非常高效。

这是疫苗,打了疫苗以后出问题,你可以看零售商、中间商、原材料商、生产商,每个环节都很清楚,非常便捷。

我的报告结束了,谢谢大家!

来源链接:mp.weixin.qq.com

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。