張 逢,文 斌,閆一非,曾昭武,周 偉
(1.海南師范大學(xué)信息科學(xué)技術(shù)學(xué)院,海南 ???571158;2.海南師范大學(xué)云計(jì)算與大數(shù)據(jù)研究中心,海南 ???571158; 3.數(shù)據(jù)科學(xué)與智慧教育教育部重點(diǎn)實(shí)驗(yàn)室(海南師范大學(xué)),海南 ???571158)
隨著5G、人工智能、云計(jì)算和物聯(lián)網(wǎng)等技術(shù)的融合創(chuàng)新,數(shù)據(jù)存儲(chǔ)需求迅速增加。用戶將數(shù)據(jù)外包給遠(yuǎn)程云存儲(chǔ)服務(wù)器,但數(shù)據(jù)的安全性和計(jì)算可信度取決于云存儲(chǔ)服務(wù)器的信譽(yù)。然而,數(shù)據(jù)可能泄露或丟失[1],傳統(tǒng)的完整性審核技術(shù)在云環(huán)境中并不適用。為了保證外包數(shù)據(jù)的完整性,Juels等人[2]提出了“可檢索性證明”PoR(Proof of Retrievability)方案,該方案在數(shù)據(jù)中嵌入哨點(diǎn)值以進(jìn)行數(shù)據(jù)完整性審計(jì)。Ateniese等人[3]引入了可證明數(shù)據(jù)擁有PDP(Provable Data Possession)的概念,并引入了第三方審計(jì)TPA(Third-Party Auditor)來驗(yàn)證公共場景中數(shù)據(jù)的正確性,然而這些操作不支持?jǐn)?shù)據(jù)動(dòng)態(tài)性。為了支持?jǐn)?shù)據(jù)動(dòng)態(tài)性,Ateniese等人[4]提出了第一個(gè)支持部分?jǐn)?shù)據(jù)動(dòng)態(tài)性的PDP方案。隨后,許多數(shù)據(jù)完整性審計(jì)方案專注于支持完整的數(shù)據(jù)動(dòng)態(tài)。Wang等人[5]開發(fā)了一種基于默克爾哈希樹MHT(Merkle Hash Tree)的方法,以支持公共審計(jì)和全面的數(shù)據(jù)動(dòng)態(tài)。然而,如果塊索引未得到正確性驗(yàn)證,惡意云存儲(chǔ)服務(wù)器可以通過選擇另一個(gè)塊及其有效性證明來欺騙云用戶。之后,Barsoum等人[6]提出了第一個(gè)基于改進(jìn)的MHT的動(dòng)態(tài)多副本PDP方案,稱為基于樹的多副本PDP,即TB-PMDDP(Tree-Based Provable Multi-copy Dynamic Data Possession)。然而,該方案不驗(yàn)證塊的位置,導(dǎo)致無法抵抗替換攻擊。為了解決這個(gè)問題,Liu等人[7]提出了一種基于MHT的新型認(rèn)證數(shù)據(jù)結(jié)構(gòu),解決了經(jīng)典MHT中塊索引缺乏認(rèn)證的問題。但是,此方法需要單獨(dú)驗(yàn)證所有副本以查找損壞的副本,導(dǎo)致計(jì)算和通信開銷隨著副本數(shù)量的增加而線性增加。Shen等人[8]設(shè)計(jì)了一種結(jié)合雙鏈接信息表和位置數(shù)組的動(dòng)態(tài)結(jié)構(gòu),以有效地支持?jǐn)?shù)據(jù)動(dòng)態(tài),但未考慮數(shù)據(jù)新鮮度。
為了增強(qiáng)數(shù)據(jù)的可靠性和持久性,Curtmola等人[9]提出了基于RSA(Rivest-Shamir-Adleman)標(biāo)簽的多副本解決方案,但僅適用于靜態(tài)文件。為了識(shí)別損壞的副本,Barsoum等人[10]開發(fā)了一種不支持動(dòng)態(tài)操作的多副本解決方案。Zhu等人[11]提出了協(xié)作PDP方案,用于在多云環(huán)境中檢查數(shù)據(jù)完整性。該方案指定一個(gè)云存儲(chǔ)服務(wù)器作為組織者,通過與其他云服務(wù)提供商的交互來完成審計(jì)過程。但是,該方案存在一個(gè)缺陷,即使所有外包數(shù)據(jù)都受到損害,惡意云服務(wù)提供商仍然可以生成有效證明。He等人[12]提出了一個(gè)專門為多云存儲(chǔ)設(shè)計(jì)的可公開驗(yàn)證的批量審計(jì)方案。該方案也引入了組織者,在不同的云服務(wù)提供商之間分發(fā)數(shù)據(jù)文件,并協(xié)助分配質(zhì)詢請(qǐng)求,并在審計(jì)階段合并不同提供商生成證明。Wang[13]提出了基于身份的分布式PDP方案ID-DPDP(IDentity-based Distributed Provable Data Possession),其中組織者負(fù)責(zé)轉(zhuǎn)發(fā)塊標(biāo)簽并向云服務(wù)提供商發(fā)送請(qǐng)求,然后在多云存儲(chǔ)場景中組合來自不同提供商的證明。然而,Peng等人[14]發(fā)現(xiàn)ID-DPDP方案未能實(shí)現(xiàn)其聲稱的安全目標(biāo),因?yàn)榧词顾袛?shù)據(jù)都被丟棄,云服務(wù)提供商仍然可以生成有效證明,隨后提出了一個(gè)新的解決方案來解決這個(gè)問題。然而,Lan等人[15]指出,在文獻(xiàn)[14]的解決方案中,惡意云服務(wù)提供商仍然可以在沒有完整的外包數(shù)據(jù)的情況下生成有效證明,從而引入安全漏洞。在文獻(xiàn)[15]中他們提供了一個(gè)修改方案來解決該問題。此外,Li等人[16]將多副本存儲(chǔ)策略與區(qū)塊鏈技術(shù)相結(jié)合,引入了適用于分布式存儲(chǔ)服務(wù)的可公開驗(yàn)證結(jié)構(gòu),解決了與集中存儲(chǔ)相關(guān)的單點(diǎn)故障問題。Zhou等人[17]利用隨機(jī)掩碼技術(shù)生成可區(qū)分的副本塊,并提出了一種具有改進(jìn)Merkle哈希樹的多副本數(shù)據(jù)完整性審計(jì)方案,用于動(dòng)態(tài)操作。然而,他們的完整性審計(jì)方案M2HT(Multicopy Merkle Hash Tree)并沒有專門識(shí)別哪個(gè)副本塊已損壞。Li等人[18]提出了一種基于身份的多云存儲(chǔ)多副本PDP方案,然而該方案需要向不同的云服務(wù)提供商交付不同的副本,從而導(dǎo)致額外的存儲(chǔ)和通信開銷。多副本方案中大多數(shù)PDP協(xié)議都是基于PKI(Public Key Infrastructure)技術(shù),這給證書管理成本帶來了沉重的負(fù)擔(dān)。
本文基于文獻(xiàn)[19]的身份加密,提出了一種新的基于身份的多云多副本PDP協(xié)議IDM2PDP(IDentity-based Multi-cloud Multi-copy Provable Data Possession)。該協(xié)議基于身份加密來簡化證書管理,并設(shè)計(jì)了一種新的安全數(shù)據(jù)結(jié)構(gòu),稱為雙層默克爾哈希樹D-MHT(Double Merkle Hash Tree)。D-MHT不僅支持?jǐn)?shù)據(jù)的動(dòng)態(tài)修改,而且還可以保證副本的一致性和新鮮度,且可以定位損壞的數(shù)據(jù)塊,便于通過其他副本對(duì)損壞的數(shù)據(jù)塊進(jìn)行恢復(fù),提高存儲(chǔ)的健壯性。IDM2PDP還支持同一用戶多文件的批處理審計(jì)。每個(gè)云存儲(chǔ)服務(wù)器都維護(hù)一個(gè)D-MHT。D-MHT的根哈希與其對(duì)應(yīng)的云存儲(chǔ)服務(wù)器的唯一標(biāo)識(shí)符進(jìn)行關(guān)聯(lián)。在總簽名上,所有的根哈希及其對(duì)應(yīng)的云服務(wù)提供商的唯一標(biāo)識(shí)符與秘密時(shí)間戳、文件唯一標(biāo)識(shí)符、用戶的唯一標(biāo)識(shí)符進(jìn)行關(guān)聯(lián),以確保文件與D-MHT之間的關(guān)聯(lián)性和標(biāo)簽的新鮮度,從而確保根哈希的標(biāo)簽無法被生成或替換。性能評(píng)估和實(shí)驗(yàn)評(píng)估結(jié)果表明,相對(duì)于PDP-D[18],IDM2PDP效率更高、計(jì)算成本更低。
本文需要用到一些符號(hào)說明如表1所示。
Table 1 Symbols description表1 符號(hào)說明
考慮2個(gè)q階的乘法循環(huán)群G和GT,其中q是素?cái)?shù)。e:G×G→GT為雙線性映射,滿足如下性質(zhì):
(2)非退化性:?P,Q∈G,e(P,Q)≠1;
(3)可計(jì)算性:?P,Q∈G,存在一種有效的算法可以計(jì)算e(P,Q)。
本文所提出的方案IDM2PDP的系統(tǒng)模型如圖1所示,該模型包括5個(gè)實(shí)體:
(1)私鑰生成器PKG(Private Key Generator):負(fù)責(zé)生成系統(tǒng)的公共參數(shù)、主公鑰、主密鑰以及數(shù)據(jù)所有者的私鑰。
(2)數(shù)據(jù)所有者DO(Data Owner):指擁有大量數(shù)據(jù)文件但資源有限的個(gè)人、公司或商業(yè)組織等實(shí)體。
(3)第三方審計(jì)(TPA):指對(duì)DO數(shù)據(jù)進(jìn)行完整性審計(jì)的實(shí)體,減輕了DO數(shù)據(jù)審計(jì)的計(jì)算負(fù)擔(dān)。
(4)云存儲(chǔ)服務(wù)器CSS(Cloud Storage Ser- ver):指具有足夠計(jì)算能力和無限存儲(chǔ)空間的實(shí)體,負(fù)責(zé)保存外包數(shù)據(jù)。
(5)云管理服務(wù)器CMS(Cloud Manage Ser- ver):在存儲(chǔ)文件副本時(shí),DO將文件副本發(fā)送給CMS,CMS根據(jù)DO的請(qǐng)求,將不同的副本分發(fā)給目標(biāo)CSS。需要審計(jì)文件完整性時(shí),DO委托TPA,TPA將挑戰(zhàn)發(fā)送給CMS,CMS將挑戰(zhàn)分發(fā)給目標(biāo)CSS。收到所有CSS返回的證明后,CMS聚合完整證明并回復(fù)給TPA。
Figure 1 System model圖1 系統(tǒng)模型
本文假設(shè)CSS和CMS是半可信實(shí)體,它們能遵循協(xié)議,但在數(shù)據(jù)損壞的情況下可能向TPA提供虛假信息。TPA也被認(rèn)為是半可信實(shí)體,能誠實(shí)地執(zhí)行數(shù)據(jù)完整性驗(yàn)證并將真實(shí)結(jié)果返回給DO,但對(duì)DO的數(shù)據(jù)有好奇心。
定義1(IDM2PDP方案) 該方案包括9個(gè)多項(xiàng)式時(shí)間算法:Setup,Extract,CopyGen,TagGen,AuthGen,ChalGen,ProofGen,ProofAgg,ProofVerify。
(1)Setup(1λ):該算法由PKG執(zhí)行,輸入安全參數(shù)λ,輸出主密鑰和系統(tǒng)公共參數(shù)。
(2)Extract(param,x,Uid):該算法由PKG完成,輸入主秘鑰x、DO的唯一標(biāo)識(shí)Uid和系統(tǒng)公共參數(shù)param,輸出DO私鑰sk。
(3)CopyGen(F,N):DO執(zhí)行該算法生成文件副本。輸入原始文件F和備份數(shù)N,輸出F的副本集D={Fi}1≤i≤N。
(4)TagGen(D,σid,Uid,Fid):該算法由DO運(yùn)行,為每個(gè)副本Fi生成標(biāo)簽。輸入為副本集D={Fi}1≤i≤N、DO密鑰σid、用戶唯一標(biāo)識(shí)Uid和文件唯一標(biāo)識(shí)Fid。輸出為標(biāo)簽集θ={ψi}1≤i≤N,其中ψi={ψij}1≤j≤n,以及文件簽名sigF和所有D-MHT樹根的總簽名sigR。
(5)AuthGen(TPAid,Fid,σid):該算法由DO運(yùn)行,創(chuàng)建TPA的授權(quán)信息。輸入TPA的唯一標(biāo)識(shí)TPAid和DO的密鑰σid,生成挑戰(zhàn)信息Chal=(num,k1,k2)、授權(quán)信息auth,并計(jì)算授權(quán)簽名sigauth,用于防止非法TPA進(jìn)行完整性審計(jì)。
(6)ChalGen(sigauth,auth):該算法由TPA執(zhí)行,發(fā)送Chal和auth及其簽名sigauth給CMS。
(7)ProofGen(FSc,TSc,Chal):該算法由CSS執(zhí)行,設(shè)其唯一標(biāo)識(shí)符為Cidc。輸入為文件副本集FSc、對(duì)應(yīng)標(biāo)簽集TSc和Chal。輸出為完整性證明Pc。
(8)ProofAgg({Pc}(1≤c≤L)):由CMS運(yùn)行,聚合所有CSS的完整性證明。輸入每個(gè)CSS的完整性證明集合{Pc}(1≤c≤L),其中L為CSS的個(gè)數(shù),輸出最終完整性證明Pf。
(9)ProofVerify(Uid,h,Chal,Pf):TPA執(zhí)行該算法,通過驗(yàn)證完整性證明Pf檢驗(yàn)數(shù)據(jù)的完整性。輸入為挑戰(zhàn)Chal、DO的唯一標(biāo)識(shí)Uid、文件的秘密信息h和完整性證明Pf。只有當(dāng)Pf通過驗(yàn)證時(shí)才會(huì)輸出1,否則輸出0。
定義2一個(gè)IDM2PDP協(xié)議是安全的,如果對(duì)于任何概率多項(xiàng)式時(shí)間PPT的對(duì)手A在一組文件塊上贏得IDM2PDP游戲的概率是可以忽略的。
對(duì)手A和挑戰(zhàn)者C之間的IDM2PDP博弈可以描述為:
(1)初始階段:挑戰(zhàn)者C運(yùn)行Setup(1λ),將(param,mpk)發(fā)送給對(duì)手A,并保留主密鑰msk。
(2)副本生成階段:C執(zhí)行CopyGen獲取原始文件的所有副本。
(3)查詢階段:對(duì)手A自適應(yīng)地向挑戰(zhàn)者C發(fā)出若干個(gè)不同的查詢:
①哈希查詢:對(duì)手A隨時(shí)進(jìn)行哈希函數(shù)查詢。挑戰(zhàn)者C用相應(yīng)的哈希值回應(yīng)對(duì)手A。
②標(biāo)簽查詢:對(duì)手A以隨機(jī)方式進(jìn)行塊標(biāo)簽對(duì)查詢。挑戰(zhàn)者C接收到對(duì)手A的查詢mij后,執(zhí)行TagGen計(jì)算標(biāo)簽ψij并發(fā)送回對(duì)手A。
(4)證據(jù)驗(yàn)證:對(duì)手A執(zhí)行ProofGen和ProofAgg,為文件中任何身份為ID的塊生成完整性證明。對(duì)手A將證明發(fā)送給挑戰(zhàn)者C。挑戰(zhàn)者C執(zhí)行ProofVerify算法檢查這些證明,并將結(jié)果返回給對(duì)手A。
(5)偽造階段:對(duì)手A根據(jù)Chal指示的數(shù)據(jù)塊,計(jì)算并返回完整性證明Pf。若通過證明,則表示對(duì)手A在IDM2PDP博弈中獲勝。
(1)Setup(1λ):PKG生成主密鑰和系統(tǒng)公共參數(shù)。
③PKG發(fā)布系統(tǒng)參數(shù)param=(G,GT,q,g,e,H1,H2,Y,f,π)。
(2)Extract(param,x,Uid):PKG計(jì)算該算法并將私鑰發(fā)送給DO,DO檢查收到的私鑰的有效性。
②DO使用TagGen驗(yàn)證私鑰,若通過驗(yàn)證gσid=Rid·YH2(Rid,Uid),則接受skid。
Figure 2 Construction process of D-MHT圖2 D-MHT構(gòu)建過程
(6)ChalGen(sigauth,auth):TPA發(fā)送Chal=(num,k1,k2)和auth及其簽名sigauth給CMS。CMS收到后,首先驗(yàn)證TPA的合法性。若通過驗(yàn)證,則根據(jù)Fid搜索對(duì)應(yīng)的Tab,并將Chal發(fā)送到每個(gè)CSS。假設(shè)Cidc存儲(chǔ)的副本集及其對(duì)應(yīng)的標(biāo)簽集為FSc和TSc,副本數(shù)量為βc,對(duì)應(yīng)的副本索引為ISc。
(1)
(2)
(3)
(4)
并回復(fù)證明Pc={σc,{μck}(1≤k≤s),Ωc}給CMS,其中Ωc=(Cidc,H(mwtt),AIsub(wt),AImaster(t))t∈P,AIsub(wt)是第t棵子樹的第wt節(jié)點(diǎn)的輔助信息,包括從第wt個(gè)節(jié)點(diǎn)生成到根節(jié)點(diǎn)rj所需的相關(guān)節(jié)點(diǎn)信息。同樣,AImaster(t)是主樹中第t個(gè)節(jié)點(diǎn)的輔助信息。
(9)ProofVerify(Uid,h,Chal,Pf):收到Pf后,TPA首先通過式(5)檢查文件簽名sigF是否為DO的有效簽名。如果無效,TPA拒絕證明并告知DO。
(5)
如果簽名有效,則TPA恢復(fù)使用U、Rid和st。接下來TPA使用{Ωc}1≤c≤L驗(yàn)證所有副本是否一致。首先使用(H(mwtt),AIsub(wt))生成子樹的根rj,再使用(rj,AImaster(t))生成對(duì)應(yīng)于Cidc的主樹根Rc。同理獲得其他Cid的主樹根,并使用Cidc和Rc計(jì)算B=H(Cidc‖Rc){1≤c≤L},最后計(jì)算HR=H(B‖F(xiàn)id‖Uid‖st)。然后通過式(6)驗(yàn)證簽名:
(6)
(7)
如果CMS誠實(shí)地響應(yīng)Pf,則所提出的協(xié)議是準(zhǔn)確的。另一方面,如果已刪除任意文件塊或未對(duì)文件塊進(jìn)行任何修改,則式(7)將不成立。
3.5.1 修改
對(duì)于文件F={mj}1≤j≤n,假設(shè)在st′時(shí),將mj修改為m′j,DO執(zhí)行以下操作:
(2)CMS根據(jù)Tab,將新的數(shù)據(jù)塊和標(biāo)簽分發(fā)給涉及到的Cidc。CSS收到后執(zhí)行以下操作:
①將mij替換為m′ij。
②將ψij替換為ψ′ij。
③將H(mij)替換為H(m′ij),生成新的第j個(gè)子樹,并生成新的主樹根R′c。
④回復(fù)Pc={rj,AImaster(j),Rc}給CMS。
(3)CMS將Pf=({Pc}1≤c≤L,sigR,sigF,Rid,U)返回給DO。 當(dāng)DO收到Pf時(shí),首先根據(jù)式(5)檢查文件簽名sigF的有效性,接著根據(jù)式(6)驗(yàn)證每個(gè)Cidc的D-MHT根Rc。如果通過驗(yàn)證,DO根據(jù)Tab生成每個(gè)Cidc對(duì)應(yīng)的第j棵子樹,并得到子樹根r′j。然后使用{r′j,AImaster(j)}計(jì)算每個(gè)Cidc的新主樹根R′c,并利用所有主樹根生成新簽名sig′R=H(B′‖F(xiàn)id‖Uid‖st′)σid,其中B′=H(Cidc‖Rc′){1≤c≤L}。完成所有主樹根的簽名后,DO更新文件F的簽名。更新h中的st為st′,并計(jì)算sig′F=(H1(h))σid作為文件F的簽名。DO將{sig′R,sig′F}發(fā)送到CMS。最后DO對(duì)新塊執(zhí)行默認(rèn)的完整性審核協(xié)議。如果驗(yàn)證通過,則DO可以從其本地系統(tǒng)中刪除{m′ij,sig′F,sig′R}。
3.5.2 插入
假設(shè)DO在st′時(shí)刻插入一個(gè)數(shù)據(jù)塊m′j,必須執(zhí)行以下操作:
(2)CMS根據(jù)Tab將新的數(shù)據(jù)塊和標(biāo)簽分發(fā)給相關(guān)的Cidc,CSS收到后執(zhí)行以下操作:
①生成新塊組成的新子樹,計(jì)算新子根r′j,將其于原先位置的根rj作為兄弟葉節(jié)點(diǎn),并生成主樹的新根哈希R′c(參見圖3)。
②向CMS回復(fù)Pc={rj,AImaster(j),Rc}。
Figure 3 Insertion process of a new data block m′j in D-MHT圖3 D-MHT中新數(shù)據(jù)塊m′j的插入過程
(3)CMS將證據(jù)Pf=({Pc}1≤c≤L,sigR,sigF,Rid,U)返回給DO。當(dāng)DO收到Pf時(shí),首先根據(jù)式(5)檢查文件簽名sigF的有效性;接著再根據(jù)式(6)驗(yàn)證每個(gè)Cidc的D-MHT的根Rc。如果驗(yàn)證通過,DO根據(jù)Tab生成每個(gè)Cidc對(duì)應(yīng)的第j棵子樹,得到子樹根r′j;然后使用{r′j,AImaster(j))}計(jì)算每個(gè)Cidc的新主樹根R′c,并利用所有主樹根生成新的簽名sig′R=H(B′‖F(xiàn)id‖Uid‖st′)σid,其中B′=H(Cidc‖R′c){1≤c≤L}。完成所有主樹根的簽名后,DO更新文件F的簽名。將h中的st更新為st′,并計(jì)算sig′F=(H1(h))σid作為文件F的簽名。DO將{sig′R,sig′F}發(fā)送到CMS。最后DO對(duì)新塊執(zhí)行默認(rèn)的完整性審核協(xié)議。如果驗(yàn)證通過,則DO可以從其本地系統(tǒng)中刪除{m′ij,sig′F,sig′R}。
3.5.3 刪除
對(duì)于文件F={mj}1≤j≤n,若在系統(tǒng)時(shí)間st′刪除mj,DO需執(zhí)行以下操作:刪除的最初幾個(gè)步驟類似于插入的。數(shù)據(jù)刪除消息為(D,j),其中D特指“Deletion”。每個(gè)Cidc從其主樹中刪除第j棵子樹。父節(jié)點(diǎn)的相對(duì)索引值和哈希值也會(huì)更新。之后的所有的刪除步驟與插入步驟類似,故在此省略。
定理1(正確性) 在IDM2PDP方案中,如果DO、授權(quán)的TPA、CMS和CSS在完整性審計(jì)過程中表現(xiàn)誠實(shí),TPA就能驗(yàn)證數(shù)據(jù)的完整性。
證明具體來說,證明IDM2PDP的正確性等價(jià)于證明式(7)成立。具體證明過程如式(8)所示:
(8)
□
根據(jù)式(8)可以確保式(7)的正確性。
定理2(安全性) 在IDM2PDP方案中,未經(jīng)授權(quán)的實(shí)體無法在審計(jì)過程中從收集的信息中獲取DO的任何數(shù)據(jù)內(nèi)容。
證明假設(shè)哈希函數(shù)是抗碰撞的,所選簽名算法是安全的。
(1)單個(gè)標(biāo)簽是不可偽造的,因?yàn)闆]有DO的秘密信息st。
(9)
與實(shí)際證明的式(10)進(jìn)行比較,至少有一個(gè)μk′=μk。
(10)
□
定理3(支持授權(quán)審計(jì)) 在IDM2PDP方案中,若TPA未經(jīng)DO授權(quán),或授權(quán)已經(jīng)逾期,則TPA不能向CMS發(fā)起挑戰(zhàn)。
證明TPA首先將其身份TPAid發(fā)送到DO以獲取授權(quán)信息auth。隨后,TPA將隨機(jī)挑戰(zhàn)Chal,連同auth和sigauth一起發(fā)送到CMS。收到挑戰(zhàn)后,CMS驗(yàn)證認(rèn)證的有效性,如果驗(yàn)證失敗,CMS將拒絕該挑戰(zhàn)。
□
設(shè)Tpair、Texp和Tmul分別表示群G中1次配對(duì)、取冪和乘法運(yùn)算的時(shí)間。其他操作,如Zq中的哈希、加法和乘法的時(shí)間可以省略,因?yàn)樗鼈兊臅r(shí)間幾乎可以忽略不計(jì)。假設(shè)DO在L個(gè)CSS上存儲(chǔ)了N個(gè)副本,第c個(gè)CSS的副本數(shù)為βc,每個(gè)副本有n個(gè)塊,每個(gè)塊被分成s個(gè)扇區(qū)。若有num個(gè)挑戰(zhàn),為了生成N個(gè)副本,算法CopyGen需要運(yùn)行N次加密算法E。假設(shè)E的時(shí)間為TE,那么CopyGen的計(jì)算成本為N×TE。那么為所有副本生成所有標(biāo)簽,算法TagGen的時(shí)間開銷為Nn(2Texp+Tmul)+sTexp。算法ChalGen花費(fèi)的時(shí)間很小,可以忽略不計(jì)。每個(gè)CSS都運(yùn)行ProofGen來生成完整性證明,ProofGen的時(shí)間開銷為numβc(Texp+Tmul)。CMS運(yùn)行算法ProofAgg花費(fèi)LTmul來聚合所有證明。為了檢查文件完整性,TPA運(yùn)行算法ProofVerify,其時(shí)間開銷為3Tpair+(N+s+3)Texp+(N+s+3)Tmul。本文對(duì)IDM2PDP方案與PDP-D[18]方案在計(jì)算開銷和功能方面進(jìn)行了比較,具體情形分別如表2和表3所示。其中,βc為最大副本數(shù)。
Table 2 Time comparison between PDP-D and IDM2PDP表2 IDM2PDP與PDP-D時(shí)間比較
Table 3 Functional comparison between PDP-D and IDM2PDP表3 IDM2PDP與PDP-D功能比較
本文實(shí)驗(yàn)使用了GMP(GNU Multiple Precision)庫6.2.1版本[20]和PBC(Pairing-Based Cryptography)庫0.5.14版本[21]進(jìn)行A型配對(duì),使用加密庫OpenSSL(Open Secure Sockets Layer)3.0.7版本[22]來實(shí)現(xiàn)哈希操作中的SHA256(Secure Hash Algorithm 256-bit)和加密操作AES(Advanced Encryption Standard)來實(shí)現(xiàn)加密。該協(xié)議在同一臺(tái)計(jì)算機(jī)上運(yùn)行。機(jī)器配置為:WSL2 Ubuntu 22.04.2LTS操作系統(tǒng)、2.80 GHz Intel?CoreTMCPU i7-7700HQ和16 GB RAM。
PDP方案的主要計(jì)算開銷集中在生成和驗(yàn)證階段,因?yàn)樯婕暗诫p線性配對(duì)、指數(shù)運(yùn)算和乘法運(yùn)算等時(shí)間成本較高的操作。為了確保損壞數(shù)據(jù)的檢測概率超過0.99,根據(jù)文獻(xiàn)[5]設(shè)置相關(guān)參數(shù):n=5000和num=460。由于方案還涉及扇區(qū),設(shè)置s=50。由于PDP-D方案不支持多個(gè)CSS,且即便有多個(gè)CSS進(jìn)行,也只需要比較一個(gè)CSS即可,因此對(duì)于IDM2PDP方案,設(shè)置L=1。每個(gè)數(shù)據(jù)塊最多存儲(chǔ)20字節(jié),因此存儲(chǔ)能力因方案而異。對(duì)于PDP-D,準(zhǔn)備的文件大小約為97 KB,而本文方案準(zhǔn)備的文件大小為4 MB。
實(shí)驗(yàn)結(jié)果通過10次實(shí)驗(yàn)得出。圖4為TagGen的時(shí)間開銷。從圖4可以看出,在TagGen階段,時(shí)間開銷隨著N增大而增大,與PDP-D相比,IDM2PDP效率更高。
Figure 4 Time cost of TagGen圖4 TagGen時(shí)間開銷
圖5和圖6分別為ProofGen和ProofVerify的時(shí)間開銷。從圖5可以看出,在ProofGen階段,時(shí)間開銷隨著副本數(shù)N的增加而增大,但在相同的副本數(shù)下,IDM2PDP效率提高了約50%。從圖6可以看出,在ProofVerify階段,盡管IDM2PDP的時(shí)間開銷與N呈線性關(guān)系,但與PDP-D相比,IDM2PDP驗(yàn)證效率提高了約20%。實(shí)驗(yàn)結(jié)果表明,在相同的備份數(shù)和塊數(shù)下,IDM2PDP有更大的存儲(chǔ)能力和更低的計(jì)算成本,因此比PDP-D更優(yōu)。
Figure 5 Time cost of ProofGen圖5 ProofGen時(shí)間開銷
Figure 6 Time cost of ProofVerify圖6 ProofVerify時(shí)間開銷
本文提出了一種基于身份的多云多副本云數(shù)據(jù)完整性審計(jì)協(xié)議(IDM2PDP),用于檢查多云存儲(chǔ)服務(wù)器上的多個(gè)副本。在CDH假設(shè)下,證明了該協(xié)議的安全性。該協(xié)議的顯著特征是通過D-MHT可以確認(rèn)CSS所管理的副本的一致性和新鮮性,并且能夠確定受損塊。每個(gè)CSS的D-MHT根哈希與其Cid關(guān)聯(lián),并在最后的總簽名sigR中關(guān)聯(lián)時(shí)間戳、Fid和Uid,保證了數(shù)據(jù)的新鮮性和文件、DO以及所有根哈希之間的對(duì)應(yīng)關(guān)系,彌補(bǔ)了現(xiàn)有方案的不足。該協(xié)議能有效支持?jǐn)?shù)據(jù)隱私保護(hù)、數(shù)據(jù)公共審計(jì)、數(shù)據(jù)動(dòng)態(tài)和數(shù)據(jù)新鮮性。實(shí)驗(yàn)結(jié)果和安全性證明表明,IDM2PDP是一種安全高效的審計(jì)方案。下一步工作將解決基于身份的多云多副本審計(jì)中替換攻擊的問題,以實(shí)現(xiàn)更加安全的方案。