InterValue抗量子哈希算法
1.抗量子攻击的哈希算法
密码学中的哈希算法又称为散列函数或杂凑函数,它在现代密码学中扮演着重要的角色。哈希算法是一个公开的函数H,它将任意长的消息M映射为较短的、固定氏度的值h。h称为消息摘要,也称为哈希值、散列值或杂凑值。哈希算法的结构如图9-10所示。
区块链为了保证数据不被篡改,除了保存原始数据或交易记录,还要保存其哈希函数值。区块链上的交易数据通常通过很多次哈希后得到最终的Merkle Hash值,区块链上的地址数据通常是通过计算得到一个Hash值,并通过特定的编码将Hash值转化为由数字和字母组成的字符串后(如在比特币区块链中采用的是Base58编码)记入区块链。
量子计算机针对哈希算法目前最有效的攻击方法是GROVER算法,该算法可以将对Hash算法的攻击复杂度从O(2n)降为O(2n/2),因此,目前比特币系统采用的哈希算法PIREMD160算法由于输出长度只有160比特,在量子攻击下是不安全的。抵抗量子攻击的有效手段是通过增加哈希算法的输出长度来有效降低GROVER算法威胁,目前普遍认为只要哈希算法输出长度不少于256比特时,是可以有效抵抗量子攻击的。另外,除了量子攻击威胁外,一系列在实践中被广泛应用的Hash函数如MD4、MD5,SHA-1和HAVAL等受到差分分析、模差分和消息修改方法等传统方法的攻击,因此区块链中的哈希算法也需要考虑的是对传统攻击的抵抗能力。
早期的区块链项目如比特币、莱特币、以太坊都采用了存在设计缺陷(但不是致命的)的SHA系列哈希算法,最近新的区块链项目都采用以美国国家标准与技术研究院SHA-3计划系列算法为代表的新哈希算法。InterValue采用SHA-3计划的胜出算法Keccak512,该算法蕴含许多杂凑函数和密码算法最新的设立理念和思想,且设计方式简单,非常方便硬件实现。算法是Guido Bertoni、Joan Daemen、Michael Peters和GilesVan Assche在2008年10月提交的,Keccak512算法采用了标准的sponge结构,可将任意长度的输入比特映射成固定长度的输出比特,该算法速度非常快速,在英特尔酷睿2处理器下的平均速度为12.5周期每字节。
如图9-11所示,在海绵结构的吸收阶段,每个消息分组与状态内部的r比特进行异或,然后与后面固定的c比特一起封装成1600比特的数据进行轮函数 f f f处理,然后再进入挤压过程。在挤压阶段,可以通过迭代24次循环产生n比特固定输出长度的Hash值,每个循环R只有最后一步轮常数不同,但是该轮常数在碰撞攻击时经常被忽略不计。该算法被证明具有很好的差分性质,至目前为止第三方密码分析没有显示Keccak512有安全弱点。量子计算机下针对Keccak512算法的第一类原像攻击复杂度是2256,量子计算机下针对Keccak512算法的第二类原像攻击复杂度是2128,因此采用Keccak512算法的lnterValue可以抵抗量子计算下的GROVER算法攻击。
2.抗量子攻击的数字签名算法
哈希算法可以保证交易数据不被篡改,但是无法保证对数据和摘要同时的替换攻击,同时也不能保证交易数据的不可否认性,数字签名算法涉及公钥、私钥和钱包等工具,它有两个作用:一是证明消息确实是由信息发送方签名并发发出来的,保证不可否认性;二是确定消息的完整性。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用哈希算法对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性并保证信息的不可否认性。
现有区块链系统大都采用椭圆曲线数字签名方案ECDSA。ECDSA是基于椭圆曲线的DSA签名算法而提出的,作为ANSI、IEEE、NIST和ISO的标准,ECDSA具有系统参数小、处理速度快、密钥尺寸小、抗攻击性强和带宽要求低等优点,比如160bit ECC与1024 bit RSA、DSA有相同的安全强度,而224bit ECC则与2048bit RSA、DSS具有相同的安全强度。但是量子计算机下有针对ECDSA签名算法非常高效的SHOR攻击算法,SHOR算法适用于解决大整数分解、离散对数求逆等困难数学问题,导致ECDSA签名算法在量子攻击下相当不安全。目前抗量子SHOR算法攻击的公钥密码体制主要包括基于格理论的公钥密码、以McEliece公钥密码为代表的基于编码公钥体制和以MQ公钥密码为代表的基于多变量多项式的三类。McEliece公钥密码体制的安全性基于纠错码问题,安全性强,但计算效率低。MQ公钥密码体制,即多变元二次多项式公钥密码体制,基于有限域上的多变元二次多项式方程组的难解性,在安全性方面的缺点比较明显。相比之下,基于格理论的公钥加密体制算法简洁、计算速度快、占用存贮空间小。lnterValue采用基于格理论的签名算法NTRUSign-251。
已经证明NTRUSign-251签名算法的安全性最终等价于求一个502维整数格巾的最短向量问题,而格中最短向量问题是在SHOR攻击算法下无效的,在量子计算机下也没有其他的求解快速算法,目前最好的启发式算法也是指数级的,攻击NTRUSign-251签名算法的时间复杂度约为2168,因此采用NTRUSign-251算法的InterValue可以抵抗量子计算下的SHOR算法攻击。
参考链接:InterValue:新型抗量子攻击密码算法解析
参考文献:《DAG区块链技术-原理与实践》
InterValue分层共识机制
InterValue设计了基于哈希网数据结构的HashNet共识机制和基于随机选择函数的拜占庭协商(BA-VRF)共识机制,提出了基于HashNet的增强DAG共识和用于公证人选择的BA-VRF共识机制相结合的双层共识机制,在InterValue1.0版至3.0版中,由于基于HashNet的增强DAG共识实现较为闲难,因此先实现基础DAG共识和BA-VRF共识相结合的双层共识机制。交易并发量高、交易确认速度快,可快速构建面向不同应用场景的生态体系。自lnterValue4.0版开始,基础DAG共识将替换为基于HashNet的DAG共识,InterValue的共识机制为HashNet的DAG共识和IBA-VRF共识机制相结合的双层共识机制。
1.HashNet共识
(1) HashNet基本思想
已有的Hashgraph共识算法通过Gossip网络和虚拟投票策略达成交易顺序的共识,该共识的前提是要求网络节点超过2n/3的投票能力具有对famous witness事件的一致投票结果,其中n是全网的当前投票能力总和,该投票能力通常为节点的持股数量。由于采用了本地投票策略,Hashgraph可以实