基于区块链的去中心化抗量子密钥管理系统

摘要

区块链技术在2008年被提出被称为比特币(我觉得应该是翻译为比特币应用了区块链技术),区块链技术是一种分布式的数据库。公钥基础设施PKI(Public Key Infrastructure)系统是一种中心化密钥管理系统。PKI系统很可能会出现单点故障。例如比特币和以太坊都用了经典的数字签名算法ECDSA。通过运用Shor的算法很容易会受到量子的攻击。在此文中,我们提出一种基于基于区块链的去中心化抗量子密钥管理系统,因为它用了GLP数字签名方案,该方案采用了一种基于安全网格的数字签名方案,因此我们架构是基于抗量子密码学,该架构是安全的、抵御量子攻击的、并且可以保证长期的安全。此外,我们设计一个去中心化区块链结构,扩展了X.509证书,用于解决单点故障问题。

关键词:区块链;抵御量子攻击;密钥管理系统

1 绪论

在2016年IBM开发了一台5-qubit的量子计算机,并且在2017年的11月开发出50-qubit的量子计算机。此IBM的研发团队已经研发出一台允许公众通过IBMQ去体验模拟的量子计算机。因此量子计算机已经是从理论走向实践。正如公钥加密系统DH(Diffie-Hellman)密钥交换协议和RSA都是依赖于离散对数问题(DLP)、离散对数问题(DLP)、椭圆曲线DLP (EC-DLP)和整数因子分解问题(IFP)的难度。然而,离散对数问题和整数因子分解问题可以通过用量子计算机在多项式时间内用Shor算法求解。假如量子计算机被广泛使用变为可能,那么依赖于数论问题难度保证安全的公钥加密系统将会在多项式时间内被打破。因此我们需要一个公钥密钥系统去抵御量子计算机的威胁。Post Quantum Cryptography (PQC)在简历安全密码系统去抵御普通的和量子的对手起到重要作用。

一个公钥加密系统需要公钥基础设施PKI(Public Key Infrastructure)是它通过将所有用户的公钥与其所有者绑定来保证其完整性。目前X.509 v3PKI系统作为推荐的国际标准。然而,X.509 v3PKI系统具有集中化、单点故障和完全可信的认证权威(CA)等缺点。CA是可信的第三方,其在证书上的签名保证了每个实体的公钥的真实性。因此,目前使用的集中式PKI系统存在可用性问题,这是由集中式CA造成的。最著名的加密货币,比特币是第一个去中心化的虚拟货币。比特币通过使用区块链,这是一个由所有对等节点共享的交易数据库(或分布式账本)。使用区块链事务,任何人都可以在事务历史中找到每个信息块。因此,由于区块链技术是去中心化,每个对等节点同时在其网络上既是充当客户机也是充当服务器。

在本文中,我们提出了QChain,一个具有扩展的X.509证书的抗量子去中心化PKI系统。为了构造QChain,我们将区块链和基于网格的密码体制相结合,这是PQC的基本原理之一。QChain 是一种实用的方法来管理公钥密码学在去中心化的问题。

2 相关著作(材料)

2.1基于区块链的PKI

崛起币EMC (Emercoin)是一种加密货币,用于基于区块链的PKI系统。EMCSSH通过集成OpenSSH和EMC链挺高去中心化的PKI。EMC链式基于权益认证和工作量证明的共识协议,它是从点点币Peercoin分叉的EMC。使用SHA-256散列函数,根据Grover的算法,它对量子攻击者是不安全的。

Matsumoto等人提出了基于以太的PKI系统IKP。IKP的去中心化性质和智能合同系统允许公开参与,是为提高CAs的警惕性提供了激励,同时使财务资源能够防范不当行为。然而,对于以太坊平台还是有一些安全问题。此外,IKP使用抗量子哈希算法Ethash。Ethereum基于ECDSA签名算法,在面对量子攻击时并不安全。

Yakubov等人在2018年提出了基于区块链的PKI管理框架。他们设计了一个基于区块链PKI,用于修改X.509证书。X.509 v3证书标准由扩展字段组成,这些字段是为附加信息保留的。他们修改了X.509 v3证书,设计了混合的X.509证书,该证书由扩展域中的区块链名称、CA密钥和主题密钥标识符以及散列算法组成。本工作基于以太坊中的智能合约。

CERT币是基于域名币使用区块链技术的共有去中心化PKI系统。在撤销阶段,他们没有使用证书撤销列表 CRL(Certificate Revocation List)。他们认为CertCoin使用RSA累加计算是对于量子不安全的。

2.2基于网格的签名方案

与PQC原语相比,基于网格的原语速度更快,且签名大小也更小。一般来说,因为ring-LWE基于数字签名与其他算法相比可以提供最少低的时间复杂度,Akleylek等人提出了 基于ring-LWE的签名方案叫做 RingTESLA。密钥由三元多项式构成,并且e1,e2的系数很小。 多项式和计算b1 = (a1s + e1)% q和b2 = (a2s + e2)% q。给消息m签名,签名算法样本然后计算多项式lz = y+sc。签名的结果是一个元组。为了用信息m去验证签名,验证算法计算

等人发表了基于ring-LWE问题的GLP签名方案。多项式环定义定义了环的子集。由系数在[- k, k]范围内的所有多项式组成。签署消息μ,需要加密范围内的哈希函数。n≥512由n - 1次多项式组成,多项式系数均为0,但最多32个系数为±1。首先,我们需要一次读取5位(r1r2r3r4r5)。假如r1等于0把1放在r2r3r4r5的位置。否则,将1放在r2r3r4r5的位置。在3.1节中,我们将描述修改后的GLP签名方案。

                                                                              图 1 完整的QChain结构

 

3解决方案

我们提出抗量子PKI方案是基于ring-LWE问题。在本节中,我们将详细描述QChain的整个结构。我们使用区块链构建了QChain,这是一种量子抗PKI。在下面的章节中,我们描述的结构方案和修改GLP签名方案。我们整合了改进的GLP签名方案,这是的第一个使用区块链的方案。QChain使用X.509 v3证书的扩展字段。因此,它的优点是可以与现有的X.509证书标准兼容。

3.1修改GLP签名

GLP签名方案比基于网格的GPV和LYUscheme签名方案速度快,迄今为止被认为是安全的可以抵御旁路攻击。我们在2.2节中简要描述了GLP签名方案,为了提高其性能,我们通过集成数论变换(NTT)类算法1对GLP签名方案进行了修改。设是环的子集,它由系数在[- k, k]范围内的所有多项式组成。

 

3.2 QChain的结构ring-LWE

图1显示全部架构的QChain。我们使用ring-LWE加密方案去抵御量子计算攻击者。更准确地说,公钥加密方案是基于Lyubashevsky等人的ring-LWE,对量子对手是安全的。

图2显示了QChain的扩展证书。在QChain结构中,每个块由前一个散列、nonce随机值、时间戳、用户的一个中心化公钥、块的散列值和Merkle树组成。用户可以使用基于ring-LWE方案的公钥密码系统与应用数据进行通信。QChain证书包含以下字段:

                                                                  图 2 扩展的QChain证书

 

  • 版本号:X.509标准有三种版本。版本1是默认格式,如果存在发起者唯一标识符或主题唯一标识符,则必须使用版本2。对于更多的证书扩展,版本必须使用3。
  • 签名:该字段包括签名算法和证书签名。它覆盖所有其他字段值并对证书进行签名。
  • CRL分布式结点:该字段包括所有建立的CRL分布点一个列表。每一个分布式结点包含一个名字和选项名称和可选的撤销原因以及CRL发布方名称,具体来说就是主区块。
  • 断言的数据:该字段由以前的散列值、Merkle根、块号组成。前一个散列值基于前一个块。

如果该主结点是一个恶意节点,则该证书将被取消,并选举一个新的主结点。因此,它可以防止恶意节点的领导。领导者有CRL,用户确认撤销领导者CRL中的公钥。前一个主结点在新主结点改变时将CRL及其散列值传递给下一个leader。

3.3 QChain Scheme

多项式环定义了错误的误差分布,误差分布χσ使用离散高斯分布标准差σ。为了更加高效我们使用NTT运算。NTT是基本上使用NTT通常用于实现基于网格的加密。NTT运算表示。密码nonce和随机数是随机选择的我们分别表示H()为散列函数和Sign()为签名算法。公钥和私钥分别表示pk和privK。一个多项式,我们定义当

当ω= 49,γ=√ω= 7。函数NTT−1定义了NTT函数的逆。当

当n−1%q = 12277,γ−1 mod q = 8778,ω−1 mod q = 1254。QChain方案描述如下:

  • QChain.Setup(1λ): Choose安全参数λ和输出参数 n, q, 和
  • QChain.KeyGen(n,σ):多项式r1和r2高斯分布的采样使用NTT多项式乘法和加法操作。

公钥是和私钥用户。

  • QChain.GenesisBlock.Setup(): 创世区块是QChain的第一个块。我们也称它为block 0,它被硬编码到我们的系统软件中。创世区块没有以前的散列值。因此,我们在创世区块中使用作为之前的散列值。修正了创世区块中的
  • QChain.GenesisBlock.Merkle():我们使用随机数randi、时间戳、哈希函数H()和签名算法Sign()来构造Merkle哈希树。在genesis块中,我们修正了pki = randi, IDi = i, Usernamei = i。然后,我们使用叶节点的每个哈希值计算顶部哈希值Hroot。
  • QChain.GenesisBlock.Final():在最后的算法中,我们最终构造了创始区块。要使之前的散列为块1,QChain需要一个散列值。以前的散列值计算如下:

  • QChain.User.Setup(pki, Hroot): 在用户设置算法中,它类似于QChain.GenesisBlock.Setup()算法。用户设置算法如下:
  • QChain.User.Add(IDi, Usernamei, privKi, Certi):在QChain.User.Setup()算法生成genesis块之后,我们添加用户的公钥信息如下:

我们使用计算每个散列和签名值。输出特征值。然后,我们构造了与创世区块进程相同的Merkle散列树。每个块的最大用户为。由于内存的复杂性,我们限制了Merkle哈希树的最大深度。Sign()算法是一种改进的GLP签名方案。

  • QChain.User.Verify(IDi, pki, Sign(Certi)):使用验证算法verify()验证用户的公钥pki和签名(Certi)。用户验证算法运行如下:

使用公共参数pki和Sign(IDi),我们可以很容易地验证用户。

  • QChain.User.Enc(pki, m): 若要对消息m∈R2进行加密,加密算法如下:

然后,我们可以生成和密文是使用用户公钥和消息m。

  • QChain.User.Dec(privKi, c): 对消息进行解密,加密算法如下:

Decode()是一个错误调节函数在 QChain.Enc()函数中,我们对消息m编码。我们使用Decode()解码消息m, Decode() function.Decode()函数的定义如下:

                                                       图 3 QChain设置安全通信的典型用例

图3展示了一个用于设置安全通信的典型QChain用例。第一个QChain操作符启动了创世区块 (block 0).该操作符有5步算法。QChain.Setup()设置QChain.KeyGen()的参数,使之成为用户的公钥和私钥。然后,QChain。运行生成Genesis块的算法有:setup()、QChain.GenesisBlock.Merkle()和qchain . genesblock . final()。他们可以用算法QChain.User注册公钥。Add ()。它们还可以使用算法QChain.User.Verify()验证公钥。使用该算法,用户可以向QChain发起挑战来验证匿名用户。QChain将回答它是否是经过身份验证的用户。最后,通过算法QChain.User.Enc()和QChain.User.Dec(),用户可以安全地相互通信应用数据。

 

 

 

 

 

4安全分析

4.1 通用的攻击

Grover等人提出了一种数据库搜索算法,称为Grover算法。我们的构造使用了n1-bit的哈希函数。要破坏哈希函数,蛮力攻击的复杂度为。攻击基于网格的密码系统(该系统具有n2-bit的安全密钥维数,并且使用sphere-sieve找到最短的晶格向量也需要复杂度。由于ring-LWE问题和最坏情况一样复杂,所以尽管使用量子计算机进行攻击,攻击数量还是减少了平方根复杂度。然而,Shor的算法不能攻击我们的QChain结构。QChain的加密算法和数字签名不是基于IFP或DLP问题。因此,我们的构造不受Shor算法的影响。使用量子计算机的一般攻击的攻击复杂性是最小的使用经典的计算攻击,如果QChain使用SHA3散列函数,则散列函数是安全的。签名攻击复杂度为。因此,使用经典计算机进行的一般攻击的总攻击复杂度为

然而,使用Shor算法,RSA和ECDSA的攻击复杂度为

 

4.2特征分析

我们比较了我们的建设和相关工作的特点,如Certcoin、IKP和崛起币。表1展示了QChain与相关工作的比较。在现有的加密货币系统的基础上,Certcoin是基于域名币,它是从比特币的分叉。崛起币也是基于点点币,IKP也是基于以太坊飞智能合约平台。

                                                                                表 1QChain与相关工作的比较

系统

QChain

CertCoin

IKP

Emercoin

对现有的依赖加密货币体系

N

域名币(比特币的分叉)

以太坊

点点币(比特币的分叉)

扩展X.509证书

Y

Y

N

N

签名方案

GLP

ECDSA

ECDSA

RSA

量子计算签名的复杂度

哈希函数

不是特定的

SHA256

Ethash

SHA256

撤回方式

CRL,时间戳

时间戳

自能合约

由管理者升级

 

 

我们使用扩展字段扩展了X.509 v3证书。Certcoin也扩展了相同的方法。但是,IKP和崛起币不使用X.509证书。相反,它们分别使用智能合约和创建新的区块。因此,它不能应用目前使用的PKI标准。QChain只使用GLP数字签名方案是后量子基元之一。其他结构使用ECDSA和RSA数字签名。换句话说,Certcoin、IKP和Emercoin在量子对手面前并不安全。在撤销方法中,我们的构造基于CRL和时间戳。利用CRL是最有效的公钥撤销方法。此外,我们使用时间戳来辅助CRL。与我们的机构不同是Certcoin只使用没有CRL的时间戳,这是一个缺点。因此,当用户需要撤销公钥时,需要手动更新新证书。IKP和崛起币被CA以与当前PKI标准相同的方式撤销为智能合同。

5 结束语

本文提出了提出了一种基于ring-LWE方案的分散PKI系统的区块链技术QChain。通过结合区块链技术和PQC原语之一的基于网格的密码学,QChain提供了一个抗量子的PKI系统,该系统可以防止在不久的将来出现的量子对手。我们的结构使用扩展的X.509证书。因此,我们可以轻松地集成当前的X.509标准。为了有效地设计QChain,我们使用了多项式乘法和加法中的NTT运算。我们也修改了GLP签名方案,该方案基于NTT操作的ring-LWE问题。描述了量子对手和经典对手对QChain的一般攻击。我们考虑了最著名的通用攻击算法,如格罗弗算法和球筛算法。最后,我们将目前使用的X.509 v3 PKI系统与我们的QChain进行了特征分析。

在今后的工作中,应该从以下几个方面进行探索。首先,我们将QChain作为一个开源项目来实现。我们的实现需要验证块中的一致算法。QChain旨在解决目前基于X.509 v3的密钥管理系统的单点故障,其工作原理类似于一种去中心化的PKI。因此,QChain可以适合联合体或私有区块链应用。在实际实现中,可以考虑使用SHA3或其他安全高效的散列函数。

大四了结课老师叫我帮个忙翻译一下两篇文章,在此分享给大家,预祝大家新年快乐

原文《Blockchain-Based Decentralized Key Management System》链接找不到。没有授权,作者不允许的话就删喇叭。

发布了46 篇原创文章 · 获赞 75 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38875300/article/details/103644480
今日推荐