趙海春,姚宣霞,鄭雪峰
1) 內(nèi)蒙古民族大學(xué)計算機科學(xué)與技術(shù)學(xué)院,通遼 028000 2) 北京科技大學(xué)計算機與通信工程學(xué)院,北京 100083
由于云計算有諸多優(yōu)勢,許多個人和組織選擇將其數(shù)據(jù)和業(yè)務(wù)流程轉(zhuǎn)移到云存儲中,以減輕本地存儲的負擔(dān)并降低相應(yīng)的維護成本[1?2]. 然而,與傳統(tǒng)的系統(tǒng)相比,用戶對存儲在云中的數(shù)據(jù)失去了直接的物理控制. 因此,盡管云計算基礎(chǔ)設(shè)施比個人計算設(shè)備更加強大和可靠,但由于云計算存在著各種內(nèi)部和外部的威脅,數(shù)據(jù)安全和隱私保護問題仍然是用戶采用云服務(wù)的核心考慮因素[3].
由于云存儲服務(wù)器(Cloud storge server, CSS)可能是不完全可信的,因此,用戶需要定期檢查其存儲在云中的數(shù)據(jù)是否完好無損. 由于用戶一般只有有限的計算、存儲空間和網(wǎng)絡(luò)帶寬等資源,因此,可以將數(shù)據(jù)完整性驗證的任務(wù)委托給一個專業(yè)的第三方審計者(Third party auditor,TPA)來完成[4?6]. 然而,這將導(dǎo)致用戶數(shù)據(jù)及相關(guān)信息在審計過程中會泄漏給TPA,由此引出了隱私保護的問題. 近年來,研究人員基于同態(tài)認證碼、隨機掩碼和數(shù)據(jù)塊隨機抽樣等技術(shù),提出了隱私保護的云存儲公共審計方案,以實現(xiàn)遠程檢查外包數(shù)據(jù)的完整性[5, 7?8]. 其中,一些方案中,由于在數(shù)據(jù)塊簽名的構(gòu)造中包含了與塊索引i相關(guān)的信息,例如,如果該哈希值出現(xiàn)重復(fù),可能會遭受數(shù)據(jù)塊簽名的偽造攻擊[10]. 因此,使得設(shè)計和維護相關(guān)的索引表變得繁瑣. 針對這個問題,本文中提出了一個結(jié)構(gòu)簡單且易于維護的索引-存根表(Index-stub table,IST)結(jié)構(gòu),并基于該結(jié)構(gòu)提出了一個隱私保護的云存儲公共審計方案. 該方案能夠有效地支持遠程數(shù)據(jù)的動態(tài)更新及在審計過程中數(shù)據(jù)的隱私保護性,其中的數(shù)據(jù)塊簽名構(gòu)造中,未涉及塊索引相關(guān)的信息. 文中基于CPoR證明框架[11]和相關(guān)的歸約證明方法[12],針對方案所提供的數(shù)據(jù)的完整性保證及其在審計過程中數(shù)據(jù)的隱私保護屬性分別給出了形式化的安全證明.
2007年,Ateniese等[13]基于同態(tài)可驗證標記(Homomorphic verifiable tags,HVTs),提出了“可證明數(shù)據(jù)擁有”(PDP)模型,并在該模型下,提出了兩個PDP方案,方案中通過從服務(wù)器端隨機抽取數(shù)據(jù)塊來生成對數(shù)據(jù)擁有的概率證明. 該方案被認為是第一個同時提供無塊驗證和公共驗證的方案. Juels和Kaliski[14]提出了一個“可取回性證明”(PoR)模型,并提出了一個PoR方案,通過使用抽樣檢查和糾錯碼等技術(shù),確保了對外包數(shù)據(jù)的可擁有性和可取回性. 但是,用戶能夠執(zhí)行的驗證次數(shù)是預(yù)先確定的,而且方案未能支持公共可審計性. 在此基礎(chǔ)上,Shacham等[11]設(shè)計了一個CPoR(Compact PoR)模型,并在Juels-Kaliski模型中給出了CPoR模型能夠抵御任意敵手的安全性證明. 文中基于BLS簽名技術(shù)提出了一個公共可驗證的CPoR方案. 2009年,Erway等[15]基于跳躍表結(jié)構(gòu),提出了支持動態(tài)數(shù)據(jù)操作的PDP(Dynamic PDP,DPDP). 該方案利用跳躍表結(jié)構(gòu)來確保數(shù)據(jù)塊簽名的完整性,并通過數(shù)據(jù)塊簽名的完整性來保證數(shù)據(jù)塊的完整性. 該方案能夠有效地支持外包數(shù)據(jù)的動態(tài)操作. 2011年,Wang等[16]提出了一個能夠同時支持動態(tài)數(shù)據(jù)操作和公共可審計的方案,方案中的認證信息是通過Merkle哈希樹(MHT)進行管理的,樹中葉節(jié)點的數(shù)據(jù)項值為H(mi). 然而,Liu等在文獻[6]中指出,由于該方案中的MHT沒有包含塊索引信息,所以,該結(jié)構(gòu)不能夠驗證數(shù)據(jù)塊的索引值,由此可能會導(dǎo)致替換攻擊. 同時,Liu等提出了一個基于自上而下的多副本MHT的云存儲大數(shù)據(jù)公共審計方案,該方案支持動態(tài)數(shù)據(jù)更新. 2013年,通過利用隨機掩碼技術(shù)對響應(yīng)信息進行盲化處理,Wang等[5]又提出了隱私保護的公共審計方案. 然而,文中對動態(tài)數(shù)據(jù)操作部分沒有給出清晰的描述. Yu等在文獻[7]中提出了一個基于身份的支持完美數(shù)據(jù)隱私保護的遠程云存儲審計方案. Mo等在文獻[8]中提出了一個云存儲中不可否認的數(shù)據(jù)擁有驗證方案,該方案不僅可以讓用戶檢測到云服務(wù)器是否丟失了用戶的數(shù)據(jù),還可以保護云服務(wù)器不被惡意用戶敲詐. 2015年,基于多項式剩余定理,Yuan和Yu[17]提出了一種公共可驗證的云存儲PoR方案,該方案中用戶端的通信量和計算開銷均為常量. 在此方案的基礎(chǔ)上,Zhang等[18]提出了一個改進的安全模糊審計協(xié)議. 研究人員還提出了其他一些遠程數(shù)據(jù)完整性檢查的方案[19?24],這些方案分別對遠程數(shù)據(jù)完整性檢查的不同方面進行了研究.
本文中研究的云存儲數(shù)據(jù)審計系統(tǒng)包括:云用戶、CSS和TPA等三個實體,如圖1所示.
圖 1 包含CSS、云用戶和TPA的云存儲架構(gòu)Fig.1 Cloud storage architecture with CSS, cloud users, and TPA
云用戶是數(shù)據(jù)所有者,他們有大量數(shù)據(jù)文件需要存儲在CSS中,并且可以通過與CSS交互來訪問和動態(tài)更新他們的數(shù)據(jù). 由云服務(wù)提供商(CSP)管理的CSS具有大量的存儲、計算和網(wǎng)絡(luò)帶寬等資源. 存儲在云中的用戶數(shù)據(jù)由CSP管理和維護. TPA具有大多數(shù)用戶所不具備的專業(yè)技術(shù)和能力,并且可以在用戶的委托下代表用戶對外包數(shù)據(jù)進行完整性審計.
為確保外包數(shù)據(jù)的完整性和正確性,用戶需定期進行檢查. 為了節(jié)省計算資源和網(wǎng)絡(luò)帶寬等,用戶可以將此任務(wù)委托給TPA. 然而,在審計過程中他們一般不希望數(shù)據(jù)內(nèi)容被泄露給TPA.
在這個模型中,本文假設(shè)云服務(wù)器沒有動機向任何外部實體透漏其所托管的數(shù)據(jù). 同時,還假設(shè)TPA沒有動機在審計過程中與CSP或用戶串通,然而,TPA對用戶的數(shù)據(jù)內(nèi)容是感興趣的.
在此模型下,文中提出了一個云存儲公共審計方案,該方案預(yù)期達到的設(shè)計目標如下.
(1)公共可審計性:在用戶的委托下,允許第三方審計者(TPA)在不下載整個文件副本的情況下,驗證外包數(shù)據(jù)的完整性.
(2)存儲正確性:確保不存在能夠在沒有完好地存儲云用戶數(shù)據(jù)的情況下通過TPA審計的CSP.
(3)隱私保護:確保TPA不能從審計過程中收集的信息獲取用戶的數(shù)據(jù)內(nèi)容.
(4)高性能:TPA能以較小的通信量和計算開銷完成對外包數(shù)據(jù)的完整性審計.
(5)支持數(shù)據(jù)動態(tài)操作:允許數(shù)據(jù)所有者隨時對云存儲中的數(shù)據(jù)進行修改、插入和刪除數(shù)據(jù)塊等更新操作.
索引-存根表(Index-stub table, IST)是一個二維表,表中只有兩個數(shù)據(jù)項:數(shù)據(jù)塊的序號和數(shù)據(jù)塊的存根值,如表1所示. 每個數(shù)據(jù)塊對應(yīng)的存根值為(H(mi))α/β,該值是數(shù)據(jù)塊認證符(或簽名)構(gòu)造中的一個組成部分,其中,mi為第i個數(shù)據(jù)塊,α和β為用戶的密鑰. 用戶端保留存根,而將數(shù)據(jù)塊的認證符作為票據(jù)發(fā)送給服務(wù)器,如圖2所示.
表 1 索引-存根表Table 1 Index-stub table
圖 2 存根與票據(jù)Fig.2 Stub and ticket
如果沒有密鑰,任何人偽造出有效的存根都是困難的. 通過IST表,用戶可以有效地監(jiān)視服務(wù)器端的行為. 存根值可以用于檢查數(shù)據(jù)塊認證符是否完整,進而通過認證符的完整性來驗證數(shù)據(jù)塊的完整性. 同時,能夠保證數(shù)據(jù)塊的順序不會被改變. 相比于MVT表[9]和IHT表[4],IST表結(jié)構(gòu)更簡單、更易于維護,而且無需考慮塊索引值重復(fù)而引發(fā)的偽造攻擊.
將數(shù)據(jù)文件上傳到服務(wù)器之后,IST表保存在用戶端. 當(dāng)用戶對數(shù)據(jù)文件進行數(shù)據(jù)塊修改、插入和刪除等操作時,IST表也要進行相應(yīng)地更新.當(dāng)用戶委托第三方審計者對數(shù)據(jù)進行完整性審計時,還要給TPA發(fā)送一個IST表的副本,此后,只有數(shù)據(jù)進行了更新操作,才會再次發(fā)送副本.
本文遵循了文獻[16, 25?27]中使用的概念,在CPoR模型[11]和文獻[28]中的相關(guān)方法的基礎(chǔ)上,基于索引-存根表結(jié)構(gòu),提出了一個隱私保護的云存儲審計的方案.
該方案包括兩個算法KeyGen(1k),St(sk,F)和一個交互式審計協(xié)議Audit(CSP,TPA)[29?30].
設(shè)S=(p,G,GT,e)為一個雙線性映射群系統(tǒng),隨機選取兩個生成元g,h∈RG,其中,G,GT是兩個階為大素數(shù)p的群. 函數(shù)H(·)是一個安全的密碼學(xué)哈希函數(shù),即H:{0,1}?→G,它將字符串均勻地映射到G中. 另一個散列函數(shù)h(·),將GT中的群元素均勻地映射到Zp,即,h:GT→Zp.
St(sk,F):將文件F切分成n×s個區(qū),mij∈Zp. 云用戶選擇s個隨機值τ1,···τs∈Zp作為文件的秘密值,并計算uj=gτj∈G,1≤j≤s和每個數(shù)據(jù)塊i的認證符:
用戶從Zp中均勻隨機地選取fn作為文件F的標識符. 設(shè)t0為“fn||n||u1||···||us”,云用戶計算SSigssk(t0),并將t=t0||SSigssk(t0)作為F在私鑰ssk下的文件標記. 然后,用戶將F連同認證符集合Φ=(σ1,···,σn)上傳到服務(wù)器,上傳完成后,這些數(shù)據(jù)可以從本地存儲器中刪除. 用于檢查外包數(shù)據(jù)完整性的IST表,需要保存在用戶的本地存儲器中,在對文件進行各種更新操作時,由用戶來維護.
當(dāng)用戶委托一個TPA來完成數(shù)據(jù)完整性檢查時,被授權(quán)的TPA首先提取文件標記t,利用spk檢查t中簽名的有效性,如果驗證失敗,則發(fā)出“錯誤”并退出;否則,TPA恢復(fù)出fn. 然后,可以定期啟動下面的審計協(xié)議.
Audit(CSP,TPA): 它是一個在CSP和TPA之間的三步(3-move)協(xié)議,運行過程描述如下所示.
(1)承諾階段(CSP→TPA):CSP選擇s個隨機值λj∈RZp, (1≤j≤s),然后計算Tj=ujλj,(1≤j≤s),并將值:{Tj}1≤j≤s,作為承諾信息發(fā)送給TPA.
(2)挑戰(zhàn)階段(CSP←TPA):收到承諾信息后,TPA隨機選擇一組挑戰(zhàn)信息Chal={c,k1,k2},其中,c是要驗證的數(shù)據(jù)塊的個數(shù),k1,k2分別是偽隨機置換πk和偽隨機函數(shù)fk的隨機密鑰. πk和fk分別用于生成被挑戰(zhàn)的c個數(shù)據(jù)塊的索引值sx(1≤x≤c,1≤sx≤n)和對應(yīng)的線性運算系數(shù)vi(i∈{sx|1≤x≤c},vi∈RZp). 現(xiàn)假設(shè)用I表示c個隨機索引值的集合{sx}1≤x≤c, 用Q表示被挑戰(zhàn)塊的索引值與其系數(shù)構(gòu)成的對集合{(i,vi)}i∈I. 接下來,TPA將挑戰(zhàn)信息Chal發(fā)送給證明者CSP.
(3)應(yīng)答階段(CSP→TPA):在接收到Chal后,CSP隨機選擇r∈Zp,并計算sx=πk1(x),vi=fk2(x),ψ=e(gr,h),γ=h(ψ),σ和μ,其中,
然后,證明者CSP將響應(yīng)值θ=(σ,μ,ψ)發(fā)送給驗證者TPA.
驗證:TPA計算γ=h(ψ),然后,驗證下面的等式是否成立,如果成立,輸出“接受”,否則,輸出“拒絕”.
對于每一個隨機挑戰(zhàn)Q及其正確的響應(yīng)值,方程的正確性可闡述如下:
等式的右邊=
等式的左邊
因此,這意味著方程對于正確的應(yīng)答信息是有效的.
當(dāng)TPA同時處理D個不同用戶分別對D個不同文件進行審計的委托時,為了更高效地完成審計任務(wù),通過擴展該方案使其具有批量審計功能. 如果集合Q中的i值在被審計文件的文件塊數(shù)量范圍之內(nèi),則可以將該文件的審計任務(wù)添加到批審計中,以實現(xiàn)對多個審計任務(wù)的一次性執(zhí)行.批量審計相對于分別單獨審計來說,可以將計算消耗稍大的雙線性對操作(Pairing operation, PO)的數(shù)量從2D減少到D+1.
假設(shè)第k個用戶選擇的參數(shù)為uk,j∈RG, 1≤k≤D,用戶的外包文件為文件名為fnk,文件標記為文件中第i個數(shù)據(jù)塊的簽名是:
CSP選擇的參數(shù)為λk,j∈RZp,然后計算Tk,j=uk,jλk,j并將其作為用戶k的承諾. TPA選擇挑戰(zhàn)值為Chal={c,k1,k2},并將其發(fā)送到CSP. 接收到Chal后,CSP計算出Q={(i,vi)}i∈I,隨機選擇rk∈RZp,然后,計算ψk=e(grk,h)和
在接收到CSP的響應(yīng)信息后,TPA檢查下面的等式是否成立,如果成立,輸出“接受”,否則,輸出“拒絕”.
該方案能夠?qū)ν獍鼣?shù)據(jù)進行各種數(shù)據(jù)塊級的動態(tài)操作,包括:修改(‘M’)、插入(‘I’)和刪除(‘D’)數(shù)據(jù)塊等操作,這幾種動態(tài)操作的過程描述如下.
3.4.1 修改操作
對于一個文件F={m1,m2,···,mn},假設(shè)用戶想要將某個數(shù)據(jù)塊mi修改為數(shù)據(jù)塊,用戶執(zhí)行PrepareUpdate(·)算法以完成以下操作.
在收到用戶的修改操作請求后,CSS執(zhí)行PerformUpdate(·)算法以完成以下操作.
(1)將數(shù)據(jù)塊mi替換為,獲得文件F的一個新版本;
(2)將集合Φ中的σi替換為.
3.4.2 插入操作
對于文件F={m1,m2,···,mn},假設(shè)用戶想要在第i個數(shù)據(jù)塊后面的位置插入一個新的數(shù)據(jù)塊用戶執(zhí)行PrepareUpdate(·)算法來完成以下操作.
在收到用戶的插入操作請求后,CSS執(zhí)行PerformUpdate(·)算法來完成以下操作.
(1)在文件F中第i塊后面的位置插入數(shù)據(jù)塊mi+1′,從而獲得文件F的一個新版本;
(2)將σi+1′插入到集合Φ中第i個位置后面.
3.4.3 刪除操作
如果用戶想要刪除文件F中第i個數(shù)據(jù)塊,首先,從IST表中刪除第i條記錄,并向CSS發(fā)送刪除操作請求“update =(fn,D,i,mi,σi)”.
在收到用戶的這個請求后,CSS運行PerformUpdate(·)算法來執(zhí)行以下操作.
(1)刪除數(shù)據(jù)塊mi,獲得文件的一個新版本;
(2)從集合Φ中刪除σi.
可靠性意味著證明者錯誤的響應(yīng)值被驗證者接受為正確的響應(yīng)值的可能性很小. 在此上下文中,這意味著如果用戶的外包數(shù)據(jù)沒有被完好地保存時,那么CSS將無法對TPA的挑戰(zhàn)生成有效的響應(yīng),如定理1中所述. 我們的安全性證明依賴于計算Diffie-Hellman問題和離散對數(shù)問題在雙線性群中是困難的假設(shè).
定理1 如果CSS能夠通過Audit(·)協(xié)議的數(shù)據(jù)完整性審計驗證過程,那么,它確實完好無損地存儲著指定的數(shù)據(jù).
基于CPoR中的證明方法(文獻[11]中定理4.2),我們在隨機預(yù)言機模型中給出了定理1的證明.
現(xiàn)存在一個挑戰(zhàn)者和一個敵手A(即,惡意的CSP). 挑戰(zhàn)者構(gòu)造了一個模擬器S,它將為敵手A模擬出該方案的整個環(huán)境. 對于之前進行過St問詢的任何文件F,敵手A都可以與挑戰(zhàn)者一起執(zhí)行Audit(·)的審計協(xié)議. 在這些協(xié)議執(zhí)行過程中,模擬器S扮演驗證者的角色,而敵手A扮演證明者的角色:S(pk,sk,t)?A.
對于某個文件F,如果敵手A能夠以不可忽略的概率成功地偽造聚合簽名σ′,導(dǎo)致,且能夠通過數(shù)據(jù)完整性審計驗證,那么,模擬器可以利用敵手A解決計算Diffie-Hellman困難問題.假設(shè)該模擬器的輸入值為h,X=hα,Y=hβ,其目標是輸出hα·β.
設(shè)H:{0,1}?→G為一個哈希函數(shù),將被建模為一個隨機預(yù)言機. 模擬器將對隨機預(yù)言機H進行編程. 當(dāng)回答敵手A的問詢時,模擬器隨機選擇, 并用hr∈G作為響應(yīng)值,當(dāng)回答形如H(mi)的問詢時,模擬器以下面描述的特殊方式對預(yù)言機進行編程.
對于每個j, 1≤j≤s,模擬器選擇隨機值并設(shè)置uj←(X)ηj·hθj..
對于每個i, 1≤i≤n,模擬器選擇一個隨機值并將i值處的隨機預(yù)言機編程為
接下來,模擬器計算:
挑戰(zhàn)者保存一份對敵手A提出的St問詢的響應(yīng)列表. 然后,挑戰(zhàn)者觀察與對手A執(zhí)行的每一個Audit(·)審計協(xié)議的實例,如果在任何一個實例中,敵手是成功的(即,驗證方程成立),但敵手的聚合簽名,則挑戰(zhàn)者宣告失敗并中止.
假設(shè)挑戰(zhàn)值Q={(i,vi)}是導(dǎo)致挑戰(zhàn)者中止的問詢,敵手對該問詢的響應(yīng)值是假設(shè)期望的響應(yīng)值為μ1,μ2,···,μs和σ,通過方案的正確性,可知期望的響應(yīng)值滿足驗證方程:
因為挑戰(zhàn)者中止了,所以我們知道σ≠σ′并且σ′通過了驗證方程:
可以觀察到,如果對于每個j,都有那么我們可以得到,這與我們上面的假設(shè)相矛盾. 因此,如果我們定義那么一定是集合{?μj}中至少有一個值是非零的. 設(shè)用等式(7)除以等式(6),我們得到
如前所述,我們知道σ′=σ. 由等式(6)和(7)可以得到:
通過代入μ和μ′的值,我們得到
因此,我們發(fā)現(xiàn)了解決離散對數(shù)問題的方法,
隱私保護屬性是確保TPA無法從審計過程中收集到的信息中提取用戶數(shù)據(jù).
定理2 TPA不能從CSP的響應(yīng)信息θ和IST表中的中提取用戶的數(shù)據(jù)內(nèi)容.
證明:由于mi,α和β的值對TPA都是隱藏的,因此H(mi)的值不能通過確定. 雖然e(H(mi),X)等于的值也不能從中計算出來. 因為由得出的同構(gòu)被認為是單向函數(shù)[31],當(dāng)給定時,計算出P是不可行的. 因此,要從中恢復(fù)mi是困難的. 同理,從σ中提取σi也是困難的.
每一個λj都是由CSP隨機選擇的,而是它的逆值是通過值進行了盲化處理,因此,在每次響應(yīng)中的μj值都均勻地分布在Zp中. 雖然TPA可以得到足夠多的數(shù)據(jù)塊mi及其系數(shù)vi的線性組合,但如果想要獲得μj?的值,則必須首先得到λj?1. λj可由Tj=ujλj, (1≤j≤s)計算得到,然而,這意味著要解決離散對數(shù)問題(DLP). 由于DLP的困難假設(shè),TPA在多項式時間內(nèi)計算出值是不可行的. 因此,從μj(1≤j≤s)中獲得用戶數(shù)據(jù)是困難的.元素,這兩個值對TPA都是隱藏的.
為了評價該方案的性能,我們分別進行了相關(guān)的理論分析和實驗比較.
理論分析的目的是從理論上將我們的方案與類似的方案在用戶端、服務(wù)器端和審計者等三方的計算開銷進行比較.
首先,為了便于描述,在表2中指定了一些基本的運算操作符號[32]. 接下來,對新提出的方案與文獻[5]中提出的方案在計算開銷方面進行了相應(yīng)的比較和分析,如表3所示.
表 2 符號和相關(guān)操作說明Table 2 Notations of relevant operations
用戶端的主要運算操作是計算文件中數(shù)據(jù)塊的簽名、文件的標記和一些公共參數(shù). 將這些計算開銷合并在一起,即可得到用戶端的計算總開銷. 從表3中可以得出,在用戶端的計算開銷上,新提出的方案比文獻[5]中的方案多了,而對方相比于我們的方案多了所以,在用戶端的效率上,我們的方案要略優(yōu)于文獻[5]中方案.
服務(wù)器端的計算開銷包括生成審計階段的承諾信息和響應(yīng)信息兩個方面. 從表3中可以看出,在服務(wù)器端,文獻[5]中的方案比新提出的方案多出,由于有s?1次對操作(PO),這部分計算開銷較大. 而相比于文獻[5]中的方案,新提出的方案多出的計算開銷為,然而,將其中的指數(shù)運算部分與對方多出的指數(shù)運算相互抵消后,新提出的方案多出的計算開銷在總開銷中占的比例很小,幾乎是可以忽略不計的. 所以,新提出的方案在CSP端的計算開銷要優(yōu)于另一個方案. 而這兩個方案在TPA端的計算開銷基本相當(dāng). 因此,從理論分析可知,我們的方案是高效的.
為了驗證上述理論分析的結(jié)果,我們進行了相關(guān)的實驗. 我們在0.5.14版本的Pairing-based cryptography(PBC)庫上進行了實驗,實驗在Ubuntu Linux系統(tǒng)上用C語言編程實現(xiàn). 硬件平臺配備主頻為3.60 GHz的Intel Core i7-4790 CPU、8 GB的DDR3內(nèi)存和7200轉(zhuǎn)/分的Seagate 1 TB驅(qū)動器.實驗中使用的橢圓曲線是一條MNT曲線,基域大小為159位,嵌入度為6.p的位長度是160位. 測試數(shù)據(jù)是隨機生成的100 MB的文件.c值的選擇是基于文獻[13]中的概率框架. 所有實驗結(jié)果均為30次試驗的平均值.
表 3 不同的隱私保護方案之間的計算開銷比較Table 3 Comparison of the computation overhead of different privacy-preserving schemes
5.2.1c值的選擇
圖 3 概率框架的計算過程Fig.3 Computation process of the probabilistic framework
5.2.2 批審計的效率
為了驗證批審計的效率是否真的優(yōu)于分別單獨審計的效率,在相同的實驗環(huán)境下,對新提出的方案分別進行了批量審計和分別單獨審計的相關(guān)實驗測試. 在實驗中,s取值為1,審計的任務(wù)數(shù)從10個增加到150個,每間隔10個做了一個實驗,為了便于比較,將單獨一個任務(wù)的情況也進行了實驗. 最后,用每次實驗中得到的總審計時間除以相應(yīng)的任務(wù)數(shù),得到了單個任務(wù)的平均審計時間,如圖4中所示,批量審計的平均審計時間明顯低于分別單獨審計的平均審計時間,可以使TPA節(jié)省大約4%的時間.
5.2.3 方案之間的比較
圖 4 批量審計與分別單獨審計的平均審計時間比較Fig.4 Comparison of the average audit time between the batch audit and separate audit
為了驗證新提出的方案在審計過程中的效率,針對方案中的TPA和CSP的計算開銷,我們將該方案與文獻[5]中提出的方案分別進行了實驗比較,如圖5和6所示. 從圖5中可以看出,新提出的方案在TPA的計算開銷方面,略優(yōu)于另一個方案,但總體上兩個方案之間差別微小,因為在值相同的兩條曲線之間的距離很小,只有在c=460時,基于IST表的方案的曲線,隨著s值的增加,斜率有減小趨勢. 從圖6可以看出,就CSP的計算開銷而言,我們的方案在CSP端的計算開銷明顯優(yōu)于文獻[5]中提出的方案.
圖 5 TPA的計算時間比較Fig.5 Comparisons of the TPA computing time
圖 6 CSP的計算時間比較Fig.6 Comparisons of the CSP computing time
本文中提出了一個索引-存根表的結(jié)構(gòu),并基于該結(jié)構(gòu)提出了一個具有隱私保護屬性的云存儲第三方審計方案. 該方案能夠支持各種數(shù)據(jù)塊級的動態(tài)操作. 通過索引-存根表結(jié)構(gòu),可以有效地降低用戶端的維護難度. 相關(guān)的安全分析表明,該方案是可證明安全的,并且在TPA審計階段具有隱私保護的屬性. 在性能分析部分,進行了相關(guān)的理論分析和實驗比較,結(jié)果表明該方案是高效的.