摘 要:區塊鏈是未來技術發展的趨勢,但是現有區塊鏈技術存在隱私數據保護不夠完善的問題。針對現有區塊鏈隱私數據保護問題,設計了一種基于格密碼加密方法保證隱私數據安全的方案,并采用安全的可驗證密鑰共享進行密鑰保存。格密碼加密采用了基于環上帶誤差學習(Ring Learning With Error,RLWE)問題的格密碼加密方案,該加密方案具備抗量子攻擊、密鑰存儲量小、計算速度相對較快的優點。密鑰共享方面基于 Feldman VSS 密鑰共享,結合了 ElGamal 加密,對密鑰碎片進行了加密,保證了密鑰碎片的可驗證及安全性,同時實現了抗合謀攻擊。通過實驗測試了鏈上執行效果,并驗證了該方案在隱私數據保護方面的有效性,以及在密鑰共享方面的安全性。
2008年,中本聰提交了關于比特幣的論文之后,區塊鏈技術逐漸進入人們的日常生活中。經過十多年的發展,目前區塊鏈技術已經取得了長足的進步,但是依舊存在許多問題,限制了區塊鏈的大規模應用。區塊鏈本質上是一個分布式數據庫,具有不可篡改 、去中心化 、安全透明的特性 。然而,正是由于區塊鏈公開賬本分布式存儲具有賬本透明的特性,會導致用戶私密數據泄露的問題。確保隱私數據安全最好的方法就是對隱私數據進行加密處理,而目前大多數的區塊鏈平臺都不具備加密用戶數據的功能 。
1977 年,Ron Rivest 等人提出了著名的 RSA 加密算法。RSA 加密由 RSA 難題假設保證了加密的安全性,即在多項式時間內無法破解大素數因式分解的難題假設,從而保證了RSA加密算法的安全性。RSA 由大質數因式分解難題保證安全,但是,想要RSA 加密越安全,需要的質數乘積也越大,導致了 RSA 算法加密長度越長,基本上對于 2 048 位的RSA 加密能保證加密安全,但是計算速度較慢、效率較低,對于計算資源的消耗巨大,使用范圍較為局限。
1985 年塔希爾提出了 ElGamal 加密算法 ,該加密算法基于離散對數難題。該加密算法相比于 RSA算法,加密數據量減少了,但是大量的指數運算的計算資源開銷也很大,限制了該加密算法的使用。
橢圓曲線加密算法(Elliptic Curve Cryptography,ECC)是基于橢圓曲線數學理論實現的一種非對稱加密算法,相比于 RSA 算法,ECC 可以使用更短的密鑰來實現比 RSA 更高的加密安全,目前比特幣采用的就是 ECC 加密。
以上是目前基于經典數論的 3 種非對稱加密方案,無數的驗證都表明使用這些方案來加密是安全的,在多項式時間內無法破解。但是,隨著后量子計算時代的到來,以上基于經典數論的加密方案在量子計算時代都會被輕易破解,因此在后量子時代需要更加安全的加密算法保證數據的安全。美國國家標準技術研究所(National Institute of Standards and Technology,NIST)在 2012 年就開始了后量子密碼算法的研究,截至 2021 年,研究者們提出的后量子密碼算法主要包括格(Lattice based)、 哈 希(Hash-based), 編 碼(Codebased)、多變量(Multivariate-based)4 種類型的抗量子加密算法。2022 年 7 月,NIST 舉辦的后量子密碼標準競賽選出了 CRYSTALS-KYBER(基于格密碼)、CRYSTALS-DILITHIUM( 基于格密 碼)、FALCON( 基于格密碼)、SPHINCS+(基于哈希函數) 這 4 個算法作為標準,其中,CRYSTALS-KYBER 為公鑰加密算法,CRYSTALSDILITHIUM、FALCON、SPHINCS+ 為簽名算法。
2005 年,Regev首次提出了容錯學習問題(Learning With Errors,LWE)。經過多年的研究,格密碼已經被公認為是一種很好的抗量子計算的加密方案。基于格的算法在安全性、密鑰尺寸、計算速度上達到了相對較好的平衡 ,且與經典的基于數論的加密算法相比,除了計算效率不佳,其安全性較高,尤其抗量子計算性能優越。
本文基于 Hyperledger Fabric 聯盟鏈平臺,采用基于 RLEW 格的公私鑰加密方案,相比較 LWE 格密碼方案,RLWE 具備較高的計算效率,以及更短的密鑰尺寸。在此基礎上結合密鑰共享技術,將格密碼生成的私鑰在聯盟鏈內進行共享,保證用戶隱私數據的安全。傳統的密鑰共享面臨合謀問題的挑戰,但本文基于 Feldman 可驗證密鑰共享基礎,結合離散對數問題,實現了一套抗合謀攻擊的密鑰共享。
1
基礎知識
1.1 符號說明
表 1 列出了本文中所用到的符號以及符號對應的含義。
表 1 基礎符號說明

1.2 格基礎
定義 1:格是
上的一個離散子群,即:

線性空間基與格的區別在于,線性空間中的基可以通過任意地組合構成線性空間中的所有向量,但是格是由整數構成的,是由格點構成的空間,是一個離散而非連續的空間,所有向量無法由格點準確描述,保證了離散性。如圖 1 所示,在一個格空間中,可以有多組不同的基向量表示,但是通過格點無法準確描述向量。

圖 1 一組二維格上兩組不同的基
定義 2:q 元格。

q 元格相對來說是一類更加簡單的格,A 是矩陣,由 Ax=0 這樣的方程的整數解所構成的空間就是 q 元格。顯然,
在歐式空間是格
的一種平移。
1.3 格上的困難問題
定義 3:最小整數解(Small Integer Solutions Problem,SIS) 問 題。
并 且
找到
使得
SIS 問題即求 Ax=0 這個齊次線性方程組的解,只是限定了 x 必須是整數,且 ||x|| ≤ β 這樣的條件,相當于在這個 q 元格中解決一個求最短向量(Shortest Vector Problem,SVP)問題。
定義 4:LWE 問題。
并且
Zq m×n,e 滿足高斯誤差分布
找到
使得
求解 As=b,找出滿足非齊次方程的 e 向量很簡單,但是 LWE 問題中,在方程左邊加入了噪聲 e,變為求 As+e=b 就很困難。
定義 5:RLWE 問題。設
其中安全參數 n 是 2 的冪。設
是
結構的多項式環,
的元素可以用小于 n 的多項式表示,與 LWE 問題類似,只是將 LWE 問題中的矩陣換為了多項式環
。
1.4 格困難問題復雜度
給定一個 n 維的格
并且
γ-SVP:找到一個非零向量 v,使得 ||v|| ≤ γ。
γ-CVP:給定一個點 t,
找到 v,v ∈ Λ,使得
由γ 的大小可以推算出格困難問題的復雜度,當 γ 越大的時候,格問題變得越簡單;當 γ 越小的時候,格問題變成近似 NP-hard 問題。
如圖 2 所示,格上的困難問題求解時間復雜度和空間復雜度都是關于 n 的一個指數,是被驗證的目前可用的抗量子計算加密算法。

圖 2 格困難問題復雜度
1.5 可驗證密鑰共享
1979 年,Shamir 提出了著名的密鑰共享方案——Shamir 密鑰分享。該方案巧妙地利用多項式函數,將密鑰隱藏于函數值的常數,進行密鑰分割時,取該 k-1 次多項式曲線上 n 個不同的點
恢復密鑰時,當 k 個密鑰聚合在一起的時候,能夠確定唯一一條曲線,而該曲線的常數項即為密鑰。此外,Shamir 首次提出了通過門限完整恢復密鑰的方法,但是在該方案中,如果密鑰分發方故意分發錯誤密鑰碎片,接收方無法驗證,恢復密鑰時則會失敗。Feldman VSS[16] 進一步完善了 Shamir 的密鑰分享方案,該方案完全基于 Shamir 密鑰分享,并在其基礎上添加了承諾,并為每一個密鑰碎片計算承諾(commit),每個密鑰接收方都可以通過驗證自己接收到的密鑰碎片和commit 進行計算,來證明密鑰碎片的正確性。但Shamir 和 Feldman 方案都無法解決合謀攻擊,n 個碎片中有 k 個攻擊者完成合謀都能夠完整地恢復出密鑰。
2
方案介紹
本方案基于聯盟鏈平臺 Hyperledger Fabric,采用了 RLWE 格加密對用戶上傳到 Fabric 的隱私數據進行加密,并采用可驗證密鑰共享的方式共享私鑰。此外,本文基于 Feldman VSS 密鑰共享架構采用分布式密鑰生成(Distributed Key Generation,DKG)模式來進行密鑰生成,相比于傳統方法需要一個可信的密鑰分發中心,實現了去中心化。在 (n,t)DKG中,n 為節點數,t 為閾值。對于用戶加密數據的私鑰
采用 (n,t)DKG 產生密鑰碎片
對每個密鑰碎片采用 ElGamal 算法進行加密,得到密鑰碎片
所有節點都可驗證密鑰碎片的正確性,但是無法通過合謀獲取密鑰。密鑰恢復時,由 DKG 中密鑰的產生者收集達到閾值數量的密鑰碎片,使用 ElGamal 算法產生的私鑰對所有密鑰碎片進行解密,得到正確的
從而恢復出正確的密鑰。具體方案為:
(1) 密 鑰 生 成(KeyGen)。 均 勻 隨 機 地 從χ 中抽取 s,即 s←χ,χ 服從高斯分布。從多項式環
中均勻隨機抽取
即
從 χ 中均勻隨機選取噪聲,即
計算
公鑰
私鑰 sk=(s)。
(2)隱私信息加密(Encrypt)。對于 n 位明文消息
利用公鑰進行加密。均勻隨機選 取
即
計算


作為最后加密的密文。
(3) 密 鑰 分 割(Split)。隨 機 生 成
到
的 系 數 值, 利 用 拉 格 朗 日 插 值 法 構 建
多 項 式 曲 線, 取
密鑰碎片
構 成
(4) 密 鑰 分 發(Distribute)。利 用 ElGamal算法對密鑰碎片進行加密。輸入安全參數,生成
其中
計算
得到新的多項式系數
從 而 得 到 新 的 多 項 式
以及加密后的密鑰碎片
k-1,同時生成承諾 commit,
發送
并且廣播承諾
(5)密鑰驗證(Verify)。參與節點接受到密鑰 碎 片 后 進 行 密 鑰 碎 片 驗 證。接 受 節 點 利 用
對密鑰碎片進行驗證。
(6)密鑰恢復(Recovery)。DKG 密鑰產生節點收集到足夠的密鑰碎片
后, 可 以 利 用
來驗證收到的密鑰碎片是否被作惡。經過驗證后,計算出正確的多項式系數
得到
后帶入多項式曲線 f(x) 中,取
即為隱藏的密鑰。
(7)密鑰解密(Decrypt)。解密密文時,只需要計算
若
則 m=0,否則m=1
3
方案分析
3.1 正確性分析
RLWE 解密的正確性可由
展開為:

可以發現,得到的 x 是原來密文 m 乘以
,再加上
噪聲的結果,e的最大上限值是B,所以誤差噪聲最大可達到mB。多項式
系數的界需要滿足
約束,所以誤差噪聲e的存在不會改變算法的正確性,就算噪聲再大,m 也能落在可識別的區間內,當多項式不滿足該約束時,無法恢復密文 m。
3.2 安全性分析
基于隨機預言機的模型中所有的哈希函數唯一的輸入值對應唯一的一個輸出,用戶知道哈希輸入但是無法控制哈希輸出,只能問詢輸出結果,是一種理想的隨機模型。在基于格加密的隱私信息保護方案中,假設挑戰者獲取到了經過 RLWE 加密的隱私信息密文
那么挑戰者獲取到的信息為
其表達式為:

那么,此時構建一個類似的密文
其表達式為:

同時再創建密文

因為根據 DLWE 假 設, 挑 戰 者 是 無 法 分 辨RLWE 實體和隨機向量的,將公鑰中的
替換為滿足高斯分布的隨機向量 v 構造出
基于此,將密文部分的
替換為多項式環上的一個隨機數,將非隨機參數隨機化。依據剩余哈希定理,即便是攻擊者獲取了部分比特位置信息,但是依舊無法分辨
綜上所述,挑戰者也無法分辨
所以挑戰者無法分辨出
因此 RLWE 加密是語義安全的。保證 RLWE 格加密問題困難復雜度,并保證格加密難度下界為多項式時間,挑戰者無法在線性時間內破解 RLWE 加密,所以 RLWE 加密在隨機語言模型下是安全的。
本方案基于 Feldman 可驗證密鑰共享和ElGamal 方式來實現密鑰保護。傳統的密鑰共享存在合謀攻擊的問題,即群組中多個節點惡意串通,當超過密鑰恢復閾值的節點作惡合謀時,可以共同恢復出完整的私鑰,這與采用密鑰共享保護私鑰的初衷是背道而馳的。在本方案中,基于 Feldman 構造出來的密鑰碎片不是直接分發到各個節點進行保存,而是利用 ElGamal 對構造密鑰碎片的多項式系數進行加密,從而得到新的多項式系數,構造出新的多項式。基于此得到新的加密碎片,假設挑戰者惡意串通,在 (n,t)DKG 模式,挑戰者集合了 t 個密鑰碎片,共同恢復出多項式,并計算出 f(0)。但在本方案中,由于分發的密鑰碎片是基于加密改造后的多項式生成的,合謀的挑戰者恢復出的密鑰也是無 效 的。
為 密 文,
為 公 鑰,p,g,z為私鑰,挑戰者獲取了密文
挑戰者想要通過獲取私鑰破解密文,需要通過以下計算:

式中:k(0<k<p-1) 為一個均勻的隨機數,挑戰者猜中 k 值的概率為
此外,分子部分屬于離散對數難題,離散對數難題是困難的,離散對數難題的計算難度介于 N 和 NP-complete(NPC)之間。從而證明了本方案的密鑰共享是具備抗合謀攻擊的安全的密鑰共享方案。
4
實驗與分析
4.1 實驗結果
本次實驗環境為 AMD Ryzen 7 PRO 4750U@1.7 GHz,內存為 16 G 2 666 Hz,操作系統為 Ubuntu16.04LTS,Golang 版本為 golang1.14.7,Fabric 版本為 fabric-1.4.11。通過搭建 Hyperledger Fabric 網絡,在客戶端完成加密。基于 Fabric 聯盟鏈平臺,構建了 1 個 order 節點,5 個 peer 節點的區塊鏈網絡,在 Fabric 客戶端實現 RLWE 的格密碼加密,并采用 DKG 分布式產生密鑰碎片,對密鑰碎片進行加密后分發,只有產生密鑰碎片的節點接受達到閾值門限的密鑰碎片才能恢復密鑰。圖 3 和圖 4 展示了基于 LWE 格密碼加密和基于 RLWE 格密碼加密的對比。

圖 3 公鑰產生時間對比
4.2 實驗分析
圖 3 和圖 4 對比了兩種格加密方案密鑰生成的計算消耗對比,通過實驗結果可知,無論是 LWE格加密還是 RLWE 格加密,公鑰生成時間和私鑰生成時間都是隨著密鑰生成參數的增加而增加,但是RLWE 格加密比 LWE 格加密節約 30% 左右的計算耗時,能夠更快地計算出格密碼的公私鑰。圖 5 是使用了不同加密方案后區塊鏈網絡的吞吐量。通過實驗結果可知,隨著區塊鏈網絡中節點數量的增加,區塊鏈網絡的 TPS 呈現出下降的趨勢,沒有使用加密保護隱私數據的 Fabric 網絡的吞吐量最高,最高達到 64 TPS,采用本方案 RLWE 加密保護隱私信息的區塊鏈網絡 TPS 最高達到 52 TPS,采用 LWE 格加密的區塊鏈網絡 TPS 最高為 46 TPS。通過對比可知,本方案能夠在保證隱私信息安全的前提下,保證區塊鏈網絡吞吐量不下降太多。

圖 4 私鑰產生時間對比

圖 5 吞吐量比較
圖 6 為不同的密鑰共享方案的密鑰碎片生成耗時對比。通過實驗數據可知,本方案的密鑰共享生成密鑰碎片是耗時最久的,Shamir 密鑰共享方案是生成密鑰碎片最快的。這是因為,在本方案中,為了實現抗合謀攻擊,對密鑰碎片進行了二次加密,將基于 Feldman 生成的密鑰碎片進行加密,產生了大量的耗時。通過圖 7 可知,Shamir 方案和Feldman 方案在密鑰恢復上的時間基本一致,而本方案中密鑰恢復最慢,這是因為本方案在執行密鑰恢復時,需要對密鑰碎片進行解密,得到解密的密鑰碎片才能恢復完整的密鑰,所以本方案的密鑰恢復得最慢。

圖 6 密鑰碎片生成時間

圖 7 密鑰恢復時間
綜上可知,實驗驗證了本方案的可行性。采用了格密碼加密保護重要的隱私信息,雖然犧牲了部分計算性能和網絡吞吐量,但是保障了區塊鏈上隱私信息的安全。
5
結 語
隨著區塊鏈技術的發展,隱私安全問題近年來越來越受到人們的重視,傳統基于經典數論難題的加密體系在量子計算面前不堪一擊。本文基于Hyperledger Fabric 聯盟鏈平臺,結合了 RLWE 格密碼,實現了一套安全的、抗量子計算的隱私數據保護區塊鏈。該方案采用 DKG 架構,沒有傳統加密體系中的可信第三方中心,極大提高了隱私保護的安全性,同時實現了較為安全的抗合謀攻擊功能,保證了密鑰的安全性。通過實驗表明,雖然 RLWE格加密會導致區塊鏈網絡吞吐量下降,且密鑰碎片加解密過程會導致密鑰恢復過程耗時增加,但是相比其所帶來的安全性是值得的。在下一步的研究中將進一步研究怎樣在大規模的區塊鏈中提高密鑰分發效率并減少密鑰恢復的時間。
引用格式:彭慢煜 , 孫一萌 , 牛旭彤 , 等 . 一種基于格密碼的區塊鏈數據隱私保護方案 [J]. 通信技術 ,2023,56(4):502-508.
信息安全與通信保密雜志社
信息安全與通信保密雜志社
D1Net
信息安全與通信保密雜志社
深圳市網絡與信息安全行業協會
信息安全與通信保密雜志社
黑白之道
信息安全與通信保密雜志社
中國信息安全
一顆小胡椒
看雪學苑
黑白之道