富 瑤 李慶丹 張澤輝 高鐵杠
(南開大學軟件學院 天津 300350)
隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、大數(shù)據(jù)時代的到來,數(shù)據(jù)量呈指數(shù)級增長趨勢[1-3],個人的存儲能力已無法滿足現(xiàn)有的存儲需求.云存儲是在云計算概念上延伸和發(fā)展出來的一個新的概念,通過集群應用、網(wǎng)絡技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡中大量各種不同類型的存儲設備通過應用軟件集成起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務訪問[4-8].用戶通過互聯(lián)網(wǎng)訪問存儲在云中的文件,沒有時間或位置的任何限制,采用按需付費的方式,支付一定的服務費便能享受到高質(zhì)量的云服務.與傳統(tǒng)本地存儲相比,云存儲無疑是一種更經(jīng)濟的選擇.
然而,用戶將數(shù)據(jù)外包至高效的云服務端后,便不再擁有對數(shù)據(jù)的實質(zhì)控制權(quán)[9-11].如果云服務提供商是半誠實且好奇的實體,那么它可能會以某種經(jīng)濟利益的關(guān)系對用戶數(shù)據(jù)進行惡意刪除、篡改等行為.為防止用戶存儲在云中的數(shù)據(jù)遭受云存儲服務器(cloud storage server, CSS)和其他用戶窺探的風險,數(shù)據(jù)完整性驗證的概念[12]被提出.最為直觀的一種驗證方法是數(shù)據(jù)擁有者(data owner, DO)從CSS中下載所有的數(shù)據(jù),然后本地進行驗證.但是,這不僅浪費大量網(wǎng)絡傳輸資源和本地存儲資源.同時,在完整性驗證中,由于DO和CSS均無法保證能夠提供公平、可信的結(jié)果,因此都不適合執(zhí)行完整性驗證工作.文獻[13-33]在完整性驗證中引入第三方驗證者(third party auditor, TPA),委托具有強大計算能力的TPA執(zhí)行此驗證任務,使得TPA能夠從客觀、獨立的角度提供審計服務.如圖1所示,基于TPA的驗證模型主要由DO,CSS和TPA三個實體構(gòu)成.
Fig. 1 Cloud storage data integrity verification model圖1 云存儲數(shù)據(jù)完整性驗證模型
在驗證模型中,具有存儲需求的DO將本地資源數(shù)據(jù)存儲到有強大存儲和計算能力的服務器CSS中;當DO對云中的數(shù)據(jù)進行完整性驗證時,委托具有豐富的審計經(jīng)驗和能力的TPA執(zhí)行驗證任務;TPA向CSS發(fā)起挑戰(zhàn)請求,執(zhí)行驗證任務;CSS生成完整性證據(jù)返回給TPA;TPA通過復雜計算得出驗證結(jié)果,將結(jié)果發(fā)送至DO;DO根據(jù)返回的驗證結(jié)果判斷云端數(shù)據(jù)是否被正確存儲,完成數(shù)據(jù)完整性驗證.
為支持動態(tài)更新驗證,Ateniese等人[13]通過對數(shù)據(jù)持有性證明(provable data possession, PDP)機制進行簡單的修改,使其支持了部分動態(tài)數(shù)據(jù)更新操作.為完全支持動態(tài)更新操作,Erway等人[14]提出基于跳表的PDP機制,利用認證跳表的動態(tài)數(shù)據(jù)結(jié)構(gòu),確保數(shù)據(jù)塊在位置上的正確性,而數(shù)據(jù)塊標簽確保數(shù)據(jù)塊內(nèi)容的正確.但存在的問題是由于認證路徑過于冗長,認證過程中需要大量的輔助信息,將導致系統(tǒng)產(chǎn)生較大的計算開銷和通信開銷.文獻[15]提出了另一種支持動態(tài)操作的公開審計方案,通過構(gòu)造Merkle散列樹動態(tài)結(jié)構(gòu)來確保數(shù)據(jù)塊在位置上的正確性.相比跳表數(shù)據(jù)結(jié)構(gòu),Merkle散列樹利用數(shù)據(jù)塊而不是標簽計算根節(jié)點散列值,因而具有更簡單的數(shù)據(jù)結(jié)構(gòu).但是,在實際場景中,我們需要對TPA的可信性進行具體的探討,也就是說TPA并不完全可信,有可能竊取用戶數(shù)據(jù)隱私.為支持數(shù)據(jù)隱私保護,文獻[20]基于同態(tài)密鑰隨機掩碼技術(shù),提出在審計階段中引入2個參數(shù)隱藏服務器來生成證據(jù)內(nèi)容,保證TPA不能夠從返回的證據(jù)中獲得任何有用信息,從而避免數(shù)據(jù)遭受隱私泄露的風險.Yang等人[23]提出的數(shù)據(jù)驗證方案支持動態(tài)多用戶多服務器和隱私保護,對來自多個服務器的多個用戶進行動態(tài)數(shù)據(jù)驗證,同時利用密碼技術(shù)與雙線性對的雙線性性質(zhì)的結(jié)合,提供數(shù)據(jù)隱私保護.文獻[32]提出一種更為新穎高效的公開驗證方案,在保證數(shù)據(jù)隱私的前提下,動態(tài)數(shù)據(jù)更新結(jié)構(gòu)由一個雙向索引信息表DLIT和一個記錄位置的數(shù)組組成,雙向信息表能夠更快地定位某個數(shù)據(jù)塊,位置數(shù)組可以維持塊及其特定位置之間的關(guān)系.其中,雙向信息索引表DLIT能夠保證在對數(shù)據(jù)塊進行插入和刪除時不會導致信息表中其他記錄的更改,因而相比其他方案將具有更低的系統(tǒng)開銷.但文獻[32]存在的問題是,在完整性驗證過程中,DO向CSS發(fā)出完整性挑戰(zhàn)請求后,CSS向TPA返回相應證明以表明正確存儲了外包數(shù)據(jù),然而TPA可能與CSP合謀攻擊,因此有必要保證TPA驗證結(jié)果的可信性.區(qū)塊鏈因其去中心化、數(shù)據(jù)不可篡改的特性,在數(shù)據(jù)保護領(lǐng)域中有著天然的優(yōu)勢,因而給數(shù)據(jù)完整性驗證提供了一種新的思路.文獻[33-40]提出基于區(qū)塊鏈的數(shù)據(jù)完整性驗證方案,分布式的存儲方式使得鏈上每一參與節(jié)點都保存整個數(shù)據(jù)庫的副本,因此可有效避免集中化存儲的單點故障問題,而且區(qū)塊鏈自身的鏈式指針結(jié)構(gòu)可確保其上數(shù)據(jù)無法被任意刪改,這是對數(shù)據(jù)完整性的有效保證.文獻[35]提出了一種ODPDP方案,將頻繁的審計任務委托給外部,并同時提供日志審計,以抵制任何不誠實的參與者合謀串通.文獻[36]提出了一種基于安全身份的聚合簽名SIBAS方案,可信執(zhí)行環(huán)境TEE作為驗證者檢查聚合簽名的正確性,進行完整性驗證,有效減少了數(shù)據(jù)信息泄露的可能性以及驗證結(jié)果的不可信性.
然而,現(xiàn)有完整性驗證方案[33-41],大多是在假設服務-支付公平的前提下進行的.但是,在實際的存儲驗證中,由于DO已經(jīng)預先支付給CSS和TPA相應的服務費,如果CSS或TPA存在著欺騙行為,公平支付便無法得到保障.為解決TPA不可信問題和實現(xiàn)服務-支付公平,本文提出一種支持隱私保護和公平支付的數(shù)據(jù)完整性驗證方案.
本文的主要貢獻包括3個方面:
1) 引入一種新型數(shù)據(jù)認證結(jié)構(gòu)——基于等級的Merkle散列樹,實現(xiàn)數(shù)據(jù)位置的完整性驗證,而且能夠支持數(shù)據(jù)的可驗證動態(tài)更新.
2) 為實現(xiàn)用戶數(shù)據(jù)的隱私保護,設計了一種無交互式動態(tài)數(shù)據(jù)完整性證明機制NIDPDP,審計階段中TPA無需向CSS發(fā)送挑戰(zhàn)請求,即取消TPA和CSS進行挑戰(zhàn)交互這一過程,避免數(shù)據(jù)隱私泄露.
3) 結(jié)合區(qū)塊鏈的共識及不可篡改性,在NIDPDP驗證機制上,提出支持隱私保護和公平支付的數(shù)據(jù)完整性驗證模型.智能合約(smart contract, SC)通過對CSS與TPA的不誠實行為進行懲罰,實現(xiàn)驗證方案的公平支付內(nèi)容,保證模型的安全性、可靠性以及公平性.
云存儲數(shù)據(jù)完整性驗證是指CSS能夠證明它正確存儲用戶的數(shù)據(jù),用戶數(shù)據(jù)被保存完整的一種機制.驗證機制一般包括5個算法,分別是密鑰產(chǎn)生、標簽生成、挑戰(zhàn)請求、證據(jù)生成、證據(jù)驗證.支持動態(tài)驗證的方案還包括執(zhí)行更新、更新驗證2個算法.
1) 密鑰生成.DO運行概率性算法生成公鑰和私鑰,對外公布公鑰信息.
2) 標簽生成.DO對數(shù)據(jù)文件進行分塊,計算每個數(shù)據(jù)塊對應的標簽作為認證的元數(shù)據(jù).然后,將原始文件和所有數(shù)據(jù)塊構(gòu)成的標簽集合上傳至CSS.最后,刪除本地文件及標簽集合.
3) 挑戰(zhàn)請求.TPA接受DO委托的驗證任務,抽樣對文件數(shù)據(jù)塊進行驗證.對需要驗證的數(shù)據(jù)塊產(chǎn)生隨機挑戰(zhàn)數(shù),隨機挑戰(zhàn)數(shù)與塊索引構(gòu)成挑戰(zhàn)集合,TPA向CSS發(fā)起挑戰(zhàn).
4) 證據(jù)生成.CSS接受TPA的挑戰(zhàn)后,根據(jù)挑戰(zhàn)集合,計算得到本次請求的完整性證據(jù),返回給驗證者.
5) 證據(jù)驗證.TPA收到完整性證據(jù)后,通過計算對此證據(jù)進行驗證,向DO返回驗證結(jié)果.
6) 執(zhí)行更新.CSS根據(jù)更新請求對存儲的數(shù)據(jù)進行相應的更新,通過證據(jù)生成算法返回給驗證者更新后的證據(jù).
7) 更新驗證.TPA接收更新后的證據(jù),執(zhí)行更新驗證算法,向DO返回更新驗證結(jié)果.
采用基于TPA的完整性驗證方案時,有可能造成用戶的數(shù)據(jù)隱私泄露.DO在將完整性驗證任務委托給TPA后,如果TPA不誠實可信,那么它可能會重復地對相同位置上的數(shù)據(jù)塊進行驗證,即每次發(fā)送的挑戰(zhàn)請求是相同的.通過這種方式,經(jīng)過一定次數(shù)的挑戰(zhàn)請求累積后,TPA便可得到一個方程組,然后通過高斯消去法獲得文件信息內(nèi)容,從而使得用戶遭受隱私泄露的風險.具體攻擊過程如下:
TPA重復對位置{s1,s2,…,sc}s1≤si≤sc的數(shù)據(jù)塊進行完整性驗證,經(jīng)過c次挑戰(zhàn)請求后,TPA可得到方程組:
(1)
其中,μ(j)是第j次完整性驗證過程中CSS返回的證據(jù)元素,1≤j≤c.
只要該方程組中的系數(shù)行列式不為0,則TPA便可通過求解線性方程組計算得到{ms1,ms2,…msc}的值,造成用戶數(shù)據(jù)的隱私泄露.
為實現(xiàn)數(shù)據(jù)隱私保護的驗證,文獻[20-22]采用同態(tài)密鑰隨機掩碼技術(shù),該技術(shù)的核心思想是,在審計階段引入2個參數(shù)隱藏服務器生成證據(jù)內(nèi)容,保證TPA不能夠從返回的證據(jù)中獲得任何有用信息,從而避免數(shù)據(jù)隱私泄露.
然而,這種驗證方式雖然能夠?qū)崿F(xiàn)隱私保護,但存在的問題是無法實現(xiàn)驗證方案后續(xù)的服務-支付公平.如果CSS與TPA合謀攻擊,即無論云端數(shù)據(jù)是否被正確存儲,TPA都返回數(shù)據(jù)已保存完整的信息.由于在完整性驗證過程中,DO已經(jīng)預先支付給云服務提供商和驗證者相應的費用,因此,驗證方案的公平支付內(nèi)容便沒有得到保障.
為解決實際完整性驗證中TPA不可信問題、實現(xiàn)服務-支付公平,本節(jié)提出一種支持隱私保護和公平支付的數(shù)據(jù)完整性驗證模型.驗證模型可分為3個階段:初始化階段、審計階段和懲罰階段.如圖2所示,模型中包含的4個實體分別是:DO,CSS,TPA和SC.審計階段中采用無交互式的驗證模式NIDPDP保護數(shù)據(jù)隱私,在懲罰階段通過智能合約對CSS和TPA的懲罰控制實現(xiàn)服務-支付的公平.
Fig. 2 Integrity verification model supporting privacy protection and fair payment圖2 支持隱私保護和公平支付的完整性驗證模型
為確保數(shù)據(jù)塊在云端存儲位置上的完整性及動態(tài)更新的可驗證性,我們引入一種新型的數(shù)據(jù)結(jié)構(gòu)——基于等級的Merkle散列樹(rank based Merkle-Hash tree, RBMT).相比于基于跳表的動態(tài)數(shù)據(jù)結(jié)構(gòu),RBMT不僅能夠完全支持動態(tài)操作,包括對數(shù)據(jù)進行的更新、刪除、插入等操作,而且能夠避免由于輔助認證信息冗長而導致系統(tǒng)通信開銷過大的問題.在RBMT中,節(jié)點W可以由3個元素構(gòu)成,即W={r,s,h}.其中,r是節(jié)點的等級值,表示當前節(jié)點能夠到達的葉子節(jié)點數(shù)量;s是存儲節(jié)點的邊信息,表示當前節(jié)點是父親節(jié)點的左/右孩子節(jié)點;散列值h是葉子節(jié)點mi的直接散列,非葉子節(jié)點散列值h是它左右孩子節(jié)點的散列值與它的等級值級聯(lián)后再進行散列的結(jié)果.任一節(jié)點W的散列值計算為
(2)
當驗證者驗證CSS是否正確存儲數(shù)據(jù)塊m3的位置時,利用輔助認證信息Ω3={W4,Wc,Wb}進行計算,如圖3所示,驗證過程有4個步驟:
1) 在節(jié)點d處,根據(jù)W3和W4計算節(jié)點d的散列值hd=H(h3‖h4‖rd);
2) 在節(jié)點a處,根據(jù)Wc和Wd計算節(jié)點a的散列值ha=H(hc‖hd‖ra);
Fig. 3 RBMT data location verification圖3 RBMT數(shù)據(jù)位置驗證
DO對存儲在云中的數(shù)據(jù)進行更新時,包括對數(shù)據(jù)塊修改、數(shù)據(jù)塊刪除、數(shù)據(jù)塊插入操作.驗證更新過程為:
3) 驗證者重復上述RBMT數(shù)據(jù)位置驗證過程,完成數(shù)據(jù)可驗證動態(tài)更新.
為實現(xiàn)用戶數(shù)據(jù)隱私保護,本文設計了一種無交互式動態(tài)數(shù)據(jù)完整性證明機制NIDPDP,如圖4所示.在方案的審計階段中采用無交互式的驗證模式,TPA無需向CSS發(fā)送挑戰(zhàn)請求,由此,TPA便無法在驗證過程中通過重復地對一些相同位置的數(shù)據(jù)塊發(fā)起挑戰(zhàn)攻擊而竊取用戶數(shù)據(jù)隱私.審計階段中CSS與TPA分別通過NIDPDP.ProofGen(),NIDPDP.Verify()過程獨立地完成任務,減少實體間信息的交互,避免1.2節(jié)TPA發(fā)生不誠實的行為.同時,NIDPDP機制也與懲罰階段中的SC相互配合,包括CSS向合約傳遞RBMT的根節(jié)點、輔助認證信息和NIDPDP.Verify()過程中TPA向合約驗證結(jié)果的傳遞.
Fig. 4 Non-interactive dynamic provable data possession mechanism圖4 無交互式動態(tài)數(shù)據(jù)持有性證明機制
審計階段中采用NIDPDP機制運行過程為:
1) CSS與TPA同時運行偽隨機函數(shù)φZ(τ),從[1,n]中隨機選擇c個元素組成子集I={s1,s2,…,sc}.對于每一個元素si∈I,選擇-個整數(shù)vi=h(τ‖i),構(gòu)成挑戰(zhàn)信息Chal={i,vi}s1≤i≤sc.其中,τ是隨時間變化的信息,不受CSS或者TPA的控制.
2) 證據(jù)生成NIDPDP.ProofGen(),CSS將公鑰pk、文件F、認證元數(shù)據(jù)集合Φ和挑戰(zhàn)信息Chal作為算法的輸入,輸出本次驗證數(shù)據(jù)內(nèi)容的完整性證明P.
3) 證據(jù)驗證NIDPDP.Verify(),TPA將公鑰pk和完整性證據(jù)P作為算法的輸入,驗證CSS返回的內(nèi)容證據(jù)P是否正確.若驗證成功返回result=1,失敗返回result=0,并且將驗證結(jié)果發(fā)送至SC.
4) 執(zhí)行更新NIDPDP.ExUpdate(),算法由CSS運行,更新完整性證據(jù),公鑰pk、數(shù)據(jù)塊集合F、認證元數(shù)據(jù)集合Φ和更新請求Update作為輸入,返回給TPA更新后的證據(jù)PUpdate.
5) 更新驗證NIDPDP.VerUpdate(),算法由TPA運行,公鑰pk、更新請求Update、更新后的證據(jù)PUpdate作為輸入,進行更新驗證操作,將更新驗證結(jié)果發(fā)送至SC.
在無交互式數(shù)據(jù)完整性驗證方案中,安全性模型主要面向的對象是:CSS和不可信的TPA.
1) 對CSS的安全性驗證
Fig. 5 Integrity verification process for privacy protection and fair payment圖5 支持隱私保護和公平支付的完整性驗證流程
2) 對TPA的安全性驗證
② 對于每一個元素si∈I,選擇-個整數(shù)vi=h(τ‖i),構(gòu)成挑戰(zhàn)信息Chal={i,vi}s1≤i≤sc;
定義2.如果對TPA的安全性驗證的5個過程正確,則稱方案模型對TPA是可驗證安全的.
本節(jié)在無交互式的驗證機制NIDPDP基礎(chǔ)上,結(jié)合區(qū)塊鏈的共識及不可篡改性,提出支持隱私保護和公平支付的完整性驗證模型.在保證方案公平支付的內(nèi)容上,利用SC對CSS和TPA不誠實行為進行懲罰.也就是,若CSS沒有正確存儲DO的數(shù)據(jù),則會向DO支付相應的罰款;若TPA沒有正確驗證CSS返回的證據(jù),則也會向DO支付相應的罰款.本節(jié)提出的驗證模型包括3個階段:初始化階段、審計階段和懲罰階段.如圖5所示,各階段分別對應的流程為:初始化階段中DO執(zhí)行①②③;審計階段中CSS執(zhí)行④⑤⑥,TPA執(zhí)行⑦⑧;懲罰階段中SC執(zhí)行⑨⑩.
各階段具體過程如下.
初始化階段.
e:G1×G1→G2是一個雙線性映射,G1和G2均是p階的乘法循環(huán)群,g是G1的生成元;選取安全散列函數(shù)HK();φZ(τ)是一個安全的偽隨機函數(shù).
1) DO首先在Zp中隨機選擇α,β并計算H1←gα,H2←gβ,然后產(chǎn)生一個隨機簽名密鑰對(spk,ssk)←Sig,私鑰為sk=(ssk,α,β,Z),公鑰為pk=(spk,g,H1,H2,φ).
2) DO首先對原始文件進行分塊操作,F(xiàn)={m1,m2,…,mn},同時,每個數(shù)據(jù)塊mi分為s段,mi={mi1,mi2,…,mis},因此,數(shù)據(jù)文件可分為n×s個部分.然后,選取預處理文件秘密值τ1,τ2,…,τs∈p,計算公共驗證參數(shù)uj=gτj∈p,每個數(shù)據(jù)塊mi均生成對應的標簽:
(3)
審計階段.
CSS與TPA均運行偽隨機函數(shù)φZ(τ),從[1,n]中隨機選擇c個元素組成子集I={s1,s2,…,sc},對于每一個元素si∈I,選擇-個整數(shù)vi=h(τ‖i),構(gòu)成挑戰(zhàn)信息,其中,τ是隨時間變化的信息,不受CSS或者TPA的控制.
Fig. 6 Smart contract圖6 智能合約
(4)
(5)
2) TPA在收到CSS發(fā)送的內(nèi)容證據(jù)后,運行NIDPDP.Verify(),即驗證式(6)是否成立:
(6)
將驗證結(jié)果result=1或result=0發(fā)送至SC.
懲罰階段.
區(qū)塊鏈智能合約CompareContract(圖6(a)所示)將驗證CSS和TPA是否發(fā)生了不誠實的行為,以實現(xiàn)驗證方案的公平支付.若CSS沒有正確存儲DO的數(shù)據(jù),則CompareContract會調(diào)用合約TCSS(圖6(b)所示),CSS向DO支付相應的罰款;同理,若TPA沒有正確驗證CSS返回的證據(jù),則Compare Contract會調(diào)用合約TTPA(圖6(c)所示),TPA向DO支付相應的罰款.具體懲罰過程為:
1) 在審計階段,CSS在將生成的證據(jù)發(fā)送給TPA的同時,調(diào)用在區(qū)塊鏈中已創(chuàng)建完成的智能合約CompareContract,發(fā)送已構(gòu)建完成的RBMT根節(jié)點Wroot及輔助認證信息Ωi(1≤i≤c).同時,TPA在計算出CSS返回證據(jù)的驗證結(jié)果后,也會將驗證結(jié)果result發(fā)送至區(qū)塊鏈智能合約CompareContract.
定理1.如果CSS誠實地存儲用戶數(shù)據(jù),返回相應的證據(jù),那么該內(nèi)容證據(jù)就可以通過TPA的校驗,使式(6)成立.
證明.
證畢.
定理2.如果本方案的標簽生成算法是不可偽造的,CDH困難問題和DL困難問題在隨機預言機模型下是不可解的,那么不存在任何多項式時間算法,能夠以不可忽略的概率破壞模型的安全性.
證明.
Game1. 定義為對CSS的可驗證安全數(shù)據(jù)完整性證明游戲.
(7)
(8)
得到
(9)
(10)
得到
(11)
(12)
綜上所述,如果本方案的標簽生成算法是不可偽造的,那么不存在任何多項式時間算法,能夠以不可忽略的概率贏得Game1,2,3游戲,破壞模型的安全性.
證畢.
定理3.在本文提出的支持隱私保護和公平支付的數(shù)據(jù)完整性驗證方案中,給定CSS返回的內(nèi)容證據(jù)信息θ={σ,μ},若好奇且不誠實的TPA試圖從已掌握信息中獲得DO的數(shù)據(jù)信息F={m1,m2,…,mn},從計算上是不可行的.
此外,在懲罰階段中智能合約CompareContract的約束下,由于TPA無法判斷CSS返回給Compare Contract位置證據(jù)的正確性,智能合約Compare Contract一旦判斷出CSS返回給其位置證據(jù)是錯誤的,而TPA返回給其正確的驗證結(jié)果,那么將會調(diào)用合約TTPA對TPA進行懲罰.因此,TPA與CSS在完整性驗證中將各自獨立執(zhí)行任務,不可能合謀攻擊.
綜上所述,在本文提出的完整性驗證方案中,好奇且不誠實的TPA無法獲取用戶的數(shù)據(jù)信息,有效保證了用戶的隱私安全.
證畢.
本節(jié)將從計算開銷、通信開銷2個方面來評價整個方案的性能.
計算開銷主要來自于方案的3個實體,包括DO,TPA,CSS,它們在不同的階段產(chǎn)生的計算開銷決定了整個方案的驗證效率.在初始化階段,主要是DO對文件數(shù)據(jù)塊生成標簽產(chǎn)生的開銷.在審計階段,計算開銷主要是由CSS生成證據(jù)和TPA驗證證據(jù)所產(chǎn)生.為評估方案模型的性能,我們首先分析不同數(shù)據(jù)塊大小對所提方案計算成本影響.實驗環(huán)境配置為Windows10系統(tǒng),Intel Corei5處理器,2.20 GHz CPU,4 GB RAM.方案使用Java語言實現(xiàn)基本功能,加解密算法從JPBC庫調(diào)取,取10次實驗結(jié)果的平均值.審計階段采用抽樣策略,以4.6%的概率從文件數(shù)據(jù)塊總數(shù)中選取挑戰(zhàn)塊數(shù)目.在文件數(shù)據(jù)塊大小分別為30 KB,60 KB,90 KB,120 KB,150 KB,180 KB,210 KB,240 KB,270 KB,300 KB情況下,對64 MB,128 MB,256 MB,512 MB,1 024 MB的隨機文件,分別測試數(shù)據(jù)塊大小對各實體在不同驗證階段產(chǎn)生計算開銷的影響.
從圖7可以看出,隨著數(shù)據(jù)塊的增大,DO生成認證元數(shù)據(jù)標簽的時間逐漸減小,并且在240 KB以后,標簽生成時間基本穩(wěn)定在某一數(shù)值.這是因為,隨著數(shù)據(jù)塊的增大,文件數(shù)據(jù)塊數(shù)量減少,標簽數(shù)量也隨之減少,但當數(shù)據(jù)塊大小達到一定數(shù)值,生成的標簽數(shù)量相差不大,與此同時,數(shù)據(jù)塊包含的數(shù)據(jù)段個數(shù)也增加,單個標簽的計算時間變長,因此,在數(shù)據(jù)塊大小增加到一定程度,標簽生成時間會穩(wěn)定在某一數(shù)值.如圖8所示,隨著數(shù)據(jù)塊的增大,CSS生成完整性證據(jù)的時間也逐漸增加.這是因為,由于數(shù)據(jù)塊增大,數(shù)據(jù)塊段數(shù)s增加,CSS生成的完整性證據(jù)中包含的元素個數(shù)μj也增加,因此,證據(jù)計算越復雜,所用時間越多.如圖9所示,隨著數(shù)據(jù)塊的增大,TPA驗證證據(jù)的時間逐漸減小.這是由于隨著數(shù)據(jù)塊的增大,挑戰(zhàn)塊數(shù)目c減小,而TPA驗證完整性證據(jù)的計算開銷為(c+2)M+(s+c+1)E+2P,因此,TPA驗證時間將減小.
Fig. 7 Influence of block size on DO tag generation time圖7 數(shù)據(jù)塊大小對DO生成標簽時間影響
Fig. 8 Influence of block size on CSS proof generation time圖8 數(shù)據(jù)塊大小對CSS生成證據(jù)時間影響
Fig. 9 Influence of block size on TPA proof verification time圖9 數(shù)據(jù)塊大小對TPA驗證證據(jù)時間影響
綜上,為使所提方案性能最優(yōu),我們選擇在數(shù)據(jù)塊為240 KB這種理想情況下,計算不同大小數(shù)據(jù)文件驗證過程的系統(tǒng)開銷.
文獻[32]采用基于TPA的驗證機制,方案主要包括2個階段:初始化階段和審計階段,其具有的動態(tài)數(shù)據(jù)結(jié)構(gòu)雙向信息索引表DLIT,能夠保證在對數(shù)據(jù)塊進行插入和刪除時不會導致信息表中其他記錄的更改,因而相比于其他方案具有更低的系統(tǒng)開銷.為證明本文所提方案性能的優(yōu)越性,將與文獻[32]進行計算開銷和通信開銷方面的對比.同時,文獻[32]支持全局與抽樣驗證,抽樣驗證同樣以4.6%這一固定概率對數(shù)據(jù)塊進行挑戰(zhàn)驗證.本文方案與文獻[32]理論上的計算開銷對比如表1所示,其中,n表示文件數(shù)據(jù)塊總數(shù),c表示挑戰(zhàn)塊數(shù)目,s表示數(shù)據(jù)塊包含段的個數(shù),M表示乘法操作,E表示指數(shù)操作,P表示雙線性映射.可以看出,文獻[32]的標簽生成開銷、證據(jù)生成開銷雖然要比本方案小,但是在TPA驗證證據(jù)過程中,文獻[32]產(chǎn)生的計算開銷為cM+E+(c+1)P,而本文所提方案的計算開銷是(c+2)M+(s+c+1)E+2P,由于雙線性操作所用時間將遠大于乘法操作和指數(shù)操作,并且TPA驗證證據(jù)是周期性進行的,因此,本文所提方案雙線性操作次數(shù)遠小于文獻[32],計算開銷更?。畬嶒炦^程中,采用64 MB,128 MB,256 MB,512 MB,1 024 MB的隨機文件,對比文獻[32]與本文方案的計算開銷,其中,挑戰(zhàn)塊數(shù)目占文件數(shù)據(jù)塊總數(shù)的4.6%,實驗結(jié)果如圖10所示.
Table 1 Computational Cost Comparison表1 計算開銷對比
Fig. 10 Comparison of the computational cost for two schemes 圖10 2種方案的計算開銷對比
通信過程的開銷主要在于信息的交互,在云存儲完整性驗證模型中主要取決于審計階段中CSS,TPA,SC間的信息交互.具體來說,本方案中通信開銷包括審計階段CSS向TPA發(fā)送內(nèi)容完整性證據(jù)及向SC發(fā)送位置完整性證據(jù)過程,TPA向SC發(fā)送內(nèi)容驗證結(jié)果過程,如表2所示,通信開銷分別為O(logn/c),O(1).相比文獻[32],本方案在整個驗證過程中沒有TPA向CSS發(fā)送挑戰(zhàn)請求這一過程,因此,方案的通信開銷將大大減少.文獻[32]與本文方案通信開銷實驗對比結(jié)果如圖11所示.
Table 2 Communication Cost Comparison表2 通信開銷對比
Fig. 11 Comparison of the communication cost for two schemes圖11 2種方案的通信開銷對比
本文提出一種支持隱私保護和公平支付的數(shù)據(jù)完整性驗證方案,能夠解決數(shù)據(jù)完整性驗證過程中隱私泄露和公平支付問題.為實現(xiàn)用戶數(shù)據(jù)隱私保護,本文設計了一種無交互式動態(tài)數(shù)據(jù)完整性證明機制NIDPDP,審計階段中TPA無需向CSS發(fā)送挑戰(zhàn)請求,即取消TPA和CSS進行挑戰(zhàn)交互這一過程,避免用戶數(shù)據(jù)隱私的泄露.為實現(xiàn)服務-支付公平,SC首先通過輔助認證信息計算得到RBMT根節(jié)點,與CSS發(fā)送的根節(jié)點進行對比,確保數(shù)據(jù)塊在位置上的完整性.其次,區(qū)塊鏈智能合約Compare Contract通過調(diào)用合約TCSS和TTPA對CSS與TPA不誠實行為進行懲罰,使各實體均誠實地按照協(xié)議規(guī)則執(zhí)行.理論分析與實驗結(jié)果表明,本文方案與其他方案相比,在計算開銷和通信開銷方面都有進一步的降低,在保障數(shù)據(jù)隱私的同時,能夠?qū)崿F(xiàn)服務-支付的公平.
作者貢獻聲明:富瑤提出創(chuàng)新點,負責模型設計、理論分析、實驗數(shù)據(jù)分析和論文撰寫;李慶丹參與模型設計、論文框架討論和論文修改;張澤輝參與模型設計,優(yōu)化論文結(jié)構(gòu),修改論文;高鐵杠提出研究方向,分析創(chuàng)新點,指導理論分析與實驗設計,審核論文.