?

基于秘密分割的區塊鏈安全數據共享模型

2023-12-29 12:23王瑞民吳佳璇張建輝
關鍵詞:分片全網門限

王瑞民,吳佳璇,張建輝

(1. 鄭州大學 計算機與人工智能學院,鄭州 450001;2. 鄭州大學 網絡空間安全學院,鄭州 450002)

0 引 言

如何保障數據的秘密性和完整性等安全問題是數據共享面臨的瓶頸問題之一。傳統數據共享模型要求數據擁有者將共享數據全部存儲于中介機構的數據庫[1],如Sharemind[2]。數據需求者只能通過中介機構使用數據。中介機構如果復制、轉賣、留存共享數據[3],可能導致數據泄露。另外,一旦發生單點故障,還可能造成數據不可用的嚴重后果。

區塊鏈是由多方共同維護的分布式記賬技術,利用加密鏈式區塊結構驗證和存儲數據,自動化腳本代碼(智能合約)編程和操作數據[4-5]。它不依賴于第三方機構,能夠實現無信任關系節點之間的可信通信,其去中心化和防篡改特性有力提升了數據共享的安全性。DataBrokerDAO借助區塊鏈搭建了數據共享平臺,通過專用網關直接聯系數據所有者和數據需求者,推動了數據的安全流通[6]。

Sun等[7]提出了基于區塊鏈的共享服務概念模型,但僅限于區塊鏈和共享服務結合的概念和架構的理論探討;Shafagh等[8]提出的數據共享方案,通過區塊鏈管理云端的敏感數據;薛騰飛等[9]設計了基于區塊鏈的數據分享模型,對不同機構內數據信息進行整合,將數據索引存儲在區塊鏈上,以推動機構間的數據流通,便于各方人員對數據的安全訪問。由于傳統區塊的體積上限設定為1 MByte,且全網節點需同步相同區塊鏈數據,存在大量的數據冗余,增大了各節點的存儲壓力。不少方案選擇數據存儲到鏈下第三方存儲系統(如云[10],星際文件系統(interPlanetary file system,IPFS)[11]和分布式哈希表(distributed Hash table,DHT)[12]),以緩解鏈上節點的存儲壓力,提高區塊鏈的可擴展性,但云存儲方案增加了對中心化機構的依賴性,違背了區塊鏈“去中心化”的初衷。一旦云服務器受到攻擊,將嚴重影響數據真實性。DHT與IPFS方案依靠于分布式存儲系統,系統維護比較困難,存儲節點易出現惡意行為[13]。在鏈上數據的存儲與安全問題上,其中一種方案結合糾刪碼技術對共享數據進行分塊后再用矩陣進行線性變換,分片存儲變換后的數據,可降低鏈上數據的存儲量,且一定的數據冗余能保障數據可用性[14],但是分片后仍存在部分存儲節點存在獲取共享數據的風險;另一種方案則將區塊鏈和代理重加密技術結合,通過代理服務器對數據擁有者共享的數據重加密,保障了數據流通過程的安全性[15],但是代理服務器的選取是一個問題,且單次代理重加密算法存在的時間開銷,在數據需要頻繁共享時顯得力不從心[16]。在數據負載與數據存儲安全2個問題上,不同方案各有取舍,難以兼備安全性和數據低負載。

針對區塊鏈上數據共享模型的數據安全和數據負載問題,提出了一種基于秘密分割的鏈上安全數據共享模型(secret sharing data sharing model,SSDSM)。在保障數據安全存儲的前提下,減少時間開銷的同時,可有效降低單個節點的數據冗余量。

SSDSM整體工作過程分為2部分:數據上傳共享部分和數據讀取恢復部分。數據上傳共享部分利用秘密分割算法,對共享數據進行分割,并將分片數據分發到不同節點組內同步上鏈;數據讀取恢復部分,需求方向多個節點組請求目標分片數據,在獲取到滿足門限數量的不同分片數據時,利用秘密分割算法進行數據恢復。

1 數據上傳共享

1979年,Shamir[17]和Blakley[18]分別提出了秘密分割的概念與應用場景。一個秘密s分成n份子秘密,通過安全信道分發給n個參與者,每一個參與者僅知道自己的子秘密而不知道其他參與者的子秘密?;謴蛃須要t個或者t個以上的參與者聯合,而少于t個參與者無法恢復[19],即滿足確定閾值數量的子秘密即可重構秘密,此方案為(t,n)門限秘密分割方案[20]。該方案廣泛應用于安全多方計算和訪問控制等領域。

Asmuth-Bloom法[21]是一種基于中國剩余定理(Chinese remainder theorem, CRT)提出的秘密分割方案。對于一個秘密s,設

d1

(1)

(di,dj)=1,i≠j

(2)

d1×d2×…×dt>s>dn-t+2×dn-t+3×…×dn

(3)

(1)—(3)式中,t為秘密分割方案的門限;n為子秘密數量;di為互不相等的整數。

對秘密s進行計算

(4)

(4)式中:ki為求模的余數;(ki,di)為生成的子秘密。

設上傳的待分割數據編碼為十進制的正數D。首先隨機生成滿足長度要求的大數,進行素性檢驗,通過則留下,否則重復此步驟,直到生成滿足(3)式的n個兩兩互素的大數,并形成列表Prime_list。然后根據(4)式計算D的余數結果并組成列表remainder_list,最后返回分片數據列表。具體算法過程如算法1所示。

算法1數據分割算法

輸入:待分割數據D,(threshold,amount)

輸出:分片數據列表[remainder_list, prime_list]

length ← len(D) // threshold + 1

prime_list = list

remainder_list = list

for i = 0,1,…,n-1 do

while True

prime = Random(length)

if Prime_testing(prime)==True then

remainder = Data mod prime

add prime to prime_list

add remainder to remainder_list

break

end if

end for

return list[remainder_list, prime_list]

2 數據讀取恢復

需求方僅同步所在節點組管理的一份分片數據,因此,需向其他節點組請求數據進行恢復。當請求到的分片數據數量不少于門限t時,需求方可對分片數據進行數據恢復獲得源數據。

假設已有t個分片數據,則

(5)

(6)

(5)—(6)式中,S則為恢復后的秘密。

具體算法過程如算法2所示。獲取的remainder和prime集合為2個列表remainder_list和prime_list,其中,div_result為計算(6)式中間值所生成的列表,根據(6)式計算累和值data,求模并重新編碼后返回源數據D。

算法2源數據恢復算法

輸入:不少于門限(threshold)數量的分片數據[remainder, prime]

輸出:源數據D

Prime_list ←

all prime of [remainder, prime]

Remainder_list ←

all remainder of [remainder, prime]

Product ← 1

for i = 0,1,…,threshold do

Product *= Prime_list[i]

end for

M_list ← div_result(Prime_list)

inverse_list ←

mod_inverse(M_list, Prime_list)

data ← 0

for i = 0,1,…,threshold do

data = data + M_list[i] *

inverse_list[i] * inverse_list[i]

end for

D ←decode(data % Product)

return D

3 SSDSM框架與工作流程

廣義上,區塊鏈技術是一種以鏈式區塊存儲數據,通過共識算法驗證和更新全網節點數據,利用智能合約操作數據的去中心化基礎架構和分布式計算范式[22-23]。區塊體存儲交易記錄,區塊頭存儲前一區塊地址和時間戳等信息以及由交易記錄構成的Merkle樹樹根。節點通過共識算法競爭區塊的記賬權,成功節點有權生成新區塊,將更新后的區塊鏈全網廣播,所有節點對區塊鏈數據進行驗證后更新自己的區塊鏈,直到全網存儲相同的區塊鏈。傳統區塊鏈的網絡架構如圖1所示。

圖1 傳統區塊鏈網絡結構Fig.1 Traditional blockchain network structure

為了適用數據共享場景下的應用,首先對網絡結構進行了改進,如圖2所示。SSDSM對每個節點隨機生成唯一標識該節點的地址,根據(t,n)門限方案,將全網節點按地址模n的值劃分成n個節點組(n≤全網節點總數),每一個節點組管理一條由分片數據形成的區塊鏈。

圖2 SSDSM網絡結構Fig.2 Network structure of SSDSM

基于傳統區塊體數據結構,SSDSM設計了一種適合秘密分割算法和數據共享場景應用的區塊體結構,如圖3所示。一個區塊記錄一份共享數據,區塊體包含門限、節點地址、分片數據和數據說明等4項信息,以此構造Merkle樹,并將Merkle樹根記錄在區塊頭中,用于進行區塊體數據校驗。與傳統區塊頭信息相比,SSDSM額外增加了全文Hash和節點組編號。全文Hash為源數據的Hash值,用于索引不同節點組中目標數據,恢復數據時,利用全文Hash進行數據校驗。節點組編號標識該區塊所在的節點組,如果獲取的分片數據存在問題,可根據編號標識進行追溯。

圖3 SSDSM區塊數據結構Fig.3 SSDSM block data structure

SSDSM整體流程如下。

1)數據上傳共享具體流程。

步驟1新節點申請加入網絡,SSDSM隨機生成唯一標識該節點的地址與相關信息,根據地址模n的值,將新節點并入節點組,同步所在組維護的區塊鏈信息。

步驟2節點上傳共享數據以及相關信息。

步驟3SSDSM根據CRT算法(算法1)將共享數據分割成n份,將n份分片數據分發至n個節點組。該過程具體實例如表1所示,其中,待分割數據由源數據編碼而成。

步驟4各節點組進行數據驗證后生成區塊,節點組內同步更新數據鏈。

步驟5全網數據鏈成功更新,數據成功上鏈。

2)數據讀取恢復具體流程。

步驟1需求方遍歷本地存儲的區塊鏈,根據區塊內數據描述尋找目標數據。

步驟2確定目標數據的全文Hash和門限t(1

步驟3驗證接收的所有分片數據,若存在未通過驗證的分片數據,進行追溯并向其他節點組請求。

步驟4SSDSM基于CRT算法(算法2)對目標數據進行數據恢復。該過程具體實例如表2所示,其中,分片數據為表1中隨機選取結果,數據恢復結果進行解碼后可得源數據。

步驟5成功恢復數據后利用全文Hash對目標數據進行校驗。校驗通過,則成功獲取目標數據;否則返回步驟2,重新請求。

表1 數據上傳共享實例Tab.1 Data upload shared instance

表2 數據讀取恢復實例Tab.2 Data read recovery instance

4 實驗與分析

實驗在配置為Intel(R) Core(TM) i5-6200U 2.30 GHz的CPU和4 GByte內存的PC上進行,自行搭建區塊鏈環境,編程語言為python。

在本地開啟不同端口模擬區塊鏈網絡中不同的共識節點,每個節點運行相同的區塊鏈代碼。當有節點申請進行共享數據時,SSDSM基于中國剩余定理(Chinese remainder theorem,CRT)算法進行數據分割并分發分片數據,各節點組內進行一次挖礦,生成區塊鏈接到各節點組內維護的區塊鏈上,作為一次數據共享流程。節點獲取目標數據至少t個分片數據,SSDSM基于CRT算法進行目標數據恢復,作為一次數據恢復的流程。由于環境限制,實驗僅創建了少量節點用以對模型整體流程進行模擬,確保模型的可用性。

實驗重點測試SSDSM在數據共享流程和數據恢復流程中的時間開銷以及單節點數據冗余量的變化,因此,實驗中共識算法以簡化后的工作量證明(PoW)代替,且結果未計入通信開銷。在門限方案的設計上,全網節點組數從n=10開始,分5次均勻遞增至n=50,共測試了5種不同方案。

4.1 實驗結果與分析

測試文件為隨機生成的“.txt”文檔,將其轉化成十進制大數(1 000位以上)用于測試(若低于1 000位,為了統一,對其進行填充)。測試相同的文件,使用不同的門限方案進行數據分割和數據恢復的時間開銷,以及單節點數據冗余量的變化。每個方案進行50次測試,最后取平均值記錄,實驗結果如圖4所示。

圖4 不同門限方案下各參數測試情況Fig.4 Test conditions of each parameter under different threshold schemes

圖4a為不同(t,n)門限方案下對同一文件進行分割的時間開銷測試結果:①n為定值,當t增大時,數據處理的時間開銷逐漸降低;②t為定值,當n增大時,數據處理的時間開銷隨之增加;③當t,n同時增加時,門限方案的時間開銷呈下降趨勢。

當分片數量滿足恢復數據的門限要求時,圖4b反映了節點恢復目標數據的時間開銷,門限值占比為t/n。不同的門限方案中,門限值的變化對數據恢復的時間開銷影響并不明顯,且所有門限下數據恢復的時間開銷都穩定在0.01 s以下。

傳統區塊鏈全網節點存儲同一數據,設該情況下的單個節點數據冗余量為100%。圖4c反映了不同門限方案下單個節點的數據冗余量變化情況。隨著門限值的增大,單節點數據冗余量減少,并漸趨平緩。而單節點數據冗余量和全網節點組數無關,僅隨門限值變化。當t>10時,單個節點數據冗余量可降低至20%以下,在保障有一定冗余可恢復源數據的前提下,極大減輕單個節點的數據存儲壓力。

在完整的數據共享與恢復過程中,SSDSM處理共享數據后分發分片數據到各節點組并上鏈,而后多個需求方可同時申請多個分片數據進行源數據恢復。數據共享階段在門限值較高情況下存在一定時間開銷,但數據恢復階段的時間開銷極小,適用于大數據共享場景。

4.2 性能評估

1)數據安全性。區塊頭存儲區塊體的Merkle樹根,且區塊間依賴哈希進行鏈接。在需求方得到目標數據后,通過區塊鏈上存儲的全文Hash對目標數據進行驗證,保障了數據的完整性。

SSDSM中所有節點均存儲了分片數據,需求方對各節點組請求數據過程中,即使部分節點發生故障無法回應,只要t個不同組存在節點正常工作,需求方仍可以向其他節點請求數據,根據秘密分割方案的特點,需求方只需獲取大于等于門限值t份不同的分片數據,即可恢復目標數據??捎眯杂兴U?。

在機密性方面,SSDSM中,秘密分割方案保證單個節點無法獲得共享數據的相關信息,僅獲取足夠分片數據的需求方可以得到共享數據,保障了存儲數據的機密性。

在抗攻擊性方面,SSDSM的冗余機制具有健壯性,能容忍部分節點的分片數據損壞、丟失,問題節點仍可以通過同步節點組內其他節點存儲的區塊鏈進行修復更新。

假定存在惡意節點,篡改了區塊中的數據。需求方收到分片數據后先對其進行逐一校驗,根據分片數據中Merkle根來鑒別區塊體內的數據是否被篡改。一旦某一份分片數據被篡改,可根據該分片數據區塊頭中節點組編號確認其所在的分組,并向該節點組內其他節點或其他組內節點申請分片數據并再次驗證。直到所有分片數據均通過校驗后方可恢復數據。利用全文Hash再進行校驗最終確認,如果沒有通過校驗,需求方仍可向不同節點申請數據。

假設攻擊者成功攻破單個節點,攻擊者在消耗存儲空間下載該節點存儲的區塊鏈信息前提下,仍無法獲得任意共享數據的完整內容。假設攻擊者控制多個節點,在SSDSM中,新加入網絡的節點根據隨機生成的唯一地址決定所在的節點組,在最差的情況下,攻擊者僅生成t個節點即可加入不同的節點組并同步組內數據,利用(t,n)門限方案進行數據恢復,從而獲得全網的共享數據。最優的情況下,是控制全網t/n的節點才可以獲得全網的數據。一般情況下有

(7)

(7)式中:T為攻擊者需生成的節點數量,即攻擊者至少生成T個節點可得到t個節點組內的共享數據信息。

考慮實際數據共享場景下,全網共享數據的數據量極大,且不同門限方案中,單節點數據冗余量與門限值兩者為非線性關系。以(15,20)門限方案為例,該方案下單個節點數據冗余量為13.5%,若攻擊者創建15個節點并成功加入15個不同節點組,為獲取全網共享數據,攻擊者需存儲數據冗余量高達202.5%的數據,存儲代價大。

2)算法性能。數據處理過程中的時間開銷主要為生成滿足(3)式的n個素數,由于轉為十進制的共享數據為大數,因此,需要保證t個素數的位數和不小于共享數據的位數。SSDSM根據共享數據大小,生成指定位數的隨機數并進行素性檢驗,素性檢驗采用Miller-Rabin方法的時間復雜度為O(logm)。

隨著待檢驗數的位數增加,時間開銷隨之增加。n決定生成素數的個數,時間開銷為單次素性檢驗的n倍;t決定素數的位數,t增加時,生成素數的位數變小,因此,時間開銷減少。

數據恢復過程中,在獲取t個分片數據情況下,依照 (5)式、(6)式計算即可,且求模逆的算法時間復雜度為O(logP) (P為(6)式中di)。在應用相同測試數據的前提下,所有測試門限方案的數據恢復時間開銷均保持在0.01 s以下,效率很高且穩定。SSDSM整體算法的性能表現更適合應用于一次處理多次恢復的數據共享環境。

3)單個節點數據冗余量。傳統區塊鏈要求每個節點均要同步相同數據,而SSDSM中通過(t,n)門限方案對共享數據進行分割,此時有

(8)

(9)

(8)—(9)式中:C為全網節點數;d為一份共享數據的數據量;ξall為除共享數據外的其他數據量;ξone為單條區塊鏈中除共享數據外的其他數據量;Dall為該門限方案下全網的數據量;Done為該門限方案下單條鏈的數據量。以傳統區塊鏈(此時Dall=(C×d)+ξall,Done=d+ξone)作為標準值進行比較分析,隨著t的增大,全網的數據量和單條區塊鏈數據量有效降低,減小了單個節點的存儲壓力,見圖4c。

4.3 與其他數據共享方案比較

SSDSM應用(15,20)門限方案與其他類型的數據共享模型算法比較,從機密性、數據處理和恢復開銷以及單節點數據冗余量多方面進行分析比較,算法測試均采用相同數據。結果如表3所示。

表3 與其他模型的參數比較結果Tab.3 Results are compared with those of other models

傳統區塊鏈所有節點存儲相同鏈數據,可直接讀取,未對區塊體內存放數據進行加密處理。以傳統區塊鏈單節點數據冗余量為100%作為標準值比較,文獻[14]利用糾刪碼降低節點數據冗余量,通過矩陣變換數據,各節點存儲部分數據,該算法下節點數據冗余量降低至20%且運算時間開銷極低,但部分節點仍可獲得源數據部分信息,未對機密性進行改進;文獻[15]對區塊鏈上存儲的數據對稱加密,通過非對稱加密其對稱密鑰,引入代理重加密算法,保障數據機密性,但是每一次數據恢復時間開銷較大,且對稱加密計算下節點數據冗余量大于100%。SSDSM采用基于CRT的秘密分割算法,各節點僅存儲分片數據,無法獲得共享數據的相關信息,在保障了數據機密性的同時,也提供了共享數據的冗余備份,具備抗攻擊能力。而在數據處理和數據恢復上保障了較低的時間開銷,在數據需要頻繁共享的情況下,仍能保持運行效率,同時單個節點數據冗余量在該門限方案下低至13.5%,相較其他的數據共享方案達到了較低的數據負載。綜上分析,與其他數據共享方案相比,兼備安全性和低數據負載的SSDSM 更加適合數據共享環境。

5 總結與展望

近些年來,脫胎于比特幣的區塊鏈技術發展迅速,其去中心化、不可篡改和可編程的特點在數據共享領域方面有廣泛的應用前景?;诿孛芊指畹膮^塊鏈數據共享模型,全網節點進行分組,利用Asmuth-Bloom法的秘密分割方案將共享數據分割成多份分別分發給各節點組存儲,需要時從多于門限的數值分組獲取數據進行恢復。

SSDSM在保障源數據安全的前提下降低了全網的冗余量,實驗結果表明,隨著門限的提升,數據分割的時間開銷逐漸降低且各節點存儲的數據量逐漸下降,而數據恢復的時間開銷保持較低水平。綜合看,該模型能較好地適應數據共享場景。

SSDSM仍需要進一步完善,如是否讓分割時生成的素數由各節點組進行生成,效率更高更安全;對每一個節點組的數據需要訪問控制機制來限制任意節點的訪問,否則惡意節點也可以進行數據的恢復;在區塊鏈網絡中使用更高效的共識算法等。下一步會繼續研究以上內容,以便該模型更好地適應更多場景并保障其數據的安全性。

猜你喜歡
分片全網門限
上下分片與詞的時空佈局
基于規則的HEV邏輯門限控制策略
地方債對經濟增長的門限效應及地區差異研究
《唐宮夜宴》火遍全網的背后
分片光滑邊值問題的再生核方法
CDN存量MP4視頻播放優化方法
雙十一帶貨6500萬,他憑什么?——靠一句“把價格打下來”,牛肉哥火遍全網
隨機失效門限下指數退化軌道模型的分析與應用
基于模糊二分查找的幀分片算法設計與實現
電力系統全網一體化暫態仿真接口技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合