田苗苗,高闖,陳潔
(1. 安徽大學計算機科學與技術學院,安徽 合肥 230601;2. 華東師范大學計算機科學與軟件工程學院,上海 200062)
云存儲是當前應用最廣泛的云計算服務之一。用戶通過云存儲服務將其數據外包給云服務器,之后可以在任何地方通過網絡訪問其外包數據,從而節省了本地存儲開銷,提高了使用數據的靈活性。隨著越來越多的用戶使用云存儲服務,云存儲安全風險越加凸顯[1],例如硬件故障、軟件錯誤、操作失誤、惡意破壞等都可能使云端數據出現損壞或缺失。由于一些商業原因,云存儲發生數據損壞后用戶通常不能及時獲悉,因此用戶必須主動檢查存儲在云服務器中數據的完整性。
由于云端外包數據的規模通常非常龐大,所以下載全部云端數據至本地進行完整性檢測的方法是不切實際的。為此,研究人員提出了一些高效的云端數據完整性檢測方法,本文統稱為云存儲完整性檢測方案。云存儲完整性檢測方案通過交互式手段,無需下載全部數據即可驗證云端外包數據的完整性。具體地,用戶在上傳數據時會對數據進行分塊處理并計算每塊的標簽,然后將數據和標簽一同上傳到云服務器。當驗證云端數據的完整性時,驗證者將發送一個隨機挑戰給云服務器,根據塊標簽的線性同態特性,云服務器能夠計算出對應該挑戰的一個較短證明。最后,驗證者只需驗證該證明是否正確,即可判定云端外包數據是否完整。
首個高效的云存儲完整性檢測方案在 2007年由Ateniese等[2]和Juels等[3]分別提出,其中Ateniese等的方案支持公開驗證,即允許任意的第三方驗證者檢測數據的完整性,并支持無限次的挑戰詢問;而 Juels等的方案僅支持秘密驗證,即只允許數據所有者對數據完整性進行檢測,并且僅支持有限次的挑戰詢問。此后,新的云存儲完整性檢測方案[4-7]被相繼提出,其中大多數方案都支持公開驗證和無限次挑戰詢問。然而這些公開驗證方案大都依賴公鑰基礎設施(PKI, public key infrastructure),即需要使用數字證書來保證用戶公鑰和身份的對應關系,所以存在復雜的證書管理問題。
為了消除證書管理問題,一些基于身份的云存儲完整性檢測方案[8-10]被相繼提出。在基于身份的密碼方案中,用戶的身份即為其公鑰,對應的私鑰由私鑰生成中心(KGC,key generation center)生成[11]。上述方案的安全性都依賴于離散對數等傳統數學問題的困難性,而這些數學問題都難以抵抗量子計算機的攻擊[12]。由于格上困難問題具有安全性高、量子算法難以破解等優勢[13],使基于格的密碼方案受到研究人員的廣泛關注。
為了提高云存儲完整性檢測方案的安全性,近年來一些基于格問題的設計方案相繼涌現。2012年,Xu等[14]利用小整數解(SIS, small integer solution)問題[15]設計了首個基于格的云存儲完整性檢測方案。2014年,Liu等[16]設計了一種格上支持公開驗證的云存儲完整性檢測方案,但沒有給出嚴格的安全性證明。隨后,Zhang等[17]指出該方案存在安全漏洞,惡意云服務器可以欺騙驗證者通過完整性檢測。2017年,Liu等[18]在文獻[17]的基礎上提出了一種格上基于身份的云存儲完整性檢測方案,但是由于該方案的塊標簽涉及云服務器的公鑰,云服務器可以利用其私鑰偽造數據,所以該方案實際上也不能抵抗惡意云服務器的攻擊。
本文提出了一種新的格上基于身份的云存儲完整性檢測方案,并在隨機預言模型下證明了該方案的安全性。與現有同類方案[18]相比,本文方案的系統參數和用戶私鑰都更短,計算效率也更高。本文的主要貢獻如下。
1) 新的標簽生成算法。受文獻[19]的同態簽名算法啟發,本文設計了一種新的塊標簽生成算法。令公鑰為和輔助向量文件標識符為τ,則第i塊數據zi的標簽xi是一個小向量,滿足其中是一個安全的散列函數。與文獻[19]每次僅處理1 bit數據相比,本算法允許計算較大的數據塊,因而能夠減少文件的塊標簽總數,提高標簽生成的效率。
2) 高效的私鑰提取算法。現有同類方案的私鑰提取算法較為復雜,需要較大的計算和存儲開銷。本文根據文獻[20]提出的新陷門算法及相關算法,設計了一種高效的私鑰提取算法。對于身份為id的用戶Uid,令其中,a是私鑰生成中心的公鑰,(?)是一個安全的散列函數。利用文獻[20]中的相關算法,私鑰生成中心可以容易地為用戶Uid生成較小的Rid作為其私鑰,其中Rid滿足是一個公開向量。利用函數的高效求逆性和關系用戶Uid可以容易地計算任意文件塊的標簽。
4) 嚴格的安全性證明。本文方案在隨機預言模型下對云服務器的適應性選擇身份攻擊是安全的,其安全性可以規約到環上的小整數解問題[22-23](Ring-SIS,ring small integer solution),該問題與理想格上最壞情況下的經典問題一樣困難[22]。
本文的安全參數為n;實數域和整數域分別記為R和Z。向量默認為行向量,用黑體小寫字母表示;向量a的轉置表示為aT。矩陣用黑體大寫字母表示。向量的歐幾里得范數為矩陣R的范數其中,riT為R的第i個列向量。矩陣R∈ Rm×w的最大奇異值,記為其中x為 Rw中的單位向量。矩陣R的Gram-Schmidt正交化記為矩陣的行連接記為矩陣的列連接記為[A,B],即
定義 1 設B∈ Rm×m是由 一 組線性無 關 的向量所組成的矩陣,則由其生成的m維格定義為其中B被稱為格Λ的基。
對正整數m和q,矩陣定義如下格。


本文基于多項式環結構的理想格[21]。多項式環可表示為其中,為n階分圓多項式,當n為2的冪時,環R與是同構的,環R中的每個元素都對應于系數向量范數表示為相應系數向量的范數。令整數q≥2,q模環表示為環中多項式的系數本文采用的多項式環為
離散高斯分布[15,24]是格密碼學中的一個重要概念,下面介紹離散高斯的定義和相關性質。
定義2 令參數s>0,中心c∈ Rm的連續高斯函數

其中,格Λ上的以s為參數,c為中心的離散高斯分布定義為其中,x∈Λ,
當中心c=0時,將連續高斯分布和離散高斯分布分別簡寫為ρs(x)和DΛ,s(x)。
平滑參數[15]是格中另一個重要概念。以下引理給出了平滑參數大小的一個上界[25]。
引理1 設B∈ Rn×n是格Λ?Rn的任意一組基,實數ε>0,則平滑參數ηε(Λ)滿足式(4)。

離散高斯分布有以下基本性質[24]。
引理2 令格Λ?Rm,任意實數ε∈ ( 0 ,1),向量c∈span(Λ),如果高斯參數s≥ηε(Λ),那么

從 Rm×k中按照離散高斯分布選擇的矩陣,其最大奇異值滿足以下條件[21]。
引理3 設實數s>0,如果矩陣R←DRm×k,s,則以極大概率成立,其中隱含的常數因子約為
文獻[21]給出了以下的平滑引理。
引理 4 給定整數n≥4,q≥2和m≥實數和隨機向量如果統計接近于Rq上的均勻分布。
本文方案的安全性基于Ring-SIS問題[22-23],如定義3所示。

格陷門是格密碼學的重要工具之一。傳統的格陷門是格的一組較短的基[25]。本節回顧文獻[20]提出的新格陷門的概念及相關算法。
文獻[20]提出了g-陷門的概念,如定義4所示。
文獻[20]給出了一種g-陷門生成算法。
根據引理 3可知,陷門R將以極大概率滿足

正式地,文獻[20]給出了原像采樣引理,如引理6所示。
利用上述采樣算法可得以下陷門委派算法[20],如引理7所示。
為簡便起見,本文將標簽h均設為1。
如圖1所示,基于身份的云存儲完整性檢測方案由4個實體組成,分別為用戶、私鑰生成中心、云服務器和審計者。用戶是數據所有者,通過云存儲服務將其數據外包給云服務器。私鑰生成中心根據用戶的身份為用戶分配私鑰。云服務器擁有巨大的存儲空間和計算資源,可以為用戶提供云存儲服務。審計者是一個專業實體,可以代表用戶對存儲在云服務器中的數據進行完整性檢測,并及時將審計結果返回給用戶。

圖1 基于身份的云存儲完整性檢測方案模型
不失一般性,本文假定私鑰生成中心與用戶之間、用戶與云服務器之間,以及云服務器與審計者之間均有安全的傳輸通道。同時,假定每個用戶只有一個文件存儲在云端。
定義 5 基于身份的云存儲完整性檢測方案由6個概率多項式時間算法組成,分別為系統建立(setup)算法,私鑰提?。╡xtract)算法、標簽生成(taggen)算法、審計(audit)算法,證據生成(prove)算法和證據驗證(verify)算法。
setup算法:該算法輸入為安全參數n,輸出為系統公鑰mpk和主私鑰msk。
extract算法:該算法由私鑰生成中心執行。輸入系統公鑰mpk,主私鑰msk和用戶的身份id,輸出對應的用戶私鑰skid。
taggen算法:該算法由用戶執行。輸入為系統公鑰mpk,用戶的私鑰skid和文件Fid,輸出為文件的標識符τid,總塊數Lid和塊標簽集合idΦ。最后,用戶將上傳到云服務器,將發送給審計者,然后刪除本地副本。
audit算法:該算法由審計者執行。審計者根據用戶身份 id,文件的唯一標識符τid和文件總塊數Lid,輸出為一個隨機挑戰chal。
prove算法:該算法由云服務器執行。輸入挑戰chal,文件Fid及其塊標簽集合Φid,輸出證據P。
verify算法:該算法由審計者執行。輸入系統公鑰mpk,用戶的身份id,審計挑戰chal及對應的證據P,輸出“0”或“1”。輸出“0”表示云服務器中的文件是不完整的,輸出“1”則表示文件是完整的。
顯然,對于一個正確的基于身份的云存儲完整性檢測方案來說,如果方案的所有參與方都誠實,那么算法verify應該以極大概率輸出“1”。
本文假設私鑰生成中心、用戶和審計者均是可信的,而云服務器是半可信的,即在數據已損壞的情況下,云服務器可能通過給出有效的證據來極力隱藏數據損壞的事實。根據文獻[4]的結論,本文僅需考慮方案的頑健性,它是指云服務器應難以給出一個與誠實證據不同且能通過審計者檢查的證據。
本文考慮適應性選擇身份攻擊下的頑健性,如定義6所述,其中挑戰者C模擬私鑰生成中心、用戶和審計者,而敵手A模擬云服務器。
定義6 如果不存在多項式時間的敵手A能夠以不可忽略的概率贏得以下游戲,則稱該基于身份的云存儲完整性檢測方案滿足適應性選擇身份攻擊下的頑健性。游戲由4個階段組成,分別為建立階段、詢問階段、審計階段和偽造階段。
1) 建立階段。在該階段,挑戰者 C扮演私鑰生成中心的角色。挑戰者C執行setup算法生成系統公鑰mpk和主私鑰msk,并將mpk發送給敵手A。
2) 詢問階段。在該階段,挑戰者 C扮演私鑰生成中心和用戶的角色。敵手A可以適應性地向挑戰者C進行提取詢問和標簽詢問。
① 提取詢問。敵手A詢問身份id對應的私鑰。挑戰者C執行算法extract獲得私鑰skid,并將其發送給敵手A。
② 標簽詢問。敵手A詢問身份為id的用戶Uid對文件Fid的標簽。挑戰者C執行算法taggen生成對應的塊標簽集合Φid,并將其發送給敵手A。
3) 審計階段。在該階段,挑戰者 C扮演審計者的角色。對于已經執行過標簽詢問的文件,挑戰者C執行audit算法生成一個隨機挑戰chal,并發送給敵手A。然后敵手A執行prove算法生成相應的證據P,并將其發送給挑戰者C。
4) 偽造階段。挑戰者C提交關于身份id*的挑戰詢問chal*敵手,敵手A輸出一個相應的證據P*。如果P*與誠實的證據不同,A未對id*進行過提取詢問且則敵手A 贏得游戲。
本文提出的格上基于身份的云存儲完整性檢測方案如下。
1) 系統建立算法
setup:輸入安全參數n,選取整數q、p≥2,高斯參數,以及2個安全的散列函數執行下列操作。
① 運行算法GenTrap(1,σ) → (a,R)。
③ 輸出系統公鑰 m pk=(a,u)和主私鑰msk=R。
2) 私鑰提取算法
extract:輸入系統公鑰mpk、主私鑰msk和身份 id ∈ {0 ,1}*,執行下列步驟。
① 計算hid=H1(id)。
③ 運行算法 D elTrap(aid,R,s)→Rid。
④ 輸出用戶私鑰 s kid=Rid。
3) 標簽生成算法
taggen:輸入系統公鑰 mpk、用戶私鑰skid和文件Fid,用戶執行下列步驟。
② 將文件Fid分為Lid塊,其中每塊均屬于Rpd,即
③ 計算αi= H2(τid,i),其中,i= 1 ,2,…,Lid。
④ 計算每塊的標簽,其中第i塊zi的標簽

⑤ 輸出標簽集合Φid={x1,x2,… ,xLid}。
⑥ 將{i d ,τid,Lid}和{i d ,τid,Φid,Fid}分別發送給審計者和云服務器,然后刪除本地副本。
4) 審計算法
② 發送 c hal = (i d ,τid,{i,vi}i∈I)給云服務器。
5) 證據生成算法
prove:當收到來自審計者的挑戰chal = (i d ,τid,{i,vi}i∈I)后,云服務器找到對應的文件Fid及標簽集合Φid,計算然后將證據P= (x,z)返回。
6) 證據驗證算法
verify:輸入系統公鑰mpk,隨機挑戰chal和證據P,審計者執行下列步驟。
① 解析 c hal=(i d ,τid,{i,vi}i∈I)和P=(x,z)。

④ 計算B= ? (p- 1 )2+1。
⑤ 判斷下列條件是否均成立。
若是,則返回“1”;否則,返回“0”。
本文的安全參數n設為2的冪次。根據引理1,設函數
根據引理 5,GenTrap算法的高斯參數設為,則系統公鑰統計接近于上的均勻分布,主私鑰因此根據引理以極大概率成立,其中隱含的常數因子約為

定理 2 如果本文方案中的用戶、私鑰生成中心、云服務器和審計者都是誠實的,那么verify算法將以極大概率輸出“1”。
證明 給定用戶的身份id和文件Fid,令文件標識符為τid。對第i個數據塊zi,計算執行算法根據引理2及引理6,標簽xi將以極大概率滿足


因此,verify算法中的條件b)也成立。
定理3 如果Ring-SIS問題是困難的,那么在隨機預言模型下任何多項式時間的敵手都不能以不可忽略的概率破解本文方案的頑健性。
證明 根據定義 6,假設存在一個多項式時間的敵手A能夠以不可忽略的概率ε破解本文方案的頑健性,則下面證明,存在一個多項式時間的算法B,能以不低于的概率破解Ring-SIS問題,其中,QH是H1詢問的最大次數,QE是提取詢問的最大次數。具體過程如下。
1) 建立階段。給定安全參數n,令?≥1為單次審計挑戰選擇的元素總個數,算法B選擇隨機整數公開向量高斯參數以及2個作為隨機預言機的散列函數輸入隨機向量作為Ring-SIS實例,令實數則算法B試圖尋找一個非零向量使得且算法B最后將系統公鑰發送給敵手A。
2) 詢問階段。敵手A可以適應性地向算法B進行一系列詢問,包括散列詢問、提取詢問和標簽詢問。在這個階段,算法B將建立并維持多個表,其中表L1用于記錄H1詢問,表L2用于記錄H2詢問,表Lt用于記錄標簽詢問。
①H1詢問。敵手A可以適應性地對身份進行H1詢問。不失一般性,假設H1詢問在其他類型詢問之前且敵手每次提交H1詢問的身份都不同。算法C隨機選取j∈ { 1 , …,QH}。對敵手A的第i次H1詢問,如果i=j,則算法B將(id,b,⊥)存于表L1中,并將b返回給敵手A。如果i≠j,則算法B按照分布選取k個隨機的列向量構成計算若hid已在表L1中,則重新選取Rid。最后,算法B將存于表L1中,并將hid返回給敵手 A。根據引理4,hid統計接近于均勻分布。
② 提取詢問。敵手A 向算法B適應性地進行提取詢問,以獲取身份id對應的私鑰。此時,算法B檢索表L1找到匹配項。若匹配項為(i d ,hid,Rid),則返回Rid;若匹配項為(id,b,⊥),則終止。
③ H2詢問。算法B建立并維護一個表L2用于響應敵手A的H2詢問。一般地,對敵手A的一個H2詢問,算法B首先查找表L2,如果找到匹配項則直接將結果返回,否則選擇一個隨機的α∈Rq并返回。如果A的H2詢問形如(τid,i),則算法B將以一種特殊方式進行響應,具體過程見標簽詢問。
④ 標簽詢問。敵手A適應性地進行標簽詢問,以獲得身份為id的用戶Uid關于文件Fid的標簽。此時,算法B首先查找表Lt,如果找到匹配項(i d ,τid,Φid,Fid),則直接將其返回給敵手A。否則算法B執行下列步驟:首先選取隨機的作為文件Fid的標識符,并將文件Fid拆分為Lid塊其中,每塊然后計算標簽集合其中,xi∈Rm是數據塊zi的標簽;最后將(i d ,τid,Φid,Fid)存于表Lt中,并將其返回給敵手A。為了計算每個塊標簽,算法B按照離散高斯分布Dm隨機選取xi,計算存于表L2中,并令H2(τid,i) =αi。根據引理4,αi統計接近于均勻分布。
3) 審計階段。算法B可以對已執行過標簽詢問的文件進行審計詢問。假設算法B希望檢測外包文件Fid的完整性。輸入文件所有者的身份id,標識符τid,總塊數Lid,算法B執行算法 audit( id,τid,Lid),生成挑戰 c hal = (i d ,τid,{i,vi}i∈I)并將其發送給敵手A。敵手A收到挑戰后,找到匹配的Fid和Φid,執行算法 p ro v e( chal,Fid,Φid),生成相應的證據并返回。
4) 偽造階段。敵手 A 以概率ε輸出對應挑戰的一個與誠實證據不同的有效證據P?= (x?,z?)。
如果身份 id*不滿足H1(id?)=b,則終止。否則,算法B查詢表Lt,找到匹配項假設第i塊數據為zi,相應的標簽為xi,則由上述構造過程和引理 2可知,且以極大概率成立,其中算法B輸出誠實證據P= (x,z),其中

由 于 證 據P?= (x?,z?)也 滿 足 驗 證 條 件 , 即

式(12)與式(11)相減,可得

式(13)等價于

由于以上兩證據是不同的,所以y≠0。
又由于z和z*均屬于 R因此

即算法B破解了Ring-SIS問題。
現在計算算法B成功的概率。
算法B成功意味著身份 id*在私鑰提取階段未被詢問且H1(id?)=b。由于身份 id*在私鑰提取階段未被詢問的概率不低于而身份 id*滿足H1(id*)=b的概率不低于所以算法B成功的概率不低于證畢。
將本文方案分別與文獻[18]和文獻[9]中的方案進行實驗比較來進行性能評估,其中,文獻[18]中的IBRDICL(identity based remote data integrity checking from lattices)方案是基于格的同類方案,而文獻[9]中的 IBPDP(identity based provable data possession)方案是基于傳統 CDH(computational Diffie-Hellman)假設的方案。這 3種方案的主要特征如表1所示。

表1 3種云存儲完整性檢測方案的特征比較
性能評估包括方案的存儲開銷,通信開銷和計算開銷3個方面。實驗代碼用C++ 11編寫,通過g++ 5.4.0編譯。實驗由配置了Intel Core i5-4590處理器,8 GB內存和Ubuntu 16.04 LTS操作系統的PC機運行。所有實驗結果均是10次實驗的平均值。
本文方案的實現使用了 NFLlib函數庫[26],該函數庫提供了多項式環上任意操作的快速實現;SampleD算法利用了文獻[27]任意模下格Λ⊥(g)的采樣算法,該算法將文獻[20]任意模下格Λ⊥(g)采樣算法的計算開銷從O(nl og2q)降低到O(nl ogq);散列函數使用SHA-256實現,并通過偽隨機數生成器生成隨機數進行填充。
根據Ateniese等[2]的結論,當文件的塊損壞比例為1%時,如果挑戰請求包含的元素個數?=460,則審計者能以不低于 99%的概率檢測出損壞。因此,本節所有算法均選擇?=460。
首先將本文方案與 IBRDICL方案進行對比。IBRDICL方案是一種一般格上基于身份的云存儲完整性檢測方案,該方案所采用的私鑰提取算法和原像采樣算法效率都較低,實驗中將使用與本文方案相同的算法代替;此外,由于本文方案未涉及保護隱私,因此實驗移除了 IBRDICL方案中隱私保護所需的計算,主要包括證據生成階段的一次原像采樣運算和證據驗證階段的一次散列運算。
本實驗中,2種方案的安全參數n均設為128,其他相關參數如表2所示。特別地,IBRDICL方案中塊標簽向量的元素個數為nm,單個數據塊的元素個數為nd,因此2種方案每個數據塊的大小均為2 KB。根據文獻[28]可知,2種方案在此參數下具有相近的安全級別。

表2 實驗參數設置(n=128時)
1) 存儲開銷
存儲開銷主要比較系統公鑰長度、用戶私鑰長度和塊標簽長度。具體的存儲開銷比較如表3所示。

表3 與IBRDICL方案的存儲開銷比較
由表3可知,IBRDICL方案的系統公鑰長度和用戶私鑰長度都遠大于本文方案,而塊標簽長度比本文方案略小。因此,本文方案的用戶存儲開銷和審計者存儲開銷都更低,云服務器的存儲開銷稍高。
2) 通信開銷
通信開銷主要比較挑戰長度和證據長度,具體的通信開銷比較如表4所示。

表4 與IBRDICL方案的通信開銷比較
由表4可知,本文方案與IBRDICL方案的通信開銷相近,僅在證據長度上略大。
3) 計算開銷
計算開銷包括各算法的運算時間,其中標簽生成算法分為離線階段和在線階段,離線階段不依賴于數據,僅計算SampleD算法所需的擾動向量p及apT,因此可以預先執行并將結果保存在本地。標簽生成算法的計算開銷比較如圖2所示,其他算法的具體計算開銷如表5所示。
圖2中,文件數據塊總數的范圍是1 000~10 000塊,每個數據塊的大小為2 KB。由圖2可知,2種方案離線階段所需的計算開銷都大于在線階段的計算開銷;相比較而言,本文方案離線階段的計算開銷與 IBRDICL方案比略低;但本文方案在線階段的計算效率比 IBRDICL方案提高了約93.74%。

表5 與IBRDICL方案的計算開銷對比
根據表5,本文方案的系統建立算法和私鑰提取算法的計算開銷與IBRDICL方案相比都更小。雖然與IBRDICL方案相比,本文方案證據生成算法的計算效率較低,但證據驗證算法的計算效率提高了98.81%且總的絕對數值遠小于IBRDICL方案。因此,本文方案降低了私鑰生成中心、用戶和審計者的計算開銷。

圖2 與IBRDICL方案標簽生成算法計算開銷對比
綜上,相對于 IBRDICL方案中的方案,本文方案降低了用戶的存儲開銷,提高了系統建立、私鑰提取、標簽生成和證據驗證等算法的計算效率,并且數據審計過程的總體計算開銷也更低。
將本文方案與 IBPDP方案進行對比。IBPDP方案是利用雙線映射構造的一種基于身份的云存儲完整性檢測方案。本實驗使用 PBC庫(版本為0.5.14)實現IBPDP方案,其中實驗參數選自PBC庫的參數文件a.param(安全級別約為80 bit),扇區數設為205個(單個數據塊長度約為4 KB)。為了達到相近的安全級別和數據塊大小,根據文獻[28],本文方案的安全參數n設為512,其他相關參數如表6所示。

表6 實驗參數設置(n=512時)
1) 存儲開銷
存儲開銷仍然比較系統公鑰長度,用戶私鑰長度和塊標簽長度。具體的存儲開銷比較如表7所示。

表7 與IBPDP方案的存儲開銷比較
由表7可知,IBPDP方案的存儲開銷與本文方案相比都更小。
2) 通信開銷
通信開銷也主要比較挑戰長度和證據長度。具體的通信開銷比較如表8所示。

表8 與IBPDP方案的通信開銷比較
由表8可知,本文方案與IBPDP方案相比,僅挑戰長度較小,總通信開銷仍然較大。
3) 計算開銷
本文方案與 IBPDP方案在不同數據塊情況下標簽生成算法的計算開銷如圖3所示,其他算法的計算開銷比較如表9所示。

表9 與IBPDP方案的計算開銷對比

圖3 與IBPDP方案的標簽生成算法計算開銷對比
由于本文方案的標簽生成算法分離線和在線兩階段,且離線階段與數據無關,所以圖3僅列出本文方案標簽生成算法在線階段的計算開銷,并通過隨機替換方法生成擾動向量p。
由圖3可知,相比于IBPDP方案中,本文方案標簽生成算法在線階段的計算效率提高了約88.32%。由表9可知,本文方案的系統建立算法和私鑰提取算法的計算開銷相對較大,但審計算法、證據生成和驗證算法的計算效率與 IBPDP方案相比分別提高了99.98%、76.56%和99.73%。由于這些算法執行較為頻繁,因此本文方案大大降低了用戶、云服務器和審計者的計算開銷。
綜上,相比于IBPDP方案,本文方案提高了用戶、云服務器和審計者的計算效率。
本文基于理想格上的困難問題構造了一種基于身份的云存儲完整性檢測方案。在隨機預言模型下該方案可以抵抗云服務器的適應性選擇身份攻擊。實驗結果表明:與同類方案相比,本文方案整體更優,更適合實際應用;與傳統方案相比,本文方案數據審計過程的計算開銷也更低。