量子计算与区块链是当下两个热门技术,二者因为密码学技术联系在一起。区块链使用密码学技术保障系统安全,而量子计算对传统的密码学技术提出了巨大的挑战,进而威胁到区块链系统的安全。
目前对量子计算的认识有两个极端,一种观点是量子计算无所不能,第二种观点是量子计算还很遥远。量子计算可以做哪些事情?对传统密码体制有哪些安全威胁?
对这些问题的把握可以从两个方面入手:
(1)区块链系统采用的密码学技术;
(2)量子计算对传统密码体制的威胁;
区块链是一个去中心化的分布式记账系统,采用密码学技术保护账本不被篡改和实现节点共识。我们以OKChain(OK公链)为例,区块链系统中的主要密码学应用包括:
1、哈希函数用于PoW计算。哈希函数为系统提供“单向性”:正向计算很容易,逆向求解很困难。在传统的PoW中,找到一个符合条件的原象(挖矿)需要一定的算力保证,但验证一个解是容易的。
2、签名与多签技术。经典的签名方案有EC-Schnorr和ECDSA,主要基于ECC上的CDH问题设计,即假设CDH问题在数学上是困难的,则密码体制是安全的。OKChain采用了更加高效的BLS多签方案。
3、可验证随机函数(VRF)。基于VRF,OKChain系统中采用了可验证随机洗牌函数(VRSF),用于共识决定出块者优先级序列。
量子计算突破了传统计算的极限,在求解一些重要密码问题上获得了指数加速,对现有密码体制的安全性提出了极大的挑战。但量子计算不是万能的,也不是对所有问题都可以有多项式时间算法。
目前常见的量子算法主要基于Simon算法、Shor算法和Grover算法。
1、Simon算法用于求解周期计算(finding period)问题。若一个函数为周期函数,则Simon算法可以在多项式时间内计算得到该周期。
2、Shor算法用于求解整数分解(integer factoring)问题,该算法为多项式时间算法。由于DH问题与整数分解问题在多项式时间内可以相互转化,所以DH体制以及ECC上的DH体制在多项式时间内都可以在量子机上求解。
3、Grover算法可以在一个无序的数据库中查找符合条件的解(即穷搜),相较于经典遍历穷搜可以获得平方加速。
现有很多签名方案如RSA和ECDSA的安全假设是CDH(computational Diffie–Hellman)问题是困难的。目前对量子攻击的担心主要来源于Shor算法对RSA、DH等密码问题的求解,进而威胁到包括BLS在内的大多数签名方案的安全。
针对Hash函数等对称密码体制,量子计算目前没有有效的攻击方法。抗量子密码体制研究集中在公钥密钥和数字签名方案领域。
由于量子计算对传统密码体制的威胁,抗量子(后量子)密码体制逐渐被提出并标准化。现阶段,所谓的密码体制抗量子一般包括两个方面:
(1)该加密体制可以规约到一个困难数学问题上;
(2)该困难问题是NP-hard的。
2012年,美国国家标准与技术研究院(NIST)启动了后量子密码的标准化并于2016年开始向全世界公开征集后量子算法。截止到2017年11月30日,NIST共收到各种后量子时代公钥密码方案82项。
目前主要有四类算法:
1、基于格困难问题的密码体制。该类密码算法基于格上的最短向量(SVP)等困难问题设计,如NTRU密码。
2、基于多变元多项式的密码体制。该类算法基于多变元方程求解的困难性设计,如Rainbow数字签名方案。
3、基于哈希函数的数字签名方案。该类密码基于Hash函数的安全性设计,如Merkle签名方案。
4、基于编码问题的密码体制。该类密码基于纠错码设计,随机线性纠错码求解问题已经被证明是NP-hard的。代表性密码如McEliece密码体制。
鉴于量子计算带来的安全隐患,已经有团队开展抗量子的区块链体制研究,如ZK-STARK系统。ZK-STARK系统采用了基于Hash函数的数字签名方案来替代基于CDH假设的数字签名方案,从而可以抵抗量子攻击。
OK区块链工程院在抗量子计算和可证明安全等领域已经开展了基础研究,将为用户提供安全、高效的区块链解决方案。