PANews现场报道,12月7日,中科院数学物理学部王小云院士在“区块链技术与应用”科学与技术前沿论坛上演讲时表示,目前我们国家急需抢先制订物联网、车联网、区块链、国产操作系统等密码协议标准与技术规范,这些领域实事求是地讲,我们跟任何一个国家是站在同一个起跑线上,我不认为其它国家比我们国家更先进,但是如果谁抢先,在这些领域制定出密码算法的标准与协议,就是协议的标准,肯定相对来讲还是比较领先的。
区块链技术出来以后,从我们个人的观望到投资者的热情,到今天我们考虑它的技术创新,推动我们产业发展,我想这个过程有几年的时间。大家都知道,最近密码法已经出台了,密码是保障网络与信息安全的核心技术和基础支撑,所有的关键问题都是数学问题,这是毫无疑问的。密码领域比较特别,我对密码领域的理解就是基础数学、应用数学和技术应用是三个合并一体的,分不开的。
据官方信息,由中国科学院学部主办、中国信息通信研究院等单位联合支持的“区块链技术与应用”科学与技术前沿论坛于2019年12月7日、8日在深圳举办。中国科学院信息技术科学部郑志明院士、数学物理学部王小云院士等四位院士发表主题演讲,同时还有300余名来自政府和企业界的代表出席会议,围绕区块链与数字身份、监管科技、金融应用等话题展开讨论。
以下是演讲全文,由主办方审核:
王小云:我也非常高兴受院士的邀请,我是大会主席,但我最近因为太忙,没干这个工作。
尊敬的王市长、各位来宾:我今天的报告是从密码技术的角度来介绍一下区块链技术,这个报告我最近作了很多次,可能有一点点变化,但我还是想从底层技术层面介绍一下区块链的密码含义是在哪里。
首先我介绍一下密码学的重要性,对区块链技术发表一点个人感想,区块链技术出来以后,从我们个人的观望到投资者的热情,到今天我们考虑它的技术创新,推动我们产业发展,我想这个过程有几年的时间。大家都知道,最近密码法已经出台了,密码是保障网络与信息安全的核心技术和基础支撑,所有的关键问题都是数学问题,这是毫无疑问的。密码领域比较特别,我对密码领域的理解就是基础数学、应用数学和技术应用是三个合并一体的,分不开的。
大家也可以看出来,我们每一个技术的突破用了大量的基础数据的研究方法和工具,我们突破了以后,基本上行业遍地都用。大家看一下我们的计算机通信系统,我们互联网系统的主体系统的安全性都是用密码系统保证的,所以密码技术是通信系统和基础设施融合在一起的,是分不开的技术。
我想大家知道,美国的微软和IBM在80年代初期,它的密码团队是非常杰出的融合发展模式,我们国家我非常高兴,今天我们也到了融合发展的阶段。
今天我们所有的网络,包含计算机、手机、卫星、物联网,特别是物联网,应该是一个国家能够发展好新一代信息技术非常重要的环节,也使密码技术提到更高的环节。另外还有大数据,云计算等,现在我们的数据都上云了,但安全是怎样的,我想大家都比较清楚。
密码技术为什么这么重要,就是因为整个互联网和各种网络,我们的信息从产生到处理到传输,需要四个安全属性:机密性,就是加密算法,这个很简单。可认证性和不可抵赖性,这是数字签名算法。还有完整性,就是防数据篡改的Hash函数,Hash函数是区块链的起源性技术,也是密码学的基本工具,为什么说是一个基本工具,我举个例子,我们的电子签名对一个数据库进行签名,花100个小时签名才结束,它一个是慢,100个小时,还不安全。大家就问:我们的数字签名有什么用呢?这么慢、又不安全,怎么办呢?Hash函数,Hash函数对一个文件提炼出指纹就行了,它就可以把一百个小时变成一个小时,大家知道一百倍的提速,并且还是安全的,这就是区块链技术,大家不要把区块链技术想象得非常神秘。
Hash函数的电子签名技术就是标准的区块链技术,它是高效而安全的,它的一个基本的工具,今天我们的交易信息也可以达到这个效果,它是高效处理的,我们一秒钟可以十个G左右的处理速度,高效处理,又是安全的,防数据篡改的,当然我们同步的时候还有好多分布式系统,还有好多其它跟计算机系统融合在一起的发展模式。
密码学的发展有两大方向:第一个方向就是ENIGMA,1932年是数学方法,1939年是破译机,导致西欧的战场提前两到三年结束,1949年Shannon提出是数码学的图像图像,1948年Shannon有两篇论文。大家看这个公式可以看出来,一个密码系统把密钥破解了就完全破解了,求解密钥的难度,就是一个攻击者攻击这些明文密文,它没有任何的数学关系不要紧,对破解密钥没有任何影响。大家知道我们的传统密码里面,ENIGMA密码,我们的算法公开了,就意味着这个算法破解了。最早的密码破解就是情报人员拿到了图纸。
一个算法,1949年以前所有的密码,算法公开以后全都可以破解了,这个公式意味着我们的算法要公开的,因为大家知道,情报人员是可以拿到算法的,所以在算法公开的情况下不能破解密钥,这是数学难题的概念,虽然没有提出来,但数学难题的概念已经隐含了。
到了1973年1976年,美国国家安全局形成了较为系统的对称密码理论体系,他们宣布算法公开,密码破解难的,到1997年AES,DES是56的计算,大家我们我们的太空是57次计算,可以知道它的破解是高效的。
大家还知道,我们的比特币,我们挖12.5个比特币是特币是270次计算,远比单次破解的难度难,但是大家知道,10分钟我们会得到12.5个比特币,这是一个计算能力的提高对密码学的影响。AES128个比特币,就意味着全球的计算资源,上千万亿年拿不出来,做不了,这是新一代密码破解的安全难度。
对数学发展的研究最终发展到了密码分析的自动化,再进一步就是人工智能的介入,所以这个领域,所有的密码分析都可以转化为商用密码的特征。我们的密码学出来以后,一定要发展特别的体系,你的算法是否安全、系统是否安全,系统是否有漏洞,我们只能用自动化学习的方法来进行我们的商用密码的特征,这个领域我相信我们国家未来三到五年,这个领域可以发展起来。
还有一个领域是公钥密码学的发展,我们的计算机网络是一到多的,互联网时代一天一万个人进行安全通信,密钥通信,全是情报人员分布密钥。现在要对一万个人进行安全通信,一万个人的密钥是要生成的,现在密码学一秒钟可以同时跟很多人建立安全频道,跟每个人都可以修出一个安全的密钥通道,攻击者可以加入安全通信,但它拿不到我们的密钥,我给对方可以生成共同的加密密钥,这就是一到多的安全通信,我相信我们说一个网络就是安全通信,这个领域就是对数问题,计算速率,算法速率的问题,代数几何的问题,所以它涉及到很多领域的数学难题,这全是最难的数学问题。但是这些算法的研究当中,我们在分析算法安全性的时候,我们就要跟其它的数学领域结合,所以密码学是一个多学科交叉的领域,研究的一个是数学难题,尤其是交叉的是多个领域,不仅是在这个领域,在更多的领域。
比如说有自动化的、有控制的等等,基本上都有这些领域,也包含人工智能的搜索。密码应用推动多个基础数学问题研究取得突破,极大地推动密码产业的高速发展,在基础数学的领域,好多数学难题一千多年发展不起来,但是密码应用这些数学问题得到了很好的研究,并且作出了一些成果。
现在大家用了一些加密算法,SM3是我们国家的标准,也是RS的标准。
大家知道,我们的密码算法设计了以后,每个算法是安全的,这个可以做到,但不可以用单一的算法保证一个系统,所以所有的计算机网络通信系统要涵盖多算法,要实现四大功能,大多数都有四个安全属性,也就是需要三种密码算法,都有。我们要建立一个传输层的安全通信协议,就是SSL、TLS协议,TLS是SSL的升级版,它是达到安全可控的。有一个信息泄露事件,大家一定不要认为是SSL出问题了,这个协议是非常安全的,但是在实现过程中出现了问题,也就是算法安全、协议安全、实现安全是保证整个系统是安全运营的,是 这么一个概念,实现不安全永远是会导致非常可怕的攻击。整个密码领域,从算法的研究到协议的设计,到协议的运营是需要培养高水平的科技人才。网络层是保证路由器安全的IPsec协议,无线局域网是WEP协议,它是行业标准,不是密码学设计的,它出来以后很快被破解了,图灵奖获得者被破解了,现在的安全协议是安全的。手机通信是行业标准,是二级,不管是算法还是协议,很多漏洞,是各种攻击方法都出现了,用了相当于没用,看起来什么都有,但都是不安全的。所以说到了3GPP(3rd,Generation Partnership Project),就是支持3G、4G、5G安全通信,不管是3G、4G、5G,只有公开拿出来让大家研究的才是安全的,藏着的,到目前为止,事实证明没有一个是安全的。所以大家一定要注意,如果你认为你的协议是安全的,你不妨拿出来让大家公开分析,有漏洞不要紧,因为现在密码设计的能力非常强,很短的时间就可以把漏洞补上,逐渐变成安全,所以怕的就是大家说安全,又不公开,那问题比较严重,如果内部的人知道,内部的人可以做一定的攻击。
目前我们国家急需抢先制订物联网、车联网、区块链、国产操作系统等密码协议标准与技术规范,这些领域实事求是地讲,我们跟任何一个国家是站在同一个起跑线上,我不认为其它国家比我们国家更先进,但是如果谁抢先,在这些领域制定出密码算法的标准与协议,就是协议的标准,肯定相对来讲还是比较领先的。
这里说一下,因为梅宏院士是做软件研究的,我们的密码领域,算法协议设计出来以后,软件实现和硬件实现,硬件实现就是芯片实现,大家一定要注意,要做好抗攻击的芯片实现,这个领域说实话比较难,我们国家这方面的优秀人才不多,大家可以找一找,你要说你的芯片是抗攻击的,我可以看看你里面有没有这方面的人才,没有这方面的人才肯定是虚假的。为什么要抗特性的攻击,大家知道所有的密码算法和协议都基于数学难题,假定我们的软件实现有一个bug,数学难题是非常容易破解的数学问题,如果我们注入了一个错误,数学难题变成简单的数学问题,它需要抗特性的攻击密码芯片。十几年前我有一个观点,说有的密码芯片是最高级的,因为其它的芯片不需要研究抗特性攻击的能力,但是密码芯片不行,因为它就是要依靠各种各样的攻击,包含物理手段的攻击。
大家也可以看到,好多人说,密码就是很难用,我们用起来很难,大家不要担心,一秒钟几十G,SM3,我们设计的是2.17级,我看大家说一下,SM3比SHA同等条件下实现快10%,为什么这边是4.08,2.17,它是平台不一样造成的,所以不要认为它就是慢,它就是快,因为同等条件我们会评估的,我们会在相同条件下评估两个算法。如果同一个平台你实现了两个G,我就知道你实现的不对,肯定是有问题的。因为我们在设计的时候就控制住,同等条件下要比SHA快10%。我就给大家说这么一个概念,快速实现现在达到10G以上,大家不要担心影响你的安全性。
公钥密码一秒钟几千次,大家也不要担心,因为公钥密码传输的是密钥,密钥使用一年半年十年,按我们现在计算机破解的能力上千万亿年破不了。所以全球的计算机人员一定要注意,密钥传输不需要老传输,就是开始传输一下就可以了,可以用很多年。
我再来说一下软件实现,软件实现就是白盒安全实现,现在一个领域发展起来了,它不可能做到理论安全,只能做到实践安全,比如别人研究的白盒实现三个月破了,我们做的五年破不了,五年以后升级就可以了,是这么一个概念,我们要达到实际安全。
密码芯片一定要抗各种各样的攻击,这里不多说了。
第二个我想讲一下密码Hash函数,就是区块链的起源性技术。为什么要有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万,但它没钱,从银行贷款,传统的就是银行要检测供应商的供应能力和信用能力,然后要检查采购方的支付能力,可能半年才能放贷。但是区块链链上一检查,大家知道,我们任何一个信息上千万年以上才能篡改,篡改不了。所以在链上一检查就可以放贷了,非常高效。
这是疫苗,打了疫苗以后出问题,你可以看零售商、中间商、原材料商、生产商,每个环节都很清楚,非常便捷。
我的报告结束了,谢谢大家!