区块链密码学如何对抗量子计算攻击?
当前,区块链和分布式账本技术(DLT)已有了长足发展并广泛应用与多种场景中,原因在于其提供透明性,冗余性和问责性的能力。就区块链而言,此类特征是通过公钥加密和哈希函数提供的。但是,随着量子计算的飞速发展,基于Grover和Shor(格罗弗和舒尔)算法对公钥密码学和散列函数构成了重要威胁,迫使我们重新设计具有量子抗性的区块链密码系统,以承受潜在的量子攻击。
基于此,我们需要研究后量子密码系统的最新技术,以及如何将其应用于区块链和DLT,以及后量子时代区块链系统及其面临的主要挑战。本章节主要介绍了当前的区块链密码学技术特征,对比分析了公钥系统及散列函数应对量子攻击的安全性能,探讨了后量子区块链计划和后量子区块链方案的理想特征。
区块链能够提供安全的通信,数据隐私,弹性和透明度,基于哈希算法和块链数据结构组成了一个分布式账本,允许在灵信任环境下的对等多方之间共享信息。区块链系统的用户通过公钥/非对称加密技术和哈希函数进行安全交互,这对于用户的身份认证和安全交易至关重要。
如今,随着量子计算机的快速发展,量子信息技术正对公钥密码系统和哈希函数构成了重要威胁。
对于公钥密码系统,量子攻击会影响最受欢迎的公钥算法,包括RSA(Rivest,Shamir,Adleman),ECDSA(椭圆曲线数字签名算法),ECDH(椭圆曲线Diffie-Hellman),或DSA(数字签名算法)等,运用Shor算法可在多项式时间内打破。
另外,量子计算机可以利用Grover算法来加速哈希的生成,从而重新创建整个区块链;同时,Grover算法可用来检测哈希冲突,在替换区块链上的块数据结构的同时,保留其完整性。
2.1 区块链的公钥安全
我们一般常用安全位级别,来评估公钥密码系统抵抗经典计算攻击的强度。此级别定义为经典计算机执行暴力攻击所需的工作量。表1列出了一些最通用的对称和非对称密码系统的安全级别。
尽管当前还没有出现非常强大的量子计算机,但在未来的20年中,量子计算机将能够轻易破解当前强大的公钥密码系统。实际上,诸如NSA之类的组织已经警告了量子计算对IT产品的影响,并建议提高某些密码套件的ECC(椭圆曲线密码学)安全级别。
表2列出了受量子威胁影响的最相关的公钥密码系统及其他相关密码系统的主要特征,这些特征将受到与Shor和Grover算法有关的量子攻击的破坏或严重影响。
2.2散列函数安全
与公钥密码系统相反,传统的哈希函数被认为能够抵抗量子攻击,因为开发用于NP难题的量子算法似乎不太可能。尽管学者们最近提出了新的哈希函数来抵抗量子攻击,但通常建议增加传统哈希函数的输出大小。该建议与量子攻击有关,通过Grover算法以二次因子来加速蛮力攻击。
2.3后量子区块链计划
当前已有不少项目开展了量子后区块链计划的相关研究,包括NIST等。比特币后量子是一个主要的实验分支,它使用量子后数字签名方案。另一个是以太坊3.0,它计划应用包括诸如zk-STARKs(简洁化的全透明零知识证明)之类的抗量子组件。其他区块链平台,例如Abelian ,则建议使用基于晶格的后量子密码系统来防止量子攻击,而某些区块链(例如Corda)正在尝试使用SPHINCS之类的后量子算法。
2.4区块链后量子方案的理想特征
为了提高效率,后量子密码系统将需要为区块链提供以下主要功能:
小秘钥。与区块链交互的设备在理想情况下需要利用小型公钥和私钥,以减少所需的存储空间。另外,小密钥在管理时涉及较少复杂的计算操作。对于需要物联网(IoT)终端设备交互的区块链而言,这一点尤其重要,因为后者通常在存储和计算能力方面受到限制。值得指出的是,与其他新兴技术如深度学习一样,物联网在过去几年中经历了显着增长,但物联网设备仍然面临一些重要挑战,主要是关于安全性问题,在某种程度上限制了它与区块链的联合使用以及其广泛采用。
小签名和哈希长度。区块链本质上是存储数据交易,包括用户签名和数据/块哈希。因此,如果签名/哈希长度增加,则区块链大小也将增加。
快速执行。后量子方案需要尽可能快,以便允许区块链每秒处理大量交易。此外,快速执行通常涉及较低的计算复杂性,这对于不将资源受限的设备从区块链交易中排除是必需的。
低计算复杂度。此功能与快速执行有关,但必须注意,使用某些硬件进行快速执行并不意味着后量子密码系统的计算简单。例如,某些方案可以在使用高级矢量扩展(AVX2)指令集的Intel微处理器中快速执行,但是当在基于ARM的微控制器上执行时,相同的方案可能被认为是慢速的。因此,有必要在计算复杂度,执行时间和支持的硬件设备之间寻求折衷方案。
能耗低。诸如比特币之类的一些区块链应用被认为是耗电大户,主要是因为执行其共识协议所需的能量消耗。还有其他影响功耗的因素,例如使用的硬件,已执行的通信事务的数量,以及所实施的安全方案,由于所执行的操作的复杂性,它们可能会消耗大量的电流。
注释
1.多项式时间(Polynomial time):在计算复杂度理论中,指的是一个问题的计算时间m(n)不大于问题大小n的多项式倍数。
2.秀尔算法(Shor’s algorithm):一种常见的量子算法,可以在多项式时间内完成大整数质因数分解。
3.NP问题(Nondeterministic Polynomially):是指一个复杂问题不能确定是否在多项式时间内找到答案,但是可以在多项式时间内验证答案是否正确。NP类问题有完全子图问题、图着色问题、旅行商(TSP)问题等。
4.zk-SNARKs:指简洁化的非交互式零知识证明。Zcash是zk-SNARKs的首个广泛应用。
5.zk-STARKs:指简洁化的全透明零知识证明。zk-STARK不需要进行初始化可信设置(字母“T”代表了透明性),zk-STARKs是作为zk-SNARK协议的替代版本而创建的,被认为是该技术的更快和更便捷的实现方式。