12 月 7 日~8 日,由中国科学院学部主办、中国信息通信研究院等单位联合支持的“区块链技术与应用”科学与技术前沿论坛在深圳举办。中国科学院信息技术科学部郑志明院士、数学物理学部王小云院士等四位院士发表主题演讲,同时还有 300 余名来自政府和企业界的代表出席会议,围绕区块链与数字身份、监管科技、金融应用等话题展开讨论。
中国科学院院士、国际密码协会会士王小云在题为“Hash 函数与区块链技术”的开幕报告中为大家介绍了区块链的起源——密码学,内容涵盖了密码学的重要性、密码学中的哈希函数、以及区块链技术运用到的密码学原理和区块链的应用领域。 王院士对我国的密码学充满信心,“在密码协议方面,我们国家和其他国家都是处在同一个起跑线上”,同时她也指出了我国密码学未来的发展方向,“哪个国家先制定标准,就掌握了先机。我国亟需抢先制定物联网、车联网、区块链、国产操作系统等密码协议标准与技术规范。”
以下为演讲全文(InfoQ 在不改变原意的基础上略有删减,经主办方审核):
我今天的报告是从密码技术的角度来介绍一下区块链技术,从底层技术层面介绍一下区块链的密码含义在哪里。
密码学的重要性
首先介绍一下密码学的重要性,对区块链技术发表一点个人感想,区块链技术出来以后,从我们个人的观望到投资者的热情,到今天我们考虑它的技术创新,推动我们产业发展,这个过程有几年的时间。大家都知道,最近密码法已经出台了,密码是保障网络与信息安全的核心技术和基础支撑,所有的关键问题都是数学问题,这是毫无疑问的。密码领域比较特别,我对密码领域的理解就是基础数学、应用数学和技术应用是三个合为一体的、无法分开的。
我们每一个技术的突破都用了大量的基础数据的研究方法和工具,突破以后,基本上行业遍地都用。大家看一下我们的计算机通信系统,我们互联网系统的主体系统的安全性都是用密码系统保证的,所以密码技术是通信系统和基础设施融合在一起的,二者是分不开的。
在 80 年代初期,美国微软和 IBM 的密码团队是非常杰出的融合发展模式,我非常高兴,今天我们也到了融合发展的阶段。
今天我们所有的网络,包含计算机、手机、卫星、物联网,特别是物联网,应该是一个国家能够发展好新一代信息技术非常重要的环节,也是让密码技术提到更高水平的环节。另外还有大数据、云计算等,现在我们的数据都上云了,但安全是怎样的,我想大家都比较清楚。
密码技术为什么这么重要?因为整个互联网和各种网络,信息从产生到处理到传输,需要四个安全属性:机密性,就是加密算;可认证性和不可抵赖性,这是数字签名算法;完整性,就是防数据篡改的 Hash 函数。Hash 函数是区块链的起源性技术,也是密码学的基本工具。为什么说是一个基本工具,我举个例子,我们的电子签名对一个数据库进行签名,花 100 个小时签名才结束,首先是慢,而且不安全。那大家就会问:数字签名有什么用呢?这么慢、又不安全,怎么办?解决办法就是 Hash 函数,Hash 函数对一个文件提炼出指纹就行了,它就可以把 100 个小时缩短成 1 个小时。提速 100 倍,并且还是安全的,这就是区块链技术,所以大家不要把区块链技术想象得非常神秘。
Hash 函数的电子签名技术就是标准的区块链技术,它是高效而安全的,它的一个基本工具,今天的交易信息也可以达到这个效果,它是高效处理的,我们一秒钟可以 10G 左右的处理速度;同时又是安全的,可以防数据篡改;当然我们同步的还有好多分布式系统,还有好多其它跟计算机系统融合在一起的发展模式。
密码学的发展
密码学的发展有两大方向:第一个方向是 ENIGMA,1932 年是数学方法,1939 年是破译机,导致西欧战场提前两到三年结束,1949 年 Shannon 提出数码学的图像。对于 ENIGMA 密码,如果算法公开了,就意味着这个算法破解了,最早的密码破解就是情报人员拿到了图纸。所以在算法公开的情况下不能破解密钥,这是数学难题的概念,虽然没有提出来,但数学难题的概念已经隐含了。
到了 1973 年~1976 年,美国国家安全局形成了较为系统的对称密码理论体系,他们宣布即使算法公开,密码也很难破解。
到 1997 年 AES、DES 是 56 次计算,大家我们我们的太空是 57 次计算,可以知道它的破解是高效的。而到了比特币,我们挖 12.5 个比特币需要 270 次计算,远比单次破解的难度难,但是大家知道,10 分钟我们就能得到 12.5 个比特币,这是计算能力的提高对密码学的影响。AES 128 个比特币,就意味着如果我们不用上全球的计算资源,不花费上千万亿年,就做不了,这是新一代密码破解的安全难度。
对数学发展的研究最终发展到了密码分析的自动化,再进一步就是人工智能的介入,所以这个领域,所有的密码分析都可以转化为商用密码的特征。密码学出来以后,一定要发展特别的体系,你的算法是否安全、系统是否安全,系统是否有漏洞,我们只能用自动化学习的方法来进行商用密码的特征,这个领域我相信我们国家未来三到五年可以发展起来。
还有一个领域是公钥密码学的发展。计算机网络是一到多的,互联网时代可能一天会有一万个人进行安全通信,一万个人的密钥要生成,现在密码学一秒钟可以同时跟很多人建立安全频道,跟每个人都可以修出一个安全的密钥通道,攻击者可以加入安全通信,但它拿不到我们的密钥,我可以给对方生成共同的加密密钥,这就是一到多的安全通信。这个领域是对数问题、计算速率、算法速率的问题、代数几何的问题,所以它涉及到很多领域的数学难题,而且全是最难的数学问题。我们在分析算法安全性的时候,需要跟其它的数学领域结合,所以密码学是一个多学科交叉的领域。密码应用推动了多个基础数学问题研究取得突破,极大地推动密码产业的高速发展,在基础数学的领域,好多数学难题一千多年发展不起来,但是密码应用使这些数学问题得到了很好的研究,并且作出了一些成果。
密码通信协议
密码算法设计出来以后,可以做到每个算法是安全的,但无法用单一的算法保证一个系统,所以所有的计算机网络通信系统需要涵盖多算法,大多数都有四个安全属性,也就是需要三种密码算法。我们要建立一个传输层的安全通信协议,就是 SSL、TLS 协议,TLS 是 SSL 的升级版。
算法安全、协议安全、实现安全才能保证整个系统是安全的,实现不安全会导致非常可怕的攻击。整个密码领域,从算法的研究到协议的设计,到协议的运营都需要培养高水平的科技人才。
手机通信行业标准推出以后,不管是算法还是协议其实都有很多漏洞,各种攻击方法都出现了,用了相当于没用,其实都不安全。到了 3GPP(3rd,Generation Partnership Project),就是支持 3G、4G、5G 安全通信。不管是 3G、4G、5G,只有公开拿出来让大家研究的才是安全的;藏着的,到目前为止,事实证明没有一个是安全的。所以大家一定要注意,如果你认为你的协议是安全的,你不妨拿出来让大家公开分析,有漏洞不要紧,因为现在密码设计的能力非常强,很短时间就可以把漏洞补上,逐渐变得安全。怕的就是大家说安全,又不公开,那问题比较严重,如果内部的人知道,内部的人可以做一定的攻击。
目前我们国家急需抢先制订物联网、车联网、区块链、国产操作系统等密码协议标准与技术规范。实事求是地讲,中国在这些领域跟任何一个国家都站在同一个起跑线上,我不认为其它国家比我们国家更先进。但是如果谁抢先在这些领域制定出密码算法的标准与协议,就是协议的标准,肯定相对来讲还是比较领先的。
区块链技术起源
接下来我想讲讲密码 Hash 函数,就是区块链的起源性技术。为什么要有 Hash 函数的概念?1953 年,IBM 在一次历史性讨论中提出,我们对数据库的文件进行检索的时候,如果每个文件带一个电子指纹,相当于人的指纹一样,搜索的时候搜索指纹就可以搜索到文件了。1981 年,为避免电子签名标准 RSA 等存在伪造攻击,由 Davis 和 Price 提出了密码 Hash 函数的概念,就是为了防止数据篡改。如果数据被篡改了,电子指纹一定会发生变化,就可以发现数据篡改问题,保证电子签名是安全的。我们对一份文件进行签名,只要对它的指纹进行签名就可以。我们的指纹有多长呢,128、160、192、256、384 或 512 比特。我们刚才说的,对一个数据库签名需要 100 个小时,现在一个小时就签完了,还安全,何乐而不为。这是值得推广的技术,比如可以放在交易后台的管理上,高效且安全。
区块链主要是实现防数据篡改的功能。我们所有的密码系统都是区块链技术,我们现在的 Blockchain,最早是 Hash 函数迭代过程中的一个专业术语,它是从 Hash 函数提出来就有的概念,这其实是一个老概念了。
当前新一代的 Hash 函数 ISO、IEC 标准,包括美国设计的的 SHA-2,SHA-3,我们国家的 SM3。目前我们国家的区块链技术就是 SM3,国产化的区块链已经使用了 SHA-3,因为这是唯一的标准,目前还没有其它的标准产生。
从 1979 年密码学家 Ralph Merkle 提出 Merkle-Damgard 结构,到 2009 年中本聪提出比特币,区块链已经经过了 30 年的发展,从最早的密码学结构逐渐成熟,应用从金融领域逐渐扩展到供应链金融、供应链溯源等多个领域,解决了多个行业痛点,为我国加速普惠金融、加强供应链防伪溯源提供了新动力。
评论 1 条评论