?

用于實現區塊鏈隱私保護的屬性基加密方案

2024-03-21 02:24馬海峰李玉霞薛慶水楊家海高永福
計算機應用 2024年2期
關鍵詞:敵手私鑰密鑰

馬海峰,李玉霞,薛慶水,楊家海,高永福

(1.上海應用技術大學 計算機科學與信息工程學院,上海 201418;2.清華大學 網絡科學與網絡空間研究院,北京 100084)

0 引言

比特幣問世時,區塊鏈通過一系列的技術為交易系統提供了一定的安全性,避免了惡意交易、雙花攻擊等威脅[1],但在隱私方面,由于區塊鏈賬本公開,區塊鏈網絡中所有節點都可以查看賬本內容。惡意用戶可以借助爬蟲技術獲取區塊鏈平臺的服務信息,構建用戶網絡拓撲、交易網絡拓撲,利用交易特征及溯源技術獲取隱私信息,其中包括交易隱私、賬戶地址隱私和用戶身份信息等敏感信息[2]。為了進一步確保對用戶隱私的保護,近年來相關密碼學技術已應用于該領域,如用零知識證明、屬性基加密、環簽名和聚合簽名等保證鏈上數據隱私[3-7]。然而數據的全部隱藏為非法交易提供了可乘之機,數字貨幣的濫用給政府和金融監管機構帶來了麻煩。人們對數字貨幣的監管呈現不同態度[8]:一些人認為用戶有保留自己的隱私和自由交易的權力,因此貨幣系統應該全匿名且不受監管;另一部分人認為監管必不可少,這將大幅減少違法犯罪活動。實際應用中,貨幣系統需要在隱私性和可監管之間取得某種平衡才能更好地發展,設計一種在隱私保護的同時又能實現監管的區塊鏈方案很有意義。

隨著區塊鏈數據隱私保護的研究明顯增多,區塊鏈的安全性得到了一定提升。然而,區塊鏈應用的復雜程度在不斷增長,許多學者提出一些可監管的區塊鏈隱私保護方案。Yuan 等[9]利用密文策略屬性基加密(Ciphertext Policy Attribute Based Encryption,CP-ABE)實現了一種私有鏈的數據隱私保護及監管機制,并應用于電子文檔的管理。該方案允許任何第三方驗證公開解密密鑰的身份,允許審計師公開審計惡意用戶或當局是否應對公開解密密鑰負責,密鑰濫用者不能否認。Xue 等[10]集成多種加密技術,使用概率公鑰加密、基于身份標識加密(Identity-Based Cryptograph,IBC)、Pedersen 承諾和零知識證明等實現區塊鏈隱私保護和監管功能。雖然該算法在安全性和隱私性方面有很大優勢,但性能和效率上需進一步提升才能實現應用。趙曉琦等[11]提出了一種可審計的區塊鏈匿名交易方案,使用Elgamal 加密隱藏交易數據,用隱地址實現監管;但交易金額需審計方審計,交易越多,審計時間越長,所以應改進優化審計策略,提高審計效率。Hill 等[12]設計了一種隱私保護協議,通過把密鑰和文件分割來增強供應鏈中的數據可用性和隱私性。審計方是供應鏈中數據的唯一參與者,負責解決參與者之間的爭議,但該協議只針對供應鏈,未廣泛應用。Feng 等[13]提出一種基于可搜索屬性加密的區塊鏈數據隱私保護訪問控制方案。該方案利用基于密文策略的屬性加密來加密陷門密鑰,并使用可搜索加密加密區塊鏈上的交易,但該方案屬性機構必須完全可信,而且用戶可能合謀訪問無權訪問的數據。

本文主要針對文獻[13]中存在的屬性機構權力過大和用戶合謀問題,提出新的訪問控制方案,同時實現區塊鏈的可監管。本文工作如下:

1)提出使用多屬性機構的屬性基加密方案實現區塊鏈的隱私保護。解密密鑰不依賴于單一機構產生,更符合區塊鏈去中心化的性質,最主要的是一個機構被攻破,非法用戶也無法獲取密鑰解密文件。相較于單一機構必須完全可信,有更大的容錯空間。

2)為了防止用戶合謀訪問無權訪問的數據,用戶在請求解密密鑰組件時,需將自己的身份標識符ID 和屬性集都發送給屬性機構。由此生成的私鑰組件就跟該用戶綁定,只有該用戶能用。同一用戶的私鑰組件才能合成解密密鑰,用戶間就不能合謀生成解密密鑰訪問權限外的數據。

3)使用基于身份的簽名(Identity-Based Signature,IBS)方案修改后的簽名算法生成交易密鑰。該方案既保密了用戶身份,又能建立用戶身份與用戶錢包地址之間的鏈接,以此實現區塊鏈的可監管。

1 基礎知識

1.1 雙線性映射

取階數為素數q的乘法循環群G0、G1。對于群的隨機生成器,存在滿足以下屬性的雙線性對映射:

1)雙線性性。對所有u,v∈G0;a,b∈Zp,等 式e(ua,vb)=e(u,v)ab成立。

2)非退化性。存在元素u,v∈G0,e(u,v) ≠1。

3)可計算性。對任意u,v∈G0,有一種多項式時間算法用于計算e(u,v)。

1.2 線性秘密共享方案

密碼學者已經提出了很多線性秘密共享方案(Linear Secret Sharing Scheme,LSSS),且這些方案在安全性和效率上都在逐步提升。LSSS 是Shamir 秘密共享方案的一般性推廣。線性秘密共享方案在參與組上滿足以下條件:

1)各方參與者的份額來自矩陣Zp。定義一個c行d列的分享生成矩陣M,該矩陣對應的秘密共享方案為∏。函數ρ將M第i行的參與者標記定義為本文把行向量看作共享的秘密,其中v2,v3,…,vc∈Zp隨機選擇。Mv是根據秘密共享方案∏得出的秘密份額,份額(Mv)i∈ρ(i)。

2)假設∏是訪問結構的LSSS。假設Su∈A是屬性機構的任意子集,A是屬性集合,I∈{1,2,…,l}。如果{λi}是∏中的有效秘密份額,將會有一個常數使S。此外,這些常數{wi}可以在共享生成器矩陣M的多項式時間中找到。

1.3 判定性雙線性Diffie-Hellman假設

設G1和G2是階q為素數的乘法循環群。選擇一個生成器g∈G1,選擇參數得 到ga,gb,gc∈G1,e(g,g)abc,e(g,g)r∈G2。判 定e(g,g)abc和e(g,g)r∈G2的 關系是否相等。

定義1對于任意多項式概率時間算法敵手A,DBDH假設的優勢定義為:

其 中:A(ga,gb,gc,e(g,g)abc)表示對手A 接收輸入參數ga、gb、gc,并嘗試確定配對e(g,g)abc是否成立;A(ga,gb,gc,e(g,g)r)代表修改版本,是一個隨機值r指數化到雙線性映射。如果測定值可以忽略不計,則將建立判定性雙線性Diffie-Hellman 假設。

2 系統模型

本文方案提出的基于屬性基加密的隱私保護方案包含的實體有:用戶(User)、數據擁有者(Data Owner,DO)、多屬性權威機構(Multi-attribute Authority,MA)、密鑰提供商(Key server)、監管節點(Regulation node),如圖1 所示。

圖1 系統模型Fig.1 System model

用戶 向系統提出注冊請求,生成身份標識符,組合每個屬性機構(Attribute Authority,AA)生成的私鑰構件,形成解密加密數據的私鑰。用戶ID 作為生成用戶屬性私鑰的參數,用于防止用戶共謀訪問無權訪問的數據。

數據擁有者 對交易簽名和加密。數據擁有者為區塊鏈系統中的用戶。

多屬性權威機構 每個授權機構獨立管理每類屬性,不同授權機構生成的私鑰組件共同組成用戶解密密鑰。監管過程中向監管節點授權屬性密鑰。

密鑰提供商 根據用戶提交的ID 和隨機值計算用戶簽名公私鑰對的重要組成部分,并通過秘密通道發送給用戶。在監管節點監測到非法用戶時,向監管節點提供非法用戶的真實身份。

監管節點 監管節點負責對交易監管,但不參與交易過程。該方案假定監管節點可信,只有在屬性機構授權屬性密鑰后,監管節點才能解密非法交易內容,揭露用戶身份,區塊鏈賬本中的正常交易信息對監管節點不可見。

3 本文方案具體構造

本文方案包含隱私保護部分和監管部分兩個部分。

針對隱私保護部分,基本思路是采用多屬性機構的屬性基加密實現鏈上數據的訪問控制,通過限制訪問數據的用戶避免賬本公開帶來的安全隱患。每個屬性機構根據用戶的屬性集為它生成私鑰構件,只有滿足訪問結構的用戶才能解密交易密文。為了防止用戶間合謀訪問無權訪問的數據,本方案使用用戶身份作為密鑰組件的標識,只限定該密鑰組件由單一用戶使用。

針對監管部分,基本思路是在交易生成時,交易雙方需對交易簽名。密鑰提供商為用戶提供簽名密鑰,對交易簽名不會泄露身份隱私。監管節點隨機選擇交易驗證用戶身份。授權監管節點通過錢包地址和交易信息獲取交易者的身份,驗證是否為誠實用戶。若為非法用戶,監管節點揭露非法用戶的真實身份,并將其錢包地址拉入黑名單。

為了方便理解,表1 列出了文章中出現的部分符號。

表1 符號定義Tab.1 Symbol definitions

本文方案的兩個主要部分劃分為以下7 個步驟:

1)初始化。

系統初始化 在群G0中選擇素數p,使用元素g生成組,在限制域中選N個元素,根據系統屬性生成系統屬性集S=(ω1,ω2,…,ωN),ωi∈Zp,Zp是整數集合。選擇兩個隨機值α,a∈Zp。公共參數pp={e,G0,G1,g1,g2,p}定義雙線性映射e:G0× G0→G1。數據所有者選擇兩個隨機數μ、η,計算公鑰PK={g,gμ},g是群G0的生成元。

AA 初始化 假定有x個屬性機構p{A1,A2,…,Ax},每個屬性機構管理一類屬性集合,Ai運行初始化算法把公共參數pp作為輸入,得到每個屬性機構的公私鑰對。屬性機構保存密鑰,公布公鑰。

2)用戶注冊。

用戶向系統提出注冊申請,獲得與用戶身份相對應的身份標識和屬性集是系統屬性集合,ωi是屬性。用戶提交{ID,r*p}給密鑰服務商,其中代表用戶身份。密鑰服務商驗證ID的有效性,如果有效,則運行密鑰生成算法QID=H2(ID,r*p),SID=a*QID=a*H2(ID,r*p),并把私鑰SID通過安全通道發送給用戶。簽名公鑰pksig=QID=H2(ID,r*p),私鑰sksig=(SID,r*)=(a*QID,r*)。在該方案中,用戶的公鑰不是真實身份,而是由隨機值生成的隨機化的身份散列,這就隱藏了簽名者的身份。通過密鑰生成算法,用戶可以通過選擇不同的隨機值{ai*}生成不同的密鑰對,以此建立了用戶身份和用戶錢包地址之間的連接。錢包密鑰對的生成如圖2。

圖2 錢包密鑰對生成Fig.2 Wallet key pair generation

3)交易產生及簽名。

4)加密。

(m,(M,ρ),pp) →Cw。數據擁有者運行加密算法,輸入公共參數pp、訪問控制策略(M,ρ)和交易信息m,得到交易密文Cw。

5)密鑰生成。

(ID,Su,SKi) →USKuid:用戶向AA 提交申請,AA 根據用戶標識符ID、用戶屬性集Su∈S和主密鑰生成私鑰構件USKuid。用戶拿到所有AA 生成的私鑰構件,計算自己的私鑰SKT。

6)解密。

(UID,PK,Cw,SKT) →m:算法由數據使用者執行。該算法將用戶身份UID、公共參數pp、密文Cw和用戶生成的密鑰SKT作為輸入。當訪問策略滿足時,輸出交易明文m;否則輸出為空。

7)監管。

若對交易信息有異議,授權監管節點希望驗證用戶身份,它將通過輸入授權屬性密鑰和密文運行解密算法對交易信息解密,該算法返回一個身份ID',監管節點通過計算pk=并把它和錢包地址pkai比較驗證身份:如果相等,則ID'=IDA,A 是誠實用戶;否則,監管節點向密鑰提供商發送請求以得到用戶的真實身份A,并把錢包地址IDA添加到黑名單。

4 方案分析與比較

4.1 安全模型

CP-ABE 方案的安全模型與基于身份加密(Identity-Based Encryption,IBE)方案類似,允許敵手對任意的密鑰(不包括能夠解密挑戰密文的密鑰)進行逆向詢問。敵手會選擇挑戰一個滿足訪問結構p*的密文,并能對任何不滿足p*的屬性集合S*進行密文詢問。CP-ABE 方案的選擇明文攻擊下的不可區分游戲(記為IND-CP-ABE-CPA 游戲)如下:

1)初始化。由挑戰者運行,產生系統參數params并將它發送給敵手。

2)階段1。敵手發出對屬性集合S*的密鑰產生詢問。挑戰者運行密鑰產生算法,產生與S*對應的密鑰SK*,并發送給敵手,這個過程可以進行多項式有界次問詢。

3)挑戰。敵手提交兩個長度相等的消息m0和m1。此外,敵手選定一個想要挑戰的訪問結構p*,其中敵手在階段1中詢問過的屬性集合均不能滿足此訪問結構。挑戰者選擇隨機數b∈{0,1},并以p*加密mb將密文給敵手。

4)階段2。敵手發出對屬性集合S*的密鑰產生詢問,唯一的限制是這些S*均不能滿足挑戰階段的訪問結構p*。挑戰者以階段1 中的方式進行回應,這個詢問過程可進行多項式有界次。

5)猜測。敵手輸出猜測b' ∈{0,1},如果b'=b,則敵手攻擊成功。

4.2 安全分析

以下將證明在隨機預言模型下,本文方案是安全的。

定理1基于DBDH 假設,如果本文方案可以抵抗選擇明文攻擊(Chosen Plaintext Attack,CPA),則本文方案是CPA安全的。

證明 假設一個概率多項式時間,敵手可以利用優勢?攻擊。證明以下DBDH 游戲可以被敵手A 以優勢攻擊。e:G0× G0→G1是雙線性映射,其中G 是生成元為g、階為p的循環群。挑戰者隨機選擇a,b,c,z∈Zp,u∈{0,1}:如果u=0,(g,A,B,C,Z)=(g,ga,gb,gc,e(g,g)abc);如 果u=1,(g,A,B,C,Z)=(g,ga,gb,gc,e(g,g)z)。

初始化 敵手至少控制兩個授權權限,挑戰者控制其余權限。敵手確認了LSSS 訪問結構的挑戰。挑戰者隨機選擇a=ξ,b=ψ,c=ζ,且隨機數ξ,ψ,ζ∈Zp,并 把Y:e(A,B)=e(g,g)ab發給敵手。

階段1 敵手根據屬性集要求提供許多他想要的私鑰,但這些私鑰不滿足訪問結構。在收到身份為RID 的敵手的私鑰請求時,挑戰者隨機選擇βRID,k∈Zp并計算每個屬性k∈S的私鑰組件

階段2 重復階段1。

猜測 敵手提交的猜想θ',當θ=θ'時,如果θ=0,代表挑戰者的模擬器將輸出(g,ga,gb,gc,e(g,g)abc),否則輸出DBDH 數組(g,ga,gb,gc,e(g,g)z)。如果θ=1,敵手無法獲得有用信息,他的優勢Pr=;當θ=0,他的優勢是Pr=所以在DBDH 游戲中,敵手的概率多項式時間如果游戲中的多項式時間是?,敵手不可忽視的優勢是因此基于DBDH 假設,敵手在該安全游戲中沒有優勢,這表示本文方案是安全的。

4.3 隱私保護分析

內容隱私 本文采用基于密文策略的屬性基加密技術實現對交易信息的訪問控制,與對稱密碼技術相比,本文技術更加安全。在交易密文生成后,只有屬性滿足訪問策略的用戶才能解密交易數據,杜絕了區塊鏈賬本對所有節點公開所帶來的一系列安全問題。在解密私鑰生成的過程中,引入了用戶標識符,限制解密密鑰只能單一用戶使用,因此,即使想串通,屬性不滿足訪問結構的用戶也不能解密交易信息。所以本文方案對內容隱私的保護是合格且安全的。

身份隱私 本文使用新的簽名算法代替橢圓曲線簽名生成錢包密鑰對。用戶的公鑰不是真實身份,而是由隨機值生成的隨機化的身份散列。通過密鑰生成算法,用戶可以通過選擇不同的隨機值生成不同的密鑰對。只有監管節點在得到屬性密鑰授權的情況下才可以得到用戶的真實身份,如果用戶非法才能揭露其身份。

4.4 方案比較

文獻[14]中提出了一種基于聚合簽名的區塊鏈簽名方案,當事務有n個輸入地址和m個輸出地址時,簽名數可以從n減少到1,接收方的身份隱私得到有效保護,但交易金額是公開的,同時沒有監管功能。文獻[15]中使用環簽名的匿名性確保區塊鏈應用中的數據安全和用戶身份隱私。文獻[16]中提出使用屬性基加密的方案,把解密密鑰分為兩部分,一部分放到DO,一部分放到屬性機構,這分散了屬性機構的權力,防止屬性機構間的合謀但并沒有設計監管功能。文獻[17]中使用公鑰密碼實現可搜索關鍵字的區塊鏈檢索隱私保護機制,讓DO 在什么都不知道的情況下驗證檢索請求中的關鍵字授權,但該方案不涉及防合謀和不可連接。從表2 可以看出,本文使用多屬性機構的屬性基加密方案實現了區塊鏈數據的隱藏,同時防止了用戶間合謀。修改后的簽名算法能在有效保護用戶身份隱私的同時實現用戶可追蹤,保證了鏈上交易安全。

表2 本文方案與其他隱私保護方案比較Tab.2 Comparison of proposed scheme and other privacy protection schemes

5 實驗驗證

在Ubuntu18.04 系統中搭建了Hypeledger Fabric 實驗環境,在CPU 為Intel Core i7-7500U@3.5 GHz 的電腦上運行。

圖3 顯示了運行密鑰生成算法和加密所產生的密鑰生成時間和加密時間的測量結果。該實現基于512 位有限域上的超奇異橢圓曲線y2=x3+x的160 位橢圓曲線組。在測試環境中,PBC 庫可以在大約5.5 ms 內計算配對,G0和G1的求冪分別需要大約6.4 ms 和0.6 ms。隨機選擇元素也是一項重要的操作,G0需要16 ms,G1需要1.6 ms。

圖3 密鑰生成和加密所需時間Fig.3 Time required for key generation and encryption

從圖3 中可以看出:密鑰生成所需時間與它所包含的密鑰相關的屬性數幾乎是線性的;加密鏈上數據的時間與訪問策略中葉子節點數幾乎是完全線性的。內部節點的運算相當于適度的乘法運算,不會顯著增加運行時間。即使對于更大的問題實例,這兩種方法仍然可行。

現存的區塊鏈隱私保護方案大多存在設計臃腫、開銷大和實用性低等問題。為了驗證所提方案在區塊鏈應用中的可行性,將本文方案設計的加密和簽名方案加入本地搭建的私鏈中進行仿真實驗。實驗主要對比區塊生成速度,因區塊生成過程包含交易生成、驗證、數據上鏈等過程,所以鏈中塊的生成速度是區塊鏈隱私保護方案效率的直觀體現。圖4給出本文方案與文獻[15,17]方案在生成相同區塊數時所花費的時間對比。從圖4 可以看出,相較于文獻[15,17]方案,本文方案在生成相同區塊數時時間更少,效率更高,證明了所提方案具有可行性。

圖4 區塊生成時間對比Fig.4 Comparison of block generation time

6 結語

由于使用區塊鏈技術存儲交易信息的全球賬本對加入區塊鏈網絡的任何節點開放,帶來的安全性問題阻礙了區塊鏈的推廣,區塊鏈的隱私保護受到了許多關注。隨著區塊鏈的應用越來越廣泛,復雜程度也在增加,區塊鏈和屬性基加密結合很有必要。本文利用MA-ABE 實現對鏈上數據的訪問控制和交易隱私保護,利用修改后的IBS 方案建立用戶身份與錢包地址之間的鏈接,以此來實現對用戶的監管。相較于文獻[13]方案,解除了單一屬性機構必須完全可信的限制,并防止了用戶間合謀訪問無權訪問的數據。在隱私保護的同時引入監管機制,在檢測到非法交易時,把用戶錢包地址拉入黑名單,這將大幅降低非法交易的可能。最后經過安全分析和實驗驗證,證明了所提方案的安全性和有效性。

猜你喜歡
敵手私鑰密鑰
探索企業創新密鑰
清掃機器人避障系統區塊鏈私鑰分片存儲方法
比特幣的安全性到底有多高
基于改進ECC 算法的網絡信息私鑰變換優化方法
密碼系統中密鑰的狀態與保護*
不帶著怒氣做任何事
一種基于虛擬私鑰的OpenSSL與CSP交互方案
一種對稱密鑰的密鑰管理方法及系統
基于ECC的智能家居密鑰管理機制的實現
不帶著怒氣作戰
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合