王瑞民,吳佳璇,張建輝
(1. 鄭州大學 計算機與人工智能學院,鄭州 450001;2. 鄭州大學 網(wǎng)絡(luò)空間安全學院,鄭州 450002)
如何保障數(shù)據(jù)的秘密性和完整性等安全問題是數(shù)據(jù)共享面臨的瓶頸問題之一。傳統(tǒng)數(shù)據(jù)共享模型要求數(shù)據(jù)擁有者將共享數(shù)據(jù)全部存儲于中介機構(gòu)的數(shù)據(jù)庫[1],如Sharemind[2]。數(shù)據(jù)需求者只能通過中介機構(gòu)使用數(shù)據(jù)。中介機構(gòu)如果復(fù)制、轉(zhuǎn)賣、留存共享數(shù)據(jù)[3],可能導(dǎo)致數(shù)據(jù)泄露。另外,一旦發(fā)生單點故障,還可能造成數(shù)據(jù)不可用的嚴重后果。
區(qū)塊鏈是由多方共同維護的分布式記賬技術(shù),利用加密鏈式區(qū)塊結(jié)構(gòu)驗證和存儲數(shù)據(jù),自動化腳本代碼(智能合約)編程和操作數(shù)據(jù)[4-5]。它不依賴于第三方機構(gòu),能夠?qū)崿F(xiàn)無信任關(guān)系節(jié)點之間的可信通信,其去中心化和防篡改特性有力提升了數(shù)據(jù)共享的安全性。DataBrokerDAO借助區(qū)塊鏈搭建了數(shù)據(jù)共享平臺,通過專用網(wǎng)關(guān)直接聯(lián)系數(shù)據(jù)所有者和數(shù)據(jù)需求者,推動了數(shù)據(jù)的安全流通[6]。
Sun等[7]提出了基于區(qū)塊鏈的共享服務(wù)概念模型,但僅限于區(qū)塊鏈和共享服務(wù)結(jié)合的概念和架構(gòu)的理論探討;Shafagh等[8]提出的數(shù)據(jù)共享方案,通過區(qū)塊鏈管理云端的敏感數(shù)據(jù);薛騰飛等[9]設(shè)計了基于區(qū)塊鏈的數(shù)據(jù)分享模型,對不同機構(gòu)內(nèi)數(shù)據(jù)信息進行整合,將數(shù)據(jù)索引存儲在區(qū)塊鏈上,以推動機構(gòu)間的數(shù)據(jù)流通,便于各方人員對數(shù)據(jù)的安全訪問。由于傳統(tǒng)區(qū)塊的體積上限設(shè)定為1 MByte,且全網(wǎng)節(jié)點需同步相同區(qū)塊鏈數(shù)據(jù),存在大量的數(shù)據(jù)冗余,增大了各節(jié)點的存儲壓力。不少方案選擇數(shù)據(jù)存儲到鏈下第三方存儲系統(tǒng)(如云[10],星際文件系統(tǒng)(interPlanetary file system,IPFS)[11]和分布式哈希表(distributed Hash table,DHT)[12]),以緩解鏈上節(jié)點的存儲壓力,提高區(qū)塊鏈的可擴展性,但云存儲方案增加了對中心化機構(gòu)的依賴性,違背了區(qū)塊鏈“去中心化”的初衷。一旦云服務(wù)器受到攻擊,將嚴重影響數(shù)據(jù)真實性。DHT與IPFS方案依靠于分布式存儲系統(tǒng),系統(tǒng)維護比較困難,存儲節(jié)點易出現(xiàn)惡意行為[13]。在鏈上數(shù)據(jù)的存儲與安全問題上,其中一種方案結(jié)合糾刪碼技術(shù)對共享數(shù)據(jù)進行分塊后再用矩陣進行線性變換,分片存儲變換后的數(shù)據(jù),可降低鏈上數(shù)據(jù)的存儲量,且一定的數(shù)據(jù)冗余能保障數(shù)據(jù)可用性[14],但是分片后仍存在部分存儲節(jié)點存在獲取共享數(shù)據(jù)的風險;另一種方案則將區(qū)塊鏈和代理重加密技術(shù)結(jié)合,通過代理服務(wù)器對數(shù)據(jù)擁有者共享的數(shù)據(jù)重加密,保障了數(shù)據(jù)流通過程的安全性[15],但是代理服務(wù)器的選取是一個問題,且單次代理重加密算法存在的時間開銷,在數(shù)據(jù)需要頻繁共享時顯得力不從心[16]。在數(shù)據(jù)負載與數(shù)據(jù)存儲安全2個問題上,不同方案各有取舍,難以兼?zhèn)浒踩院蛿?shù)據(jù)低負載。
針對區(qū)塊鏈上數(shù)據(jù)共享模型的數(shù)據(jù)安全和數(shù)據(jù)負載問題,提出了一種基于秘密分割的鏈上安全數(shù)據(jù)共享模型(secret sharing data sharing model,SSDSM)。在保障數(shù)據(jù)安全存儲的前提下,減少時間開銷的同時,可有效降低單個節(jié)點的數(shù)據(jù)冗余量。
SSDSM整體工作過程分為2部分:數(shù)據(jù)上傳共享部分和數(shù)據(jù)讀取恢復(fù)部分。數(shù)據(jù)上傳共享部分利用秘密分割算法,對共享數(shù)據(jù)進行分割,并將分片數(shù)據(jù)分發(fā)到不同節(jié)點組內(nèi)同步上鏈;數(shù)據(jù)讀取恢復(fù)部分,需求方向多個節(jié)點組請求目標分片數(shù)據(jù),在獲取到滿足門限數(shù)量的不同分片數(shù)據(jù)時,利用秘密分割算法進行數(shù)據(jù)恢復(fù)。
1979年,Shamir[17]和Blakley[18]分別提出了秘密分割的概念與應(yīng)用場景。一個秘密s分成n份子秘密,通過安全信道分發(fā)給n個參與者,每一個參與者僅知道自己的子秘密而不知道其他參與者的子秘密?;謴?fù)s須要t個或者t個以上的參與者聯(lián)合,而少于t個參與者無法恢復(fù)[19],即滿足確定閾值數(shù)量的子秘密即可重構(gòu)秘密,此方案為(t,n)門限秘密分割方案[20]。該方案廣泛應(yīng)用于安全多方計算和訪問控制等領(lǐng)域。
Asmuth-Bloom法[21]是一種基于中國剩余定理(Chinese remainder theorem, CRT)提出的秘密分割方案。對于一個秘密s,設(shè)
d1 (1) (di,dj)=1,i≠j (2) d1×d2×…×dt>s>dn-t+2×dn-t+3×…×dn (3) (1)—(3)式中,t為秘密分割方案的門限;n為子秘密數(shù)量;di為互不相等的整數(shù)。 對秘密s進行計算 (4) (4)式中:ki為求模的余數(shù);(ki,di)為生成的子秘密。 設(shè)上傳的待分割數(shù)據(jù)編碼為十進制的正數(shù)D。首先隨機生成滿足長度要求的大數(shù),進行素性檢驗,通過則留下,否則重復(fù)此步驟,直到生成滿足(3)式的n個兩兩互素的大數(shù),并形成列表Prime_list。然后根據(jù)(4)式計算D的余數(shù)結(jié)果并組成列表remainder_list,最后返回分片數(shù)據(jù)列表。具體算法過程如算法1所示。 算法1數(shù)據(jù)分割算法 輸入:待分割數(shù)據(jù)D,(threshold,amount) 輸出:分片數(shù)據(jù)列表[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] 需求方僅同步所在節(jié)點組管理的一份分片數(shù)據(jù),因此,需向其他節(jié)點組請求數(shù)據(jù)進行恢復(fù)。當請求到的分片數(shù)據(jù)數(shù)量不少于門限t時,需求方可對分片數(shù)據(jù)進行數(shù)據(jù)恢復(fù)獲得源數(shù)據(jù)。 假設(shè)已有t個分片數(shù)據(jù),則 (5) (6) (5)—(6)式中,S則為恢復(fù)后的秘密。 具體算法過程如算法2所示。獲取的remainder和prime集合為2個列表remainder_list和prime_list,其中,div_result為計算(6)式中間值所生成的列表,根據(jù)(6)式計算累和值data,求模并重新編碼后返回源數(shù)據(jù)D。 算法2源數(shù)據(jù)恢復(fù)算法 輸入:不少于門限(threshold)數(shù)量的分片數(shù)據(jù)[remainder, prime] 輸出:源數(shù)據(jù)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 廣義上,區(qū)塊鏈技術(shù)是一種以鏈式區(qū)塊存儲數(shù)據(jù),通過共識算法驗證和更新全網(wǎng)節(jié)點數(shù)據(jù),利用智能合約操作數(shù)據(jù)的去中心化基礎(chǔ)架構(gòu)和分布式計算范式[22-23]。區(qū)塊體存儲交易記錄,區(qū)塊頭存儲前一區(qū)塊地址和時間戳等信息以及由交易記錄構(gòu)成的Merkle樹樹根。節(jié)點通過共識算法競爭區(qū)塊的記賬權(quán),成功節(jié)點有權(quán)生成新區(qū)塊,將更新后的區(qū)塊鏈全網(wǎng)廣播,所有節(jié)點對區(qū)塊鏈數(shù)據(jù)進行驗證后更新自己的區(qū)塊鏈,直到全網(wǎng)存儲相同的區(qū)塊鏈。傳統(tǒng)區(qū)塊鏈的網(wǎng)絡(luò)架構(gòu)如圖1所示。 圖1 傳統(tǒng)區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Traditional blockchain network structure 為了適用數(shù)據(jù)共享場景下的應(yīng)用,首先對網(wǎng)絡(luò)結(jié)構(gòu)進行了改進,如圖2所示。SSDSM對每個節(jié)點隨機生成唯一標識該節(jié)點的地址,根據(jù)(t,n)門限方案,將全網(wǎng)節(jié)點按地址模n的值劃分成n個節(jié)點組(n≤全網(wǎng)節(jié)點總數(shù)),每一個節(jié)點組管理一條由分片數(shù)據(jù)形成的區(qū)塊鏈。 圖2 SSDSM網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of SSDSM 基于傳統(tǒng)區(qū)塊體數(shù)據(jù)結(jié)構(gòu),SSDSM設(shè)計了一種適合秘密分割算法和數(shù)據(jù)共享場景應(yīng)用的區(qū)塊體結(jié)構(gòu),如圖3所示。一個區(qū)塊記錄一份共享數(shù)據(jù),區(qū)塊體包含門限、節(jié)點地址、分片數(shù)據(jù)和數(shù)據(jù)說明等4項信息,以此構(gòu)造Merkle樹,并將Merkle樹根記錄在區(qū)塊頭中,用于進行區(qū)塊體數(shù)據(jù)校驗。與傳統(tǒng)區(qū)塊頭信息相比,SSDSM額外增加了全文Hash和節(jié)點組編號。全文Hash為源數(shù)據(jù)的Hash值,用于索引不同節(jié)點組中目標數(shù)據(jù),恢復(fù)數(shù)據(jù)時,利用全文Hash進行數(shù)據(jù)校驗。節(jié)點組編號標識該區(qū)塊所在的節(jié)點組,如果獲取的分片數(shù)據(jù)存在問題,可根據(jù)編號標識進行追溯。 圖3 SSDSM區(qū)塊數(shù)據(jù)結(jié)構(gòu)Fig.3 SSDSM block data structure SSDSM整體流程如下。 1)數(shù)據(jù)上傳共享具體流程。 步驟1新節(jié)點申請加入網(wǎng)絡(luò),SSDSM隨機生成唯一標識該節(jié)點的地址與相關(guān)信息,根據(jù)地址模n的值,將新節(jié)點并入節(jié)點組,同步所在組維護的區(qū)塊鏈信息。 步驟2節(jié)點上傳共享數(shù)據(jù)以及相關(guān)信息。 步驟3SSDSM根據(jù)CRT算法(算法1)將共享數(shù)據(jù)分割成n份,將n份分片數(shù)據(jù)分發(fā)至n個節(jié)點組。該過程具體實例如表1所示,其中,待分割數(shù)據(jù)由源數(shù)據(jù)編碼而成。 步驟4各節(jié)點組進行數(shù)據(jù)驗證后生成區(qū)塊,節(jié)點組內(nèi)同步更新數(shù)據(jù)鏈。 步驟5全網(wǎng)數(shù)據(jù)鏈成功更新,數(shù)據(jù)成功上鏈。 2)數(shù)據(jù)讀取恢復(fù)具體流程。 步驟1需求方遍歷本地存儲的區(qū)塊鏈,根據(jù)區(qū)塊內(nèi)數(shù)據(jù)描述尋找目標數(shù)據(jù)。 步驟2確定目標數(shù)據(jù)的全文Hash和門限t(1 步驟3驗證接收的所有分片數(shù)據(jù),若存在未通過驗證的分片數(shù)據(jù),進行追溯并向其他節(jié)點組請求。 步驟4SSDSM基于CRT算法(算法2)對目標數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。該過程具體實例如表2所示,其中,分片數(shù)據(jù)為表1中隨機選取結(jié)果,數(shù)據(jù)恢復(fù)結(jié)果進行解碼后可得源數(shù)據(jù)。 步驟5成功恢復(fù)數(shù)據(jù)后利用全文Hash對目標數(shù)據(jù)進行校驗。校驗通過,則成功獲取目標數(shù)據(jù);否則返回步驟2,重新請求。 表1 數(shù)據(jù)上傳共享實例Tab.1 Data upload shared instance 表2 數(shù)據(jù)讀取恢復(fù)實例Tab.2 Data read recovery instance 實驗在配置為Intel(R) Core(TM) i5-6200U 2.30 GHz的CPU和4 GByte內(nèi)存的PC上進行,自行搭建區(qū)塊鏈環(huán)境,編程語言為python。 在本地開啟不同端口模擬區(qū)塊鏈網(wǎng)絡(luò)中不同的共識節(jié)點,每個節(jié)點運行相同的區(qū)塊鏈代碼。當有節(jié)點申請進行共享數(shù)據(jù)時,SSDSM基于中國剩余定理(Chinese remainder theorem,CRT)算法進行數(shù)據(jù)分割并分發(fā)分片數(shù)據(jù),各節(jié)點組內(nèi)進行一次挖礦,生成區(qū)塊鏈接到各節(jié)點組內(nèi)維護的區(qū)塊鏈上,作為一次數(shù)據(jù)共享流程。節(jié)點獲取目標數(shù)據(jù)至少t個分片數(shù)據(jù),SSDSM基于CRT算法進行目標數(shù)據(jù)恢復(fù),作為一次數(shù)據(jù)恢復(fù)的流程。由于環(huán)境限制,實驗僅創(chuàng)建了少量節(jié)點用以對模型整體流程進行模擬,確保模型的可用性。 實驗重點測試SSDSM在數(shù)據(jù)共享流程和數(shù)據(jù)恢復(fù)流程中的時間開銷以及單節(jié)點數(shù)據(jù)冗余量的變化,因此,實驗中共識算法以簡化后的工作量證明(PoW)代替,且結(jié)果未計入通信開銷。在門限方案的設(shè)計上,全網(wǎng)節(jié)點組數(shù)從n=10開始,分5次均勻遞增至n=50,共測試了5種不同方案。 測試文件為隨機生成的“.txt”文檔,將其轉(zhuǎn)化成十進制大數(shù)(1 000位以上)用于測試(若低于1 000位,為了統(tǒng)一,對其進行填充)。測試相同的文件,使用不同的門限方案進行數(shù)據(jù)分割和數(shù)據(jù)恢復(fù)的時間開銷,以及單節(jié)點數(shù)據(jù)冗余量的變化。每個方案進行50次測試,最后取平均值記錄,實驗結(jié)果如圖4所示。 圖4 不同門限方案下各參數(shù)測試情況Fig.4 Test conditions of each parameter under different threshold schemes 圖4a為不同(t,n)門限方案下對同一文件進行分割的時間開銷測試結(jié)果:①n為定值,當t增大時,數(shù)據(jù)處理的時間開銷逐漸降低;②t為定值,當n增大時,數(shù)據(jù)處理的時間開銷隨之增加;③當t,n同時增加時,門限方案的時間開銷呈下降趨勢。 當分片數(shù)量滿足恢復(fù)數(shù)據(jù)的門限要求時,圖4b反映了節(jié)點恢復(fù)目標數(shù)據(jù)的時間開銷,門限值占比為t/n。不同的門限方案中,門限值的變化對數(shù)據(jù)恢復(fù)的時間開銷影響并不明顯,且所有門限下數(shù)據(jù)恢復(fù)的時間開銷都穩(wěn)定在0.01 s以下。 傳統(tǒng)區(qū)塊鏈全網(wǎng)節(jié)點存儲同一數(shù)據(jù),設(shè)該情況下的單個節(jié)點數(shù)據(jù)冗余量為100%。圖4c反映了不同門限方案下單個節(jié)點的數(shù)據(jù)冗余量變化情況。隨著門限值的增大,單節(jié)點數(shù)據(jù)冗余量減少,并漸趨平緩。而單節(jié)點數(shù)據(jù)冗余量和全網(wǎng)節(jié)點組數(shù)無關(guān),僅隨門限值變化。當t>10時,單個節(jié)點數(shù)據(jù)冗余量可降低至20%以下,在保障有一定冗余可恢復(fù)源數(shù)據(jù)的前提下,極大減輕單個節(jié)點的數(shù)據(jù)存儲壓力。 在完整的數(shù)據(jù)共享與恢復(fù)過程中,SSDSM處理共享數(shù)據(jù)后分發(fā)分片數(shù)據(jù)到各節(jié)點組并上鏈,而后多個需求方可同時申請多個分片數(shù)據(jù)進行源數(shù)據(jù)恢復(fù)。數(shù)據(jù)共享階段在門限值較高情況下存在一定時間開銷,但數(shù)據(jù)恢復(fù)階段的時間開銷極小,適用于大數(shù)據(jù)共享場景。 1)數(shù)據(jù)安全性。區(qū)塊頭存儲區(qū)塊體的Merkle樹根,且區(qū)塊間依賴哈希進行鏈接。在需求方得到目標數(shù)據(jù)后,通過區(qū)塊鏈上存儲的全文Hash對目標數(shù)據(jù)進行驗證,保障了數(shù)據(jù)的完整性。 SSDSM中所有節(jié)點均存儲了分片數(shù)據(jù),需求方對各節(jié)點組請求數(shù)據(jù)過程中,即使部分節(jié)點發(fā)生故障無法回應(yīng),只要t個不同組存在節(jié)點正常工作,需求方仍可以向其他節(jié)點請求數(shù)據(jù),根據(jù)秘密分割方案的特點,需求方只需獲取大于等于門限值t份不同的分片數(shù)據(jù),即可恢復(fù)目標數(shù)據(jù)。可用性有所保障。 在機密性方面,SSDSM中,秘密分割方案保證單個節(jié)點無法獲得共享數(shù)據(jù)的相關(guān)信息,僅獲取足夠分片數(shù)據(jù)的需求方可以得到共享數(shù)據(jù),保障了存儲數(shù)據(jù)的機密性。 在抗攻擊性方面,SSDSM的冗余機制具有健壯性,能容忍部分節(jié)點的分片數(shù)據(jù)損壞、丟失,問題節(jié)點仍可以通過同步節(jié)點組內(nèi)其他節(jié)點存儲的區(qū)塊鏈進行修復(fù)更新。 假定存在惡意節(jié)點,篡改了區(qū)塊中的數(shù)據(jù)。需求方收到分片數(shù)據(jù)后先對其進行逐一校驗,根據(jù)分片數(shù)據(jù)中Merkle根來鑒別區(qū)塊體內(nèi)的數(shù)據(jù)是否被篡改。一旦某一份分片數(shù)據(jù)被篡改,可根據(jù)該分片數(shù)據(jù)區(qū)塊頭中節(jié)點組編號確認其所在的分組,并向該節(jié)點組內(nèi)其他節(jié)點或其他組內(nèi)節(jié)點申請分片數(shù)據(jù)并再次驗證。直到所有分片數(shù)據(jù)均通過校驗后方可恢復(fù)數(shù)據(jù)。利用全文Hash再進行校驗最終確認,如果沒有通過校驗,需求方仍可向不同節(jié)點申請數(shù)據(jù)。 假設(shè)攻擊者成功攻破單個節(jié)點,攻擊者在消耗存儲空間下載該節(jié)點存儲的區(qū)塊鏈信息前提下,仍無法獲得任意共享數(shù)據(jù)的完整內(nèi)容。假設(shè)攻擊者控制多個節(jié)點,在SSDSM中,新加入網(wǎng)絡(luò)的節(jié)點根據(jù)隨機生成的唯一地址決定所在的節(jié)點組,在最差的情況下,攻擊者僅生成t個節(jié)點即可加入不同的節(jié)點組并同步組內(nèi)數(shù)據(jù),利用(t,n)門限方案進行數(shù)據(jù)恢復(fù),從而獲得全網(wǎng)的共享數(shù)據(jù)。最優(yōu)的情況下,是控制全網(wǎng)t/n的節(jié)點才可以獲得全網(wǎng)的數(shù)據(jù)。一般情況下有 (7) (7)式中:T為攻擊者需生成的節(jié)點數(shù)量,即攻擊者至少生成T個節(jié)點可得到t個節(jié)點組內(nèi)的共享數(shù)據(jù)信息。 考慮實際數(shù)據(jù)共享場景下,全網(wǎng)共享數(shù)據(jù)的數(shù)據(jù)量極大,且不同門限方案中,單節(jié)點數(shù)據(jù)冗余量與門限值兩者為非線性關(guān)系。以(15,20)門限方案為例,該方案下單個節(jié)點數(shù)據(jù)冗余量為13.5%,若攻擊者創(chuàng)建15個節(jié)點并成功加入15個不同節(jié)點組,為獲取全網(wǎng)共享數(shù)據(jù),攻擊者需存儲數(shù)據(jù)冗余量高達202.5%的數(shù)據(jù),存儲代價大。 2)算法性能。數(shù)據(jù)處理過程中的時間開銷主要為生成滿足(3)式的n個素數(shù),由于轉(zhuǎn)為十進制的共享數(shù)據(jù)為大數(shù),因此,需要保證t個素數(shù)的位數(shù)和不小于共享數(shù)據(jù)的位數(shù)。SSDSM根據(jù)共享數(shù)據(jù)大小,生成指定位數(shù)的隨機數(shù)并進行素性檢驗,素性檢驗采用Miller-Rabin方法的時間復(fù)雜度為O(logm)。 隨著待檢驗數(shù)的位數(shù)增加,時間開銷隨之增加。n決定生成素數(shù)的個數(shù),時間開銷為單次素性檢驗的n倍;t決定素數(shù)的位數(shù),t增加時,生成素數(shù)的位數(shù)變小,因此,時間開銷減少。 數(shù)據(jù)恢復(fù)過程中,在獲取t個分片數(shù)據(jù)情況下,依照 (5)式、(6)式計算即可,且求模逆的算法時間復(fù)雜度為O(logP) (P為(6)式中di)。在應(yīng)用相同測試數(shù)據(jù)的前提下,所有測試門限方案的數(shù)據(jù)恢復(fù)時間開銷均保持在0.01 s以下,效率很高且穩(wěn)定。SSDSM整體算法的性能表現(xiàn)更適合應(yīng)用于一次處理多次恢復(fù)的數(shù)據(jù)共享環(huán)境。 3)單個節(jié)點數(shù)據(jù)冗余量。傳統(tǒng)區(qū)塊鏈要求每個節(jié)點均要同步相同數(shù)據(jù),而SSDSM中通過(t,n)門限方案對共享數(shù)據(jù)進行分割,此時有 (8) (9) (8)—(9)式中:C為全網(wǎng)節(jié)點數(shù);d為一份共享數(shù)據(jù)的數(shù)據(jù)量;ξall為除共享數(shù)據(jù)外的其他數(shù)據(jù)量;ξone為單條區(qū)塊鏈中除共享數(shù)據(jù)外的其他數(shù)據(jù)量;Dall為該門限方案下全網(wǎng)的數(shù)據(jù)量;Done為該門限方案下單條鏈的數(shù)據(jù)量。以傳統(tǒng)區(qū)塊鏈(此時Dall=(C×d)+ξall,Done=d+ξone)作為標準值進行比較分析,隨著t的增大,全網(wǎng)的數(shù)據(jù)量和單條區(qū)塊鏈數(shù)據(jù)量有效降低,減小了單個節(jié)點的存儲壓力,見圖4c。 SSDSM應(yīng)用(15,20)門限方案與其他類型的數(shù)據(jù)共享模型算法比較,從機密性、數(shù)據(jù)處理和恢復(fù)開銷以及單節(jié)點數(shù)據(jù)冗余量多方面進行分析比較,算法測試均采用相同數(shù)據(jù)。結(jié)果如表3所示。 表3 與其他模型的參數(shù)比較結(jié)果Tab.3 Results are compared with those of other models 傳統(tǒng)區(qū)塊鏈所有節(jié)點存儲相同鏈數(shù)據(jù),可直接讀取,未對區(qū)塊體內(nèi)存放數(shù)據(jù)進行加密處理。以傳統(tǒng)區(qū)塊鏈單節(jié)點數(shù)據(jù)冗余量為100%作為標準值比較,文獻[14]利用糾刪碼降低節(jié)點數(shù)據(jù)冗余量,通過矩陣變換數(shù)據(jù),各節(jié)點存儲部分數(shù)據(jù),該算法下節(jié)點數(shù)據(jù)冗余量降低至20%且運算時間開銷極低,但部分節(jié)點仍可獲得源數(shù)據(jù)部分信息,未對機密性進行改進;文獻[15]對區(qū)塊鏈上存儲的數(shù)據(jù)對稱加密,通過非對稱加密其對稱密鑰,引入代理重加密算法,保障數(shù)據(jù)機密性,但是每一次數(shù)據(jù)恢復(fù)時間開銷較大,且對稱加密計算下節(jié)點數(shù)據(jù)冗余量大于100%。SSDSM采用基于CRT的秘密分割算法,各節(jié)點僅存儲分片數(shù)據(jù),無法獲得共享數(shù)據(jù)的相關(guān)信息,在保障了數(shù)據(jù)機密性的同時,也提供了共享數(shù)據(jù)的冗余備份,具備抗攻擊能力。而在數(shù)據(jù)處理和數(shù)據(jù)恢復(fù)上保障了較低的時間開銷,在數(shù)據(jù)需要頻繁共享的情況下,仍能保持運行效率,同時單個節(jié)點數(shù)據(jù)冗余量在該門限方案下低至13.5%,相較其他的數(shù)據(jù)共享方案達到了較低的數(shù)據(jù)負載。綜上分析,與其他數(shù)據(jù)共享方案相比,兼?zhèn)浒踩院偷蛿?shù)據(jù)負載的SSDSM 更加適合數(shù)據(jù)共享環(huán)境。 近些年來,脫胎于比特幣的區(qū)塊鏈技術(shù)發(fā)展迅速,其去中心化、不可篡改和可編程的特點在數(shù)據(jù)共享領(lǐng)域方面有廣泛的應(yīng)用前景?;诿孛芊指畹膮^(qū)塊鏈數(shù)據(jù)共享模型,全網(wǎng)節(jié)點進行分組,利用Asmuth-Bloom法的秘密分割方案將共享數(shù)據(jù)分割成多份分別分發(fā)給各節(jié)點組存儲,需要時從多于門限的數(shù)值分組獲取數(shù)據(jù)進行恢復(fù)。 SSDSM在保障源數(shù)據(jù)安全的前提下降低了全網(wǎng)的冗余量,實驗結(jié)果表明,隨著門限的提升,數(shù)據(jù)分割的時間開銷逐漸降低且各節(jié)點存儲的數(shù)據(jù)量逐漸下降,而數(shù)據(jù)恢復(fù)的時間開銷保持較低水平。綜合看,該模型能較好地適應(yīng)數(shù)據(jù)共享場景。 SSDSM仍需要進一步完善,如是否讓分割時生成的素數(shù)由各節(jié)點組進行生成,效率更高更安全;對每一個節(jié)點組的數(shù)據(jù)需要訪問控制機制來限制任意節(jié)點的訪問,否則惡意節(jié)點也可以進行數(shù)據(jù)的恢復(fù);在區(qū)塊鏈網(wǎng)絡(luò)中使用更高效的共識算法等。下一步會繼續(xù)研究以上內(nèi)容,以便該模型更好地適應(yīng)更多場景并保障其數(shù)據(jù)的安全性。2 數(shù)據(jù)讀取恢復(fù)
3 SSDSM框架與工作流程
4 實驗與分析
4.1 實驗結(jié)果與分析
4.2 性能評估
4.3 與其他數(shù)據(jù)共享方案比較
5 總結(jié)與展望