基於區塊鏈的去中心化抗量子密鑰管理系統

摘要

區塊鏈技術在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》鏈接找不到。沒有授權,作者不允許的話就刪喇叭。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章