劉紅燕 咸鶴群 魯秀青 侯瑞濤 高 原
1(青島大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 山東青島 266071)2(綜合業(yè)務(wù)網(wǎng)理論及關(guān)鍵技術(shù)國家重點(diǎn)實(shí)驗(yàn)室(西安電子科技大學(xué)) 西安 710071)
云存儲技術(shù)的不斷發(fā)展促使更多的組織和個人將數(shù)據(jù)外包至云服務(wù)器進(jìn)行存儲,以釋放本地的存儲空間[1-2].從簡單的備份系統(tǒng)到云存儲系統(tǒng),云服務(wù)器為用戶提供了低成本、可擴(kuò)展的在線服務(wù)[3].隨著用戶數(shù)據(jù)規(guī)模的不斷增長,云服務(wù)器提供商(cloud service provider, CSP)面臨著巨大的挑戰(zhàn)——超大規(guī)模的數(shù)據(jù)量和大量冗余數(shù)據(jù)的管理.CSP普遍采用重復(fù)數(shù)據(jù)刪除技術(shù)來提高存儲空間利用率,實(shí)現(xiàn)可擴(kuò)展的云存儲管理.重復(fù)數(shù)據(jù)刪除技術(shù)(data deduplication)是指多個用戶上傳同一數(shù)據(jù)時,云服務(wù)器僅保存一份數(shù)據(jù)拷貝,為其他用戶創(chuàng)建該數(shù)據(jù)拷貝的鏈接,由此節(jié)省網(wǎng)絡(luò)帶寬和壓縮云存儲空間.現(xiàn)有的商用云存儲系統(tǒng)普遍應(yīng)用了重復(fù)數(shù)據(jù)刪除技術(shù),如Dropbox,Wuala,Mozy,Geogle Drive等[4].研究表明:重復(fù)數(shù)據(jù)刪除技術(shù)可有效降低備份系統(tǒng)的存儲開銷,甚至可高達(dá)90%以上.在普通應(yīng)用系統(tǒng)中,該技術(shù)可降低60%以上的存儲開銷[5].
根據(jù)數(shù)據(jù)處理的粒度,重復(fù)數(shù)據(jù)刪除技術(shù)可分為文件級重復(fù)數(shù)據(jù)刪除和塊級重復(fù)數(shù)據(jù)刪除.與文件級重復(fù)數(shù)據(jù)刪除技術(shù)相比,塊級重復(fù)數(shù)據(jù)刪除具有更小的數(shù)據(jù)粒度,可以提高存儲空間的使用效率,但需要在每個數(shù)據(jù)塊中都記錄其所屬的文件標(biāo)識.根據(jù)重復(fù)刪除操作發(fā)生的場合,重復(fù)數(shù)據(jù)刪除技術(shù)可分為服務(wù)器端重復(fù)數(shù)據(jù)刪除和客戶端重復(fù)數(shù)據(jù)刪除.客戶端重復(fù)數(shù)據(jù)刪除技術(shù)應(yīng)用較為普遍,可節(jié)省網(wǎng)絡(luò)上傳帶寬,但易遭受側(cè)信道攻擊和在線窮舉攻擊[6].服務(wù)器端重復(fù)數(shù)據(jù)刪除要求將所有數(shù)據(jù)上傳至云服務(wù)器,由云服務(wù)器進(jìn)行數(shù)據(jù)重復(fù)性判斷和執(zhí)行相應(yīng)操作,該方式可有效地抵御側(cè)信道攻擊和在線窮舉攻擊,但需要額外的數(shù)據(jù)帶寬.以上方法各有其優(yōu)勢和局限性,通常根據(jù)應(yīng)用場景和安全需求進(jìn)行選擇.
隨著網(wǎng)絡(luò)安全問題的不斷凸顯,用戶對數(shù)據(jù)安全的重視程度不斷提高.為保護(hù)數(shù)據(jù)隱私,用戶通常先對數(shù)據(jù)加密,再將其外包至云服務(wù)器.然而,即使相同的數(shù)據(jù),在不同的加密密鑰和加密方式的作用下,所得的密文也是不一致的[7-9],因此云服務(wù)器難以直接根據(jù)密文判斷數(shù)據(jù)是否來自同一明文數(shù)據(jù),這嚴(yán)重制約了跨用戶重復(fù)數(shù)據(jù)刪除系統(tǒng)的執(zhí)行效率.
加密數(shù)據(jù)的重復(fù)刪除是一類特殊的安全多方計(jì)算問題[10],除了考慮云服務(wù)器對用戶隱私的威脅,還要實(shí)現(xiàn)互不信任的參與者之間的協(xié)作.用戶在不泄露各自隱私的前提下,需要借助云服務(wù)器共同完成數(shù)據(jù)的共享和重復(fù)刪除.與電子選舉、秘密共享、匿名簽名等典型的安全多方計(jì)算問題[11-12]相比,加密數(shù)據(jù)的重復(fù)刪除更加體現(xiàn)了受限安全環(huán)境中的用戶協(xié)同計(jì)算特征.
為解決數(shù)據(jù)加密和重復(fù)數(shù)據(jù)刪除技術(shù)的兼容性問題,研究者對數(shù)據(jù)加密算法進(jìn)行了改進(jìn).最初的解決方案是采用云服務(wù)器設(shè)定的全局變量對所有數(shù)據(jù)加密,但云服務(wù)器不可信,這將導(dǎo)致用戶數(shù)據(jù)的泄露.在此基礎(chǔ)上,Douceur等人首次提出了實(shí)現(xiàn)數(shù)據(jù)保密性和重復(fù)數(shù)據(jù)刪除效率性的平衡方案——收斂加密(convergent encryption, CE)[7].該方案采用數(shù)據(jù)散列值作為加密密鑰,在加密算法確定的情況下,相同的數(shù)據(jù)可加密得到相同的密文[13].盡管CE簡單且高效,但當(dāng)數(shù)據(jù)信息熵較低時,CE易遭受字典攻擊和離線窮舉攻擊,仍無法達(dá)到語義安全的要求[14].Cui等人提出一種基于密文策略屬性加密的重復(fù)數(shù)據(jù)刪除方案[15].方案采用混合云結(jié)構(gòu),公有云負(fù)責(zé)數(shù)據(jù)的存儲,私有云負(fù)責(zé)數(shù)據(jù)重復(fù)性檢測,這種結(jié)構(gòu)增大了云服務(wù)器的管理開銷.此外,所有數(shù)據(jù)都采取屬性加密策略,執(zhí)行效率較低.
為提高重復(fù)數(shù)據(jù)刪除效率,Stanek等人提出將數(shù)據(jù)分為流行數(shù)據(jù)和非流行數(shù)據(jù),并采取不同的加密策略[16].流行數(shù)據(jù)的隱私程度較低,采用收斂加密進(jìn)行保護(hù);非流行數(shù)據(jù)的隱私程度較高,需要采用語義安全的對稱加密算法加密.為實(shí)現(xiàn)用戶的身份管理和重復(fù)數(shù)據(jù)的安全刪除,該方案引入了第三方服務(wù)器和索引服務(wù)器.在此基礎(chǔ)上,Puzio等人提出了借助第三方服務(wù)器協(xié)助云服務(wù)器完成重復(fù)數(shù)據(jù)刪除操作的perfectDedup方案[17],該方案利用完美Hash函數(shù)進(jìn)行文件標(biāo)識的計(jì)算,且允許對流行數(shù)據(jù)塊進(jìn)行重復(fù)數(shù)據(jù)刪除操作.對非流行數(shù)據(jù)塊,云服務(wù)器將會保存多個數(shù)據(jù)拷貝.上述方案都引入了第三方服務(wù)器,增加了系統(tǒng)的復(fù)雜性,因此實(shí)用性不強(qiáng),且仍無法防范來自云服務(wù)器的離線窮舉攻擊.
在系統(tǒng)架構(gòu)方面,Liu等人首次提出了一種無需可信第三方的服務(wù)器端重復(fù)數(shù)據(jù)刪除方案[18].擁有相同數(shù)據(jù)拷貝的用戶運(yùn)行password authenticated key exchange(PAKE)協(xié)議進(jìn)行密鑰交換[19-20].與之前的方案相比,該方案擺脫了實(shí)時在線的第三方,采用同態(tài)加密,相同的數(shù)據(jù)可加密得到相同的密文.但是,每個用戶在上傳數(shù)據(jù)之前都要運(yùn)行PAKE協(xié)議與其他用戶進(jìn)行交互,以獲取數(shù)據(jù)加密密鑰.這帶來了額外的計(jì)算開銷和通信開銷,降低了方案的執(zhí)行效率.另外,對用戶在線的要求降低了該方案的實(shí)用性.
在數(shù)據(jù)所有權(quán)管理方面,為保護(hù)數(shù)據(jù)的隱私,云服務(wù)器應(yīng)防止非授權(quán)用戶對數(shù)據(jù)的非法訪問.Hur等人[21]提出了基于隨機(jī)收斂加密(randomized convergent encryption, RCE)和組密鑰管理機(jī)制的重復(fù)數(shù)據(jù)刪除方案,可實(shí)現(xiàn)數(shù)據(jù)的動態(tài)權(quán)限保護(hù).方案采用雙層加密模式,內(nèi)層采用RCE,外層基于組密鑰進(jìn)行對稱加密.將默克爾Hash樹用于組密鑰的加密和解密,實(shí)現(xiàn)所有權(quán)的動態(tài)管理.但方案采用雙層Hash值作為文件標(biāo)識,仍易遭受來自云服務(wù)器的窮舉攻擊.
觀察目前已有的重復(fù)數(shù)據(jù)刪除方案,均未考慮一個現(xiàn)實(shí)的問題——用戶對數(shù)據(jù)共享程度與范圍的控制.現(xiàn)有的方案多以云服務(wù)器為中心,著力降低其存儲開銷,追求其利益最大化.在很多實(shí)際應(yīng)用中,用戶為充分保護(hù)數(shù)據(jù)隱私,不希望與其他用戶共享數(shù)據(jù).若用戶的密鑰生成算法或密鑰生成器的安全性較弱,攻擊者可根據(jù)大量數(shù)據(jù)的上傳記錄,猜測出數(shù)據(jù)加密密鑰,這對于用戶數(shù)據(jù)安全造成了嚴(yán)重威脅.例如,企業(yè)項(xiàng)目組長上傳某個內(nèi)部文件,要求僅在項(xiàng)目組內(nèi)共享該數(shù)據(jù).現(xiàn)有的重復(fù)數(shù)據(jù)刪除方案一旦判定云服務(wù)器中存在重復(fù)的數(shù)據(jù),即執(zhí)行重復(fù)數(shù)據(jù)刪除操作,并進(jìn)行數(shù)據(jù)的共享.敵手可通過檢測數(shù)據(jù)上傳情況發(fā)起窮舉攻擊,獲得數(shù)據(jù)內(nèi)容,甚至得到項(xiàng)目組長的數(shù)據(jù)加密密鑰.這種數(shù)據(jù)被動共享及安全風(fēng)險(xiǎn)的產(chǎn)生,源于用戶數(shù)據(jù)共享控制機(jī)制的缺失,將會嚴(yán)重影響云存儲用戶的數(shù)據(jù)安全.
此外,已有的方案均未考慮敵手通過信道監(jiān)聽的方式進(jìn)行攻擊的可能性.上述方案均假設(shè)第三方完全可信,并且通信信道是絕對安全的.在重復(fù)數(shù)據(jù)刪除系統(tǒng)中,一旦敵手對通信信道進(jìn)行監(jiān)聽,截獲數(shù)據(jù)標(biāo)識等信息,便可偽裝成合法用戶與云服務(wù)器進(jìn)行交互.云服務(wù)器無法正確判斷出敵手身份的合法性,則授予敵手對該數(shù)據(jù)的訪問權(quán).
在云服務(wù)器和用戶多方不可信的前提下,實(shí)現(xiàn)支持用戶隱私保護(hù)和高效重復(fù)數(shù)據(jù)刪除的云存儲系統(tǒng),保證數(shù)據(jù)標(biāo)識和加密密鑰的安全管理是目前云存儲安全領(lǐng)域研究的熱點(diǎn)問題.本文提出了一種基于用戶定義安全條件的可驗(yàn)證重復(fù)數(shù)據(jù)刪除方法.所有用戶都需要與云服務(wù)器進(jìn)行交互,以驗(yàn)證其對數(shù)據(jù)的所有權(quán).用戶間互不信任,無法獲取其他用戶與云服務(wù)器之間有效的交互數(shù)據(jù).首次解決了用戶定義的重復(fù)數(shù)據(jù)刪除問題,能夠有效消除惡意用戶信道監(jiān)聽攻擊的威脅.數(shù)據(jù)的初始上傳者可自主選擇要共享數(shù)據(jù)的用戶范圍,當(dāng)且僅當(dāng)后繼上傳者滿足其設(shè)定的安全條件,方可進(jìn)行數(shù)據(jù)的共享.具體來說,本文的貢獻(xiàn)可歸納為3個方面:
1) 在重復(fù)數(shù)據(jù)刪除方案中分析了用戶數(shù)據(jù)共享控制問題,引入了用戶屬性,基于雙線性映射擴(kuò)展了數(shù)據(jù)標(biāo)識,設(shè)計(jì)了數(shù)據(jù)安全條件機(jī)制,實(shí)現(xiàn)了用戶定義的重復(fù)數(shù)據(jù)刪除,充分保護(hù)了數(shù)據(jù)隱私;
2) 基于安全多方計(jì)算理論和布隆過濾器技術(shù),構(gòu)造了數(shù)據(jù)所有權(quán)證明協(xié)議,實(shí)現(xiàn)了對數(shù)據(jù)所有權(quán)的證明和保護(hù),有效防范敵手通過信道監(jiān)聽獲取數(shù)據(jù)的所有權(quán);
3) 采取文件級和塊級相結(jié)合的重復(fù)數(shù)據(jù)刪除方法,進(jìn)一步提高了重復(fù)數(shù)據(jù)刪除效率.


2) 可計(jì)算性.?P,Q∈G1,e(P,Q)是可計(jì)算的.
3) 非退化性.?P,Q∈G1,使得e(P,Q)≠ε.
廣播加密是一種在不安全信道上給選定用戶集傳輸加密信息的密碼體制[23].以選定的用戶集為單位,只有授權(quán)用戶方可解密出明文信息.基于身份的廣播加密方案(IBBE)將基于身份的公鑰加密體制應(yīng)用于廣播加密方案[24].IBBE方案的安全性基于雙線性Diffie-Hellman假設(shè),采用了基于身份的多接收者公鑰加密的思想.
用戶身份標(biāo)識可以是任何能代表用戶身份的字符串,利用雙線性映射將這些標(biāo)識字符串轉(zhuǎn)換成公/私鑰對.每個用戶只存儲部分公共參數(shù)以及其公/私鑰對.廣播中心(broadcast center, BC)用公鑰加密發(fā)送給用戶的信息,用戶使用對應(yīng)的私鑰進(jìn)行解密.
所有權(quán)證明(proof of ownership)協(xié)議是提高客戶端重復(fù)數(shù)據(jù)刪除方案安全性的有效措施[25].所有權(quán)證明采用數(shù)據(jù)的短Hash值作為文件的代理,用戶可以向云服務(wù)器證明其擁有該數(shù)據(jù)的所有權(quán).具體來說,所有權(quán)證明包括以下2個交互算法,分別由證明者(用戶)和校驗(yàn)者(云服務(wù)器)執(zhí)行:
1) 云服務(wù)器根據(jù)數(shù)據(jù)D的信息進(jìn)行預(yù)計(jì)算,生成質(zhì)詢集合Challenge和對應(yīng)的回答集合Res;
2) 為證明對D擁有所有權(quán),用戶從云服務(wù)器中獲取未被使用的質(zhì)詢chall,其中chall∈Challenge.如果用戶能計(jì)算出正確的回答,則說明該用戶擁有數(shù)據(jù)D的所有權(quán).
布隆過濾器是一種基于多個Hash映射函數(shù)的概率性數(shù)據(jù)結(jié)構(gòu),包括1個位數(shù)組(bit array)以及t個Hash函數(shù),其中t個Hash函數(shù)將數(shù)據(jù)以相同的概率映射到位數(shù)組的任意下標(biāo),并將位數(shù)組的對應(yīng)位設(shè)置為1[26].布隆過濾器可用于確認(rèn)元素歸屬問題和成員查詢問題,其優(yōu)勢在于存儲和執(zhí)行效率較高;缺點(diǎn)是當(dāng)數(shù)據(jù)量較大時,極大概率下會產(chǎn)生沖突,這將影響元素判斷的準(zhǔn)確性.布隆過濾器包含以下函數(shù):
1)Bloom_Init:初始化函數(shù).若布隆過濾器包含長度為s的位數(shù)組BF,則需要將BF的每一位初始化為0;設(shè)Hi表示隨機(jī)映射函數(shù),其特性皆為{0,1}*→[0,s-1],其中整數(shù)i∈[0,t-1];
2)Bloom_Insert:元素插入函數(shù).將元素e插入布隆過濾器的位數(shù)組中.Bloom_Insert(e,BF):BF[Hi(e)]←1,其中i∈[0,t-1];
3)Bloom_Query:元素查詢函數(shù).檢查元素e是否屬于此集合.Bloom_Query(e,BF):對所有i∈[0,t-1]判斷BF[Hi(e)]數(shù)值是否為1.若存在映射位置對應(yīng)的數(shù)值是0,則該元素一定不屬于此集合.若映射位置數(shù)值全為1,則該元素可能屬于此集合.因?yàn)椴悸∵^濾器在元素映射過程中存在碰撞,所以具有一定的誤判率.

設(shè)G為大素?cái)?shù)P的乘法群,其中g(shù)為生成元.CDH問題可以描述為: 對給定的g,ga,gb∈G1,計(jì)算Q=gab∈G1,其中a,b是未知的整數(shù).
本文的系統(tǒng)模型如圖1所示,包含2類實(shí)體:云服務(wù)器和用戶.云服務(wù)器為用戶提供數(shù)據(jù)存儲和數(shù)據(jù)共享服務(wù).每個用戶可將其數(shù)據(jù)上傳至云服務(wù)器,若該數(shù)據(jù)在云服務(wù)器中已存在,則云服務(wù)器采用重復(fù)數(shù)據(jù)刪除技術(shù)來刪除冗余數(shù)據(jù),提高其存儲利用率.在基于用戶定義安全條件的可驗(yàn)證重復(fù)數(shù)據(jù)刪除方案中,用戶可選擇是否設(shè)定安全條件.當(dāng)用戶上傳數(shù)據(jù)D時,若用戶屬性符合在云服務(wù)器中已存在的安全條件,或者用戶定義的安全條件在云服務(wù)器中已存在,則可進(jìn)行數(shù)據(jù)的重復(fù)刪除和共享.否則該用戶視為另一安全條件下的初始上傳者.

Fig. 1 System structure圖1 系統(tǒng)結(jié)構(gòu)圖
在系統(tǒng)初始化階段,云服務(wù)器公布可用于生成安全條件的屬性列表.用戶可選擇其中的任意屬性,定義對屬性取值的安全要求,生成數(shù)據(jù)安全條件Φ(D).Φ(D)由數(shù)據(jù)標(biāo)識T(D)和屬性取值的安全要求?(attr)兩個部分構(gòu)成,其中attr表示用戶選定的屬性.云服務(wù)器負(fù)責(zé)維護(hù)數(shù)據(jù)映射結(jié)構(gòu)δ,δ實(shí)現(xiàn)了數(shù)據(jù)塊和元數(shù)據(jù)之間的一一對應(yīng)關(guān)系.元數(shù)據(jù)包括文件的安全條件集合、數(shù)據(jù)塊標(biāo)識集合、數(shù)據(jù)密文集合、密鑰密文集合、文件對應(yīng)的分塊數(shù)據(jù)量、布隆過濾器的位數(shù)組、數(shù)據(jù)的所有權(quán)集合.云服務(wù)器中存儲的文件和相應(yīng)的位數(shù)組一一對應(yīng).
我們采取文件級和塊級相結(jié)合的客戶端重復(fù)數(shù)據(jù)刪除方法.1)文件級重復(fù)數(shù)據(jù)刪除.先判斷文件在云服務(wù)器中是否已存在,如果已存在,則用戶放棄數(shù)據(jù)上傳請求,云服務(wù)器為當(dāng)前用戶創(chuàng)建文件的鏈接;2)塊級重復(fù)數(shù)據(jù)刪除.如果文件在云服務(wù)器中不存在,則進(jìn)行塊級重復(fù)性檢查,如果塊級重復(fù),則進(jìn)行塊級重復(fù)數(shù)據(jù)刪除;否則將塊級數(shù)據(jù)上傳至云服務(wù)器.
云服務(wù)器和用戶之間存在利益沖突,云服務(wù)器希望降低存儲成本,而用戶希望得到安全高效的服務(wù).因此,我們不考慮云服務(wù)器與用戶合謀的情況.另外,我們認(rèn)為所有數(shù)據(jù)都是隱私數(shù)據(jù),而云服務(wù)器對用戶數(shù)據(jù)是好奇的.因此,需要防止來自惡意用戶和云服務(wù)器的攻擊,我們主要考慮以下2種類型的攻擊者:
1) 惡意用戶.此類攻擊者可監(jiān)聽信道,獲得上傳數(shù)據(jù)的部分信息,如文件安全條件等,從而通過與云服務(wù)器進(jìn)行交互,獲取數(shù)據(jù)的準(zhǔn)確信息.攻擊者也可通過對合法用戶的通信信道進(jìn)行監(jiān)聽,并與云服務(wù)器正常交互,從而獲得數(shù)據(jù)的所有權(quán).
2) 云服務(wù)器.云服務(wù)器可直接訪問數(shù)據(jù).誠實(shí)但好奇的云服務(wù)器會維護(hù)數(shù)據(jù)的完整性和可用性,但可在用戶不知曉的情況下,對其存儲的數(shù)據(jù)進(jìn)行非法訪問,從而獲得盡可能多的數(shù)據(jù)明文信息.
為實(shí)現(xiàn)安全高效的重復(fù)數(shù)據(jù)刪除,設(shè)計(jì)的方案應(yīng)該滿足以下3個性質(zhì):
1) 數(shù)據(jù)安全性.要求上傳的數(shù)據(jù)是語義安全的,敵手無法對上傳的數(shù)據(jù)進(jìn)行成功解密,從而獲得任何有用信息;
2) 數(shù)據(jù)訪問控制.確保僅授權(quán)用戶可獲得數(shù)據(jù)的訪問權(quán),非授權(quán)用戶無法訪問任何數(shù)據(jù);
3) 密鑰安全性.用戶之間無需交互,即可獲得數(shù)據(jù)加密密鑰,確保云服務(wù)器和敵手不可獲取數(shù)據(jù)的加密密鑰.
在本文方案中,用戶可以自定義數(shù)據(jù)共享的群體,即設(shè)置重復(fù)數(shù)據(jù)刪除操作的執(zhí)行條件.但是,如果用戶設(shè)定的數(shù)據(jù)安全條件過于苛刻(比如:無法與其他任何用戶進(jìn)行數(shù)據(jù)共享),將影響重復(fù)數(shù)據(jù)刪除的效率.因此,我們引入了安全文件比例配額參數(shù)α,表示用戶設(shè)定了安全條件的數(shù)據(jù)占其上傳數(shù)據(jù)的比例.通過限制α的取值,保證云服務(wù)器能夠?qū)ψ銐蚨嗟臄?shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除.

Table 1 Symbol Description表1 符號說明
本方案實(shí)現(xiàn)了重復(fù)數(shù)據(jù)刪除方案中用戶對數(shù)據(jù)共享操作的自主控制.云服務(wù)器設(shè)定用于生成安全條件的屬性列表,并將其對用戶公開.用戶可選定具體屬性進(jìn)行設(shè)定,并與數(shù)據(jù)標(biāo)識關(guān)聯(lián),生成安全條件,當(dāng)且僅當(dāng)后繼上傳者屬性符合該安全條件,重復(fù)數(shù)據(jù)刪除操作才會發(fā)生.否則,該后繼上傳者被視為另一安全條件下的初始上傳者.屬性列表可以包含諸如郵箱地址、網(wǎng)段號、客戶端版本等信息.例如用戶可以選定網(wǎng)段號這一屬性,并設(shè)定當(dāng)且僅當(dāng)后繼上傳者IP地址的網(wǎng)段號屬于某特定B類地址時,重復(fù)數(shù)據(jù)刪除操作才會發(fā)生.
本方案包含以下7項(xiàng)操作:
1) 數(shù)據(jù)的重復(fù)性檢測.方案采取文件級和塊級相結(jié)合的重復(fù)數(shù)據(jù)刪除方法,因此我們需要進(jìn)行文件級和塊級2階段的重復(fù)數(shù)據(jù)檢測.
2) 標(biāo)識生成.可分為文件標(biāo)識生成算法TagGen(x,F)→T(F)和塊級標(biāo)識生成算法TagGen(x,B)→T(B),其中密鑰x由用戶通過廣播加密獲得.


5) 密鑰生成.KeyGen(r,B)→k,輸入隨機(jī)參數(shù)r和數(shù)據(jù)塊B,輸出數(shù)據(jù)的加密密鑰.
6) 加密算法.Enc采用對稱加密對數(shù)據(jù)塊進(jìn)行加密,加密密鑰為k,輸出密文C.
7) 解密算法.Dec采用解密密鑰k對密文C進(jìn)行解密.
系統(tǒng)初始化階段的主要任務(wù)是對系統(tǒng)中的必備參數(shù)執(zhí)行初始化操作,可分為2步:1)廣播中心向所有用戶安全地分發(fā)密鑰x和u,用于標(biāo)識生成和數(shù)據(jù)加密;2)云服務(wù)器將元數(shù)據(jù)設(shè)置為空.
數(shù)據(jù)重復(fù)性檢測由云服務(wù)器完成,可分為文件級重復(fù)性檢測和塊級重復(fù)性檢測.當(dāng)用戶上傳或下載文件F時,計(jì)算出文件標(biāo)識T(F)=e(g,H(F)x),并可用其生成數(shù)據(jù)安全條件,其中x由用戶通過廣播加密獲得.在數(shù)據(jù)上傳階段,云服務(wù)器首先對當(dāng)前用戶上傳的文件進(jìn)行文件級重復(fù)性檢測,存在重復(fù)的情況如圖2所示.如果未檢測到重復(fù)文件,則進(jìn)行更細(xì)粒度的塊級重復(fù)性檢測,如圖3所示.在所有的場景中,用戶都可以自主選擇是否設(shè)定數(shù)據(jù)安全條件.

Fig. 2 Data upload (file duplication)圖2 數(shù)據(jù)上傳(文件重復(fù))
當(dāng)前上傳者Ui對其上傳的文件設(shè)定了安全條件Φ(F),如果在云服務(wù)器中已存在具有相同安全條件的文件,則判定存在文件重復(fù),如圖2(a)所示.當(dāng)前上傳者Uj在上傳文件時未定義安全條件,僅生成數(shù)據(jù)標(biāo)識T(F)并將其上傳至云服務(wù)器.若云服務(wù)器中存在相同的文件且設(shè)有安全條件Φ(F′),Uj的屬性符合Φ(F′),則判定存在文件重復(fù);若云服務(wù)器中存在未設(shè)定安全條件的相同文件,且標(biāo)識匹配,即可直接判定存在文件重復(fù),如圖2(b)所示.在上述2種情況中,上傳者都需要通過云服務(wù)器發(fā)起的所有權(quán)挑戰(zhàn),才能與之前的對應(yīng)用戶共享文件.
在圖3中,上傳者Ui對其上傳的文件F設(shè)定了安全條件Φ(F).如果云服務(wù)器中不存在一致的安全條件,則Ui作為帶有安全條件的F的初始上傳者,進(jìn)而執(zhí)行更細(xì)粒度的塊級重復(fù)性檢測,如圖3(a)所示.若當(dāng)前上傳者Uj對其上傳的文件F未設(shè)定安全條件,僅將數(shù)據(jù)標(biāo)識T(F)上傳至云服務(wù)器.如果云服務(wù)器中不存在匹配的數(shù)據(jù)標(biāo)識,則Uj作為未設(shè)定安全條件的F的初始上傳者,進(jìn)而執(zhí)行更細(xì)粒度的塊級重復(fù)性檢測,如圖3(b)所示.在上述2種情況中,用戶為執(zhí)行塊級重復(fù)性檢測,需要對數(shù)據(jù)分塊,計(jì)算每一塊的數(shù)據(jù)標(biāo)識,根據(jù)云服務(wù)器返回的重復(fù)性檢測結(jié)果,執(zhí)行數(shù)據(jù)重復(fù)刪除或加密上傳操作.

Fig. 3 Data upload (Initial upload)圖3 數(shù)據(jù)上傳(初始上傳)
在塊級重復(fù)性檢測過程中,對所有云服務(wù)器中不存在的數(shù)據(jù)塊進(jìn)行加密上傳.對任一數(shù)據(jù)塊B,用戶U選取隨機(jī)參數(shù)r,基于r和B的Hash值生成加密密鑰k.U采用k對數(shù)據(jù)塊進(jìn)行對稱加密,并基于廣播加密的密鑰u對r加密保護(hù),具體操作如算法1所示.
算法1. 數(shù)據(jù)加密算法.
輸入:數(shù)據(jù)塊B、密鑰參數(shù)u;
輸出:密文(Cr,CB).
Step1. 從集合FS中隨機(jī)選取元素x.
Step2. 根據(jù)密鑰生成算法生成數(shù)據(jù)加密密鑰,k←KeyGen(r,Hash(B)).
Step3. 基于廣播加密的密鑰u對r加密保護(hù),Ck←SE(u,Hash(B)-r).
Step4. 基于密鑰k對數(shù)據(jù)塊進(jìn)行加密,CB←SE(k,B).輸出密文集(Cr,CB).
用戶將數(shù)據(jù)上傳至云服務(wù)器后,將失去對數(shù)據(jù)所有權(quán)的控制.云服務(wù)器會將數(shù)據(jù)所有權(quán)授予符合安全條件的后繼上傳者.敵手可通過信道監(jiān)聽攻擊,偽裝成合法用戶與云服務(wù)器進(jìn)行交互,從而獲得數(shù)據(jù)的所有權(quán),進(jìn)而對數(shù)據(jù)進(jìn)行下載、修改等操作.為保護(hù)數(shù)據(jù)隱私和完整性,防止上述場景的出現(xiàn),云服務(wù)器在將用戶添加到所有權(quán)集之前,需要驗(yàn)證用戶的所有權(quán).本文基于布隆過濾器設(shè)計(jì)了數(shù)據(jù)所有權(quán)證明協(xié)議DPoW.
在初始上傳者IU上傳數(shù)據(jù)F時,需要進(jìn)行布隆過濾器的初始化,保存每個數(shù)據(jù)分塊的塊標(biāo)識與位置的信息,并在云服務(wù)器端的元數(shù)據(jù)中記錄分塊數(shù)量N,具體操作如算法2所示.
算法2. 布隆過濾器初始化算法.
輸入:數(shù)據(jù)塊Bi,其中i∈[0,N-1];
輸出:用戶計(jì)算的位數(shù)組BFc.
Step1. 調(diào)用標(biāo)識生成算法,計(jì)算出Bi的塊標(biāo)識T(Bi).
Step2. 調(diào)用塊位置和塊標(biāo)識映射函數(shù)生成元素e,其中e=H′(i,T(Bi)).
Step3. 調(diào)用布隆過濾器元素插入算法Bloom_Insert,將元素e插入位數(shù)組BFc中.
后繼上傳者SU上傳數(shù)據(jù)時,需要進(jìn)行所有權(quán)驗(yàn)證.云服務(wù)器從F的N個數(shù)據(jù)塊中,任取l(l∈[1,N])塊,將塊位置數(shù)組Index發(fā)送給SU.對任一數(shù)據(jù)塊BIndex[i],SU需要根據(jù)標(biāo)識生成算法,計(jì)算出對應(yīng)的塊標(biāo)識T(BIndex[i]),其中i∈[0,l].用戶將計(jì)算得到的塊標(biāo)識保存在塊標(biāo)識數(shù)組Res中,并將其發(fā)送給云服務(wù)器.
云服務(wù)器收到Res后,計(jì)算出每個塊標(biāo)識和塊位置所對應(yīng)的散列值,確定其是否在布隆過濾器的位數(shù)組BF中.若l個散列值都在BF中則認(rèn)為SU擁有F的數(shù)據(jù)所有權(quán),并將SU加入到F對應(yīng)的用戶集合AU中,具體操作如算法3所示.否則,視為SU不具有訪問權(quán)限.
算法3. 所有權(quán)挑戰(zhàn)算法(云服務(wù)器端).
輸入:塊位置數(shù)組Index、塊標(biāo)識數(shù)組Res;
輸出:數(shù)據(jù)所有權(quán)集合.
Step1.判斷用戶返回的數(shù)據(jù)塊標(biāo)識是否屬于原集合.
Step1.1. 對每一數(shù)據(jù)塊BIndex[i],調(diào)用塊位置和塊標(biāo)識映射函數(shù),生成元素e,其中e=H′(Index[i],Res[i]),i∈[0,l-1].
Step1.2. 云服務(wù)器調(diào)用布隆過濾器元素檢測算法Bloom_Query,檢測e是否屬于原集合.
Step2. 若所有數(shù)據(jù)塊對應(yīng)的映射結(jié)果在BF中都能查詢到,則將當(dāng)前用戶添加到所有權(quán)集合中F.AU←(F.AU)∪(id(SU)).
若用戶Ui設(shè)定了數(shù)據(jù)安全條件Φ(D),則在數(shù)據(jù)恢復(fù)過程中,用戶將Φ(D)上傳至云服務(wù)器,如圖4(a)所示.云服務(wù)器驗(yàn)證該數(shù)據(jù)是否已存在以及Ui是否具有訪問權(quán).當(dāng)且僅當(dāng)驗(yàn)證成功,云服務(wù)器才會將數(shù)據(jù)D對應(yīng)的全部數(shù)據(jù)塊密文{CBll}和密鑰密文{Ckll}返回給用戶.用戶對其進(jìn)行解密,從而恢復(fù)出原始數(shù)據(jù)D.若用戶Uj未設(shè)定數(shù)據(jù)安全條件,則如圖4(b)所示,Uj將數(shù)據(jù)標(biāo)識T(D)上傳至云服務(wù)器進(jìn)行數(shù)據(jù)重復(fù)性檢測和數(shù)據(jù)的下載.對任一數(shù)據(jù)塊B,用戶調(diào)用解密算法對其密文(Ck,CB)進(jìn)行解密.使用廣播加密的密鑰u對Ck對稱加密的解密,用戶恢復(fù)出參數(shù)r,從而調(diào)用密鑰生成算法,生成數(shù)據(jù)解密密鑰k,進(jìn)而解密恢復(fù)出數(shù)據(jù)塊B,其中:
r=Hash(B)-SD(u,Ck).
用戶U需要將數(shù)據(jù)D的安全條件Φ(D)=T(D)‖?(attrU)上傳至云服務(wù)器,用于數(shù)據(jù)查找和重復(fù)性判斷,其中attrU表示用戶U選定的屬性.我們主要分析數(shù)據(jù)安全條件中數(shù)據(jù)標(biāo)識的安全性,包括其不可偽造性以及可區(qū)分性.
引理1. 對于安全的散列函數(shù)H:{0,1}*→G1,?D1,D2∈[0,1]*,D1≠D2,H(D1)=H(D2)的概率是可忽略的.即:
P[H(D1)=H(D2)|D1≠D2]≤ε.
定理1. 數(shù)據(jù)標(biāo)識的不可偽造性.設(shè)數(shù)據(jù)D的初始上傳者Ui上傳的數(shù)據(jù)標(biāo)識為T(D)=e(g,H(D)x).當(dāng)前用戶Uj上傳數(shù)據(jù)D′時,上傳的數(shù)據(jù)標(biāo)識為T(D′)=e(g,H(D′)x).當(dāng)且僅當(dāng)T(D)=T(D′)時,D=D′成立.即若T(D)=T(D′),那D≠D′的概率是可忽略的:
P[D≠D′|T(D)=T(D′)]≤ε.
證明. 不失一般性,由雙線性映射的雙線性,我們可得以下推論:
T(D)=e(g,H(D)x)=e(g,H(D))x.
(1)
若D≠D′,我們從以下2個方面討論敵手對數(shù)據(jù)標(biāo)識的攻擊:
1) 假設(shè)敵手A是惡意用戶,則A能獲得參數(shù)x;
2) 假設(shè)敵手A是云服務(wù)器,則對A而言,參數(shù)H(D)和x都是不可預(yù)測的.
以上2種情況,敵手A都不能構(gòu)造出滿足等式T(D)=T(D′)的數(shù)據(jù)標(biāo)識.換而言之,即P[D≠D′|e(g,H(D))x=e(g,H(D′))x]≤ε.
因此,數(shù)據(jù)標(biāo)識具有不可偽造性,根據(jù)T(D)=T(D′)即可判斷出D=D′.
證畢.
定理2. 數(shù)據(jù)標(biāo)識的可區(qū)分性.設(shè)數(shù)據(jù)D的初始上傳者Ui上傳的數(shù)據(jù)標(biāo)識為T(D)=e(g,H(D)x).當(dāng)前上傳者Uj上傳數(shù)據(jù)D′時,上傳的數(shù)據(jù)標(biāo)識為T(D′)=e(g,H(D′)x).若D≠D′,則T(D)=T(D′)的概率是可忽略的,即:
P[T(D)=T(D′)|D≠D′]≤ε.
證明. 假設(shè)存在D≠D′,使得T(D)=T(D′).根據(jù)雙線性映射的性質(zhì)可得等式:
T(D)=T(D′) ?e(g,H(D)x)=e(g,H(D′)x)?
e(g,H(D))x=e(g,H(D′))x?
e(g,H(D))=e(g,H(D′)).
(2)
欲使式(2)成立,式H(D)=H(D′)必須成立.根據(jù)引理1,可得D=D′.這與假設(shè)矛盾,因此假設(shè)不成立.即:
P[T(D)=T(D′)|D≠D′]≤ε.
可見,當(dāng)且僅當(dāng)D=D′時,T(D)=T(D′)才會成立.即數(shù)據(jù)標(biāo)識之間具有可區(qū)分性.
證畢.

定理3. 數(shù)據(jù)標(biāo)識的安全性.云服務(wù)器無法對數(shù)據(jù)標(biāo)識進(jìn)行離線窮舉攻擊,以獲得任何數(shù)據(jù)明文信息.
證明. 假設(shè)數(shù)據(jù)D的安全條件為Φ(D),云服務(wù)器以窮舉的方式對D的內(nèi)容進(jìn)行猜測.根據(jù)Φ(D)的構(gòu)造,我們可知Φ(D)=T(D)‖?(attr).這里我們僅討論云服務(wù)器對標(biāo)識T(D)=e(g,H(D)x)的攻擊.根據(jù)雙線性映射的性質(zhì),我們可得T(D)=e(g,H(D))x.云服務(wù)器對數(shù)據(jù)D進(jìn)行枚舉,窮舉大量的數(shù)據(jù){Di},試圖找到滿足T(D)=T(Di)的數(shù)據(jù)Di.云服務(wù)器可以計(jì)算出e(g,H(Di)),但由于不是授權(quán)用戶,無法從廣播中心得知安全參數(shù)x,因此無法計(jì)算出T(Di)=e(g,H(Di))x.由引理2可知,即使已知e(g,H(D))x和e(g,H(Di)),計(jì)算e(g,H(Di))x仍是困難的.即若云服務(wù)器以離線窮舉方式成功破解其存儲的數(shù)據(jù)標(biāo)識,則意味著可以成功解決乘法循環(huán)群G2中的一例CDH困難問題.群G2中的CDH問題是困難的,因此云服務(wù)器無法以窮舉的方式從數(shù)據(jù)標(biāo)識中獲得數(shù)據(jù)明文的任何信息.
證畢.
方案基于布隆過濾器實(shí)現(xiàn)了對數(shù)據(jù)所有權(quán)的證明,防止敵手進(jìn)行信道監(jiān)聽攻擊,這是實(shí)現(xiàn)多方計(jì)算安全性的主要技術(shù)[27-28].假設(shè)敵手A成功通過了云服務(wù)器發(fā)起的所有權(quán)證明,即針對云服務(wù)器選取的l塊數(shù)據(jù)塊挑戰(zhàn),A生成的回答都能通過布隆過濾器的驗(yàn)證.設(shè)A挑戰(zhàn)成功的概率為Psucc.針對l塊中的任一數(shù)據(jù)塊,A挑戰(zhàn)成功可以分為2種情況:1)A成功生成了正確的數(shù)據(jù)標(biāo)識作為挑戰(zhàn)回答,令其概率為PRtag;2)A未產(chǎn)生正確的數(shù)據(jù)標(biāo)識,但是因?yàn)椴悸∵^濾器在元素映射過程中存在碰撞性,使得產(chǎn)生的數(shù)據(jù)標(biāo)識經(jīng)過運(yùn)算也能通過布隆過濾器驗(yàn)證,令其概率為Pf,則可推算出:
Psucc=(PRtag+Pf×(1-PRtag))l.
(3)
我們具體分析敵手A提供正確數(shù)據(jù)標(biāo)識的概率PRtag.針對任一數(shù)據(jù)塊B,存在以下2種情況:1)敵手A已經(jīng)知道了B的內(nèi)容,因此可以正確生成數(shù)據(jù)標(biāo)識,令其概率為p;2)敵手A不知道數(shù)據(jù)塊的內(nèi)容,但是A可以預(yù)測TagGen函數(shù)輸出的每一位,進(jìn)而猜測出正確的數(shù)據(jù)標(biāo)識.在隨機(jī)預(yù)言機(jī)模型下,A正確猜測出TagGen函數(shù)輸出的每一位的概率為0.5,則A正確猜測出數(shù)據(jù)標(biāo)識的概率為0.5|TagGen(x,B)|.可推出:
PRtag=p+(1-p)×0.5|TagGen(x,B)|.
(4)
將式(4)代入式(3),可得出:
Psucc=(PRtag+Pf×(1-PRtag))l=
(p+(1-p)×0.5|TagGen(x,B)|+
Pf×(1-(p+(1-p)×0.5|TagGen(x,B)|)))l=
(p+(1-p)×0.5|TagGen(x,B)|+
(1-p)×Pf-Pf×(1-p)×0.5|TagGen(x,B)|)l=
(p+(1-p)×(0.5|TagGen(x,B)|+
Pf×(1-0.5|TagGen(x,B)|)))l.
為保證數(shù)據(jù)的安全性,Psucc應(yīng)該滿足Psucc≤2-λ,其中λ是系統(tǒng)安全參數(shù),即(p+(1-p)×(0.5|TagGen(x,B)|+Pf×(1-0.5|TagGen(x,B)|)))l≤2-λ,可以計(jì)算出:
l≥λ×ln 2×(p+(1-p)×(0.5|TagGen(x,B)|+
Pf×(1-0.5|TagGen(x,B)|)))-1.
(5)
即當(dāng)l的數(shù)值滿足式(5)時,敵手成功計(jì)算出數(shù)據(jù)標(biāo)識的概率將是可忽略的.
方案采用隨機(jī)數(shù)r和數(shù)據(jù)摘要生成數(shù)據(jù)的加密密鑰k.其次,利用廣播加密的密鑰對隨機(jī)數(shù)r進(jìn)行加密保護(hù),從而保證了k的安全.本節(jié)主要從來自惡意用戶和云服務(wù)器的2方面威脅,分析多方計(jì)算環(huán)境中的數(shù)據(jù)安全性.
4.3.1 抵御來自惡意用戶的攻擊
定理4. 惡意用戶EU無法利用信道監(jiān)聽得來的交互數(shù)據(jù),計(jì)算出數(shù)據(jù)本身的信息.
證明. 假設(shè)惡意用戶EU是廣播中心的授權(quán)用戶,因此EU可獲得廣播的密鑰x,u.設(shè)EU通過監(jiān)聽通信信道,得到數(shù)據(jù)交互信息T(B)以及數(shù)據(jù)下載信息Ck,CB.根據(jù)已獲得的信息,EU對數(shù)據(jù)塊B進(jìn)行窮舉攻擊.
EU對數(shù)據(jù)塊B進(jìn)行窮舉攻擊,具體操作如下:
1)EU窮舉數(shù)據(jù)塊集合PB={Bi},i∈[1,2blkSize],其中blkSize表示數(shù)據(jù)塊大小;
2)EU對PB中的所有數(shù)據(jù)塊計(jì)算{Hash(Bi)};
3)EU窮舉隨機(jī)數(shù)集合{rj},j∈[1,2rndSize],其中rndSize表示隨機(jī)數(shù)長度;

若EU窮舉的密文集合中存在CBi,且滿足CB=CBi,則認(rèn)為敵手挑戰(zhàn)成功,數(shù)據(jù)明文信息遭到泄露.EU可以成功破解數(shù)據(jù)的時間復(fù)雜度為Ο(2blkSize),在計(jì)算上不可行.
證畢.
4.3.2 抵御來自云服務(wù)器的攻擊
定理5. 云服務(wù)器S無法通過對其存儲的數(shù)據(jù)進(jìn)行離線窮舉攻擊,從而獲得數(shù)據(jù)本身的信息.
證明.S可以執(zhí)行以下操作,以期望獲得數(shù)據(jù)本身的信息.
根據(jù)定理4可知,S無法根據(jù)數(shù)據(jù)的密文,對數(shù)據(jù)成功進(jìn)行窮舉攻擊.因此,本節(jié)中我們僅考慮S從數(shù)據(jù)安全條件方面獲取數(shù)據(jù)本身的信息.
1)S查詢數(shù)據(jù)結(jié)構(gòu)δ得到數(shù)據(jù)標(biāo)識T(D);
2)S窮舉數(shù)據(jù)集合,得到集合{Di},計(jì)算出{H(Di)},i∈[1,2DSize],其中DSize表示數(shù)據(jù)本身的長度;
3) 因?yàn)镾不是授權(quán)用戶,因此無法獲得廣播中心發(fā)送的密鑰x.S對x進(jìn)行窮舉,得到集合{xj},j∈[1,2xSize],其中xSize表示密鑰x的長度.
如果在S窮舉的{Di}中,存在Di,在xj的作用下,得到T(Di)=T(D),則認(rèn)為S成功地進(jìn)行了窮舉攻擊.該過程的時間復(fù)雜度為Ο(2DSize),在計(jì)算上不可行.因此,云服務(wù)器無法從其存儲的數(shù)據(jù)結(jié)構(gòu)中獲得數(shù)據(jù)的信息.
證畢.
在本文的方案中,存在云服務(wù)器欺騙行為的可能.當(dāng)云服務(wù)器根據(jù)用戶發(fā)送的數(shù)據(jù)安全條件判斷是否執(zhí)行重復(fù)數(shù)據(jù)刪除操作時,可能會偽造查詢結(jié)果.一種情況是用戶上傳數(shù)據(jù)安全條件后,云服務(wù)器在存在重復(fù)數(shù)據(jù)的情況下,仍給出無重復(fù)數(shù)據(jù)的回復(fù).但是,這種欺騙行為是沒有意義的.用戶的目的只是將數(shù)據(jù)安全地存儲于云服務(wù)器中,且云服務(wù)器無法得知正確的安全參數(shù).云服務(wù)器偽造安全條件查詢結(jié)果,則要消耗更多的存儲空間,損害的是其自身利益.另一種情況是云服務(wù)器未檢測到重復(fù)數(shù)據(jù),但給出數(shù)據(jù)已存在的回復(fù),并執(zhí)行重復(fù)數(shù)據(jù)刪除操作.然而,這種情況無法實(shí)現(xiàn).云服務(wù)器僅通過上傳的安全條件,無法給用戶分配正確的訪問鏈接.用戶在數(shù)據(jù)恢復(fù)過程中會發(fā)生錯誤.所以,我們不考慮云服務(wù)器偽造安全條件查詢結(jié)果的欺騙行為.
本方案基于GMP[29],PBC[30],OpenSSL[31]函數(shù)庫,采用C++語言進(jìn)行編程實(shí)現(xiàn).實(shí)驗(yàn)環(huán)境采用配有2.6 GHz主頻6核雙CPU,128 GB運(yùn)行內(nèi)存的HP ProLiant BL460c Gen8服務(wù)器以及多臺具有2.5 GHz i7處理器和16GB內(nèi)存的DELL臺式機(jī).網(wǎng)絡(luò)連接采用10 Mbps的局域網(wǎng)模擬云存儲應(yīng)用環(huán)境.操作系統(tǒng)均為ubantu Linux.云服務(wù)器采用MySQL數(shù)據(jù)庫存儲數(shù)據(jù)信息.利用上述設(shè)備模擬了一個多用戶云存儲的多方計(jì)算應(yīng)用場景[32-33].程序?qū)崿F(xiàn)分為客戶端和服務(wù)器端2個部分.客戶端模擬用戶執(zhí)行數(shù)據(jù)上傳的過程,服務(wù)器端模擬與用戶的交互過程及云服務(wù)器數(shù)據(jù)的管理.
方案采取文件級和塊級相結(jié)合的重復(fù)數(shù)據(jù)刪除方法,以數(shù)據(jù)塊作為云服務(wù)器數(shù)據(jù)密文存儲的最小單位.實(shí)驗(yàn)使用MD5作為Hash函數(shù),基于AES對稱加密算法對數(shù)據(jù)塊進(jìn)行加密、解密.在密鑰生成階段,利用HMAC-SHA-1算法對隨機(jī)數(shù)r和數(shù)據(jù)D的Hash值進(jìn)行計(jì)算,生成密鑰k.為模擬真實(shí)的應(yīng)用環(huán)境,數(shù)據(jù)塊大小為4 KB.云服務(wù)器發(fā)起的DPoW挑戰(zhàn)中,塊數(shù)l=100.對于分塊數(shù)量不足100的文件,l取其實(shí)際分塊數(shù)量.本節(jié)從刪重率、計(jì)算開銷以及方案性能3方面進(jìn)行模擬實(shí)驗(yàn)與分析.
我們定義刪重率τ=(重復(fù)數(shù)據(jù)大小/總數(shù)據(jù)大小)×100%.我們進(jìn)行了4組模擬實(shí)驗(yàn),用于討論安全文件比例配額α和數(shù)據(jù)提取參數(shù)β對系統(tǒng)刪重率的影響,并討論刪重率對系統(tǒng)執(zhí)行效率的影響.其中,β用于模擬真實(shí)的應(yīng)用場景,為用戶分配一定數(shù)量的重復(fù)文件.
為測試文件數(shù)量n對刪重率的影響,我們設(shè)定用戶數(shù)量m=100,且α=0.2,基于不同取值的β,將不同數(shù)量的文件上傳至云服務(wù)器,實(shí)驗(yàn)結(jié)果如圖5所示.當(dāng)n Fig. 5 Impact of file number on τ圖5 文件數(shù)量對刪重率的影響 我們設(shè)置α,β的取值分別為0.2和7,觀察用戶數(shù)量m對刪重率的影響,實(shí)驗(yàn)結(jié)果如圖6所示.文件數(shù)量一定的情況下,用戶數(shù)量與刪重率可視為正比關(guān)系.用戶越多,系統(tǒng)中重復(fù)文件數(shù)量也隨之增加,數(shù)據(jù)刪重率越高. Fig. 6 Impact of user number on τ圖6 用戶數(shù)量對刪重率的影響 另外,α的取值會對系統(tǒng)刪重率產(chǎn)生一定的影響.當(dāng)文件和用戶數(shù)量一定時,α取值越大,表明上傳數(shù)據(jù)中設(shè)有安全條件的數(shù)據(jù)越多,重復(fù)刪除的條件更加苛刻,系統(tǒng)的刪重率也越低,如圖7所示.因此,本方案對α的取值進(jìn)行了限制,僅部分文件可設(shè)定安全條件,這樣既可以提高數(shù)據(jù)的保密性,又能保證系統(tǒng)的執(zhí)行效率. Fig. 7 Impact of α on τ圖7 α的取值對系統(tǒng)刪重率的影響 為評估刪重率對系統(tǒng)的影響,我們進(jìn)行了如下實(shí)驗(yàn).選取多個Linux發(fā)行版作為數(shù)據(jù)集合,本文實(shí)驗(yàn)中所用文件樣本均選自該數(shù)據(jù)集[34].實(shí)驗(yàn)首先選取2個樣本集合,分別包含500個大小不等、內(nèi)容不同的文件.將集合1中的所有數(shù)據(jù)以初始上傳者身份上傳到云服務(wù)器.根據(jù)需要模擬的刪重率,分別從集合1和集合2中選取部分文件,以后繼上傳者身份上傳.計(jì)算上傳每100 MB文件所需的平均時間,實(shí)驗(yàn)結(jié)果如表2和圖8所示.當(dāng)刪重率較高時,所有權(quán)證明所需的時間開銷較高,文件加密與上傳操作較少;刪重率較低時,文件加密與上傳操作所占時間開銷比例較大.刪重率為100%時,整體時間開銷約為刪重率等于20%時的一半.由此,可以看出,本文設(shè)計(jì)的重復(fù)數(shù)據(jù)刪除系統(tǒng)在文件備份系統(tǒng)中,既可實(shí)現(xiàn)較高的文件重復(fù)刪除效率,也可帶來較好的用戶體驗(yàn). Table 2 Comparison of Data Upload with Different τ表2 不同刪重率對應(yīng)的數(shù)據(jù)上傳情況對比 Fig. 8 Impact of τ on computational expense per 100 MB data圖8 每100 MB數(shù)據(jù)刪除率對時間開銷的影響 我們將數(shù)據(jù)上傳過程分為數(shù)據(jù)分塊、安全條件生成、重復(fù)性檢測、所有權(quán)證明、對稱加密以及數(shù)據(jù)上傳6個部分.關(guān)于計(jì)算開銷的實(shí)驗(yàn)分為2個部分,用于DPoW證明所需的時間開銷以及方案整體的時間開銷.為模擬真實(shí)的應(yīng)用環(huán)境,我們對云服務(wù)器中的元數(shù)據(jù)進(jìn)行了隨機(jī)化設(shè)置,設(shè)初始列表中包含超過2 000條不同的數(shù)據(jù)元組,對應(yīng)于云服務(wù)器中存儲的數(shù)據(jù)塊,且設(shè)定了安全條件的數(shù)據(jù)量和未設(shè)定安全條件的數(shù)據(jù)量比值約為1∶4. 5.2.1 DPoW所需的時間開銷 采用t個相互獨(dú)立的Hash函數(shù)作為布隆過濾器的映射函數(shù),并對映射結(jié)果取模.t的取值對布隆過濾器的誤判率存在一定的影響.若t的取值過大,則位數(shù)組BF中更多的元素被設(shè)置為1,新元素被誤判的概率就越大;若t的取值過小,BF中的0就越多,將影響系統(tǒng)的誤判率[35]. 為評估文件大小和t值對DPoW初始化操作性能的影響,我們進(jìn)行了如下實(shí)驗(yàn).對不同的t值,上傳不同大小的文件,記錄用于DPoW初始化的時間開銷.實(shí)驗(yàn)結(jié)果如圖9所示.文件規(guī)模越大,數(shù)據(jù)分塊越多,將塊標(biāo)識和塊位置的映射結(jié)果插入BF的操作重復(fù)次數(shù)越多,初始化布隆過濾器的時間開銷越大.此外,對于同樣大小的文件,其分塊數(shù)量是固定的.t值越大,意味著需要對BF中更多的元素進(jìn)行操作,因此所需的時間開銷越大. 我們通過實(shí)驗(yàn)測算了DPoW占系統(tǒng)總體時間開銷的比例.對不同的t,該比例均不超過5%,實(shí)驗(yàn)結(jié)果如圖10所示.當(dāng)t固定時,對于不同大小的文件,用于DPoW的時間占總體時間開銷的比例十分相近.隨著文件規(guī)模的增大,該比例呈減小趨勢.這是因?yàn)橛糜贒PoW質(zhì)詢的時間是固定的.因此,本文提出的DPoW對系統(tǒng)的執(zhí)行效率所造成的影響是可忽略的. Fig. 9 The time used for DPoW intialization圖9 DPoW初始化所用的時間開銷 Fig. 10 The proportion of DPoW in total system overhead圖10 所有權(quán)證明占系統(tǒng)總體開銷的比例 5.2.2 方案的總體時間開銷 通過上傳不同大小的文件,測試各階段操作所需的時間開銷,實(shí)驗(yàn)結(jié)果如圖11所示.方案將部分計(jì)算開銷與實(shí)際存儲操作都外包給云服務(wù)器.此外,數(shù)據(jù)分塊、安全條件的生成、對稱加密所需的時間開銷非常小.因此相比較而言,客戶端的時間開銷遠(yuǎn)小于服務(wù)器端的時間開銷. 盡管以數(shù)據(jù)塊作為最小存儲單元,云服務(wù)器存儲結(jié)構(gòu)中會存在部分重復(fù)項(xiàng),如文件標(biāo)識.但是,這能夠進(jìn)一步降低云服務(wù)器的實(shí)際存儲開銷. 我們與perfectDedup方案、文獻(xiàn)[18]以及文獻(xiàn)[21]對比了文件上傳操作的時間開銷.各階段時間開銷對比結(jié)果如圖12所示,總體時間開銷對比如圖13所示.在數(shù)據(jù)標(biāo)識生成、重復(fù)性檢測階段,本方案明顯優(yōu)于perfectDedup方案和文獻(xiàn)[21],因?yàn)閴K級和文件級相結(jié)合的數(shù)據(jù)重復(fù)性檢測方法提高了系統(tǒng)性能.而perfectDedup方案僅采用塊級重復(fù)性檢測,且引入了實(shí)時在線的第三方.文獻(xiàn)[18]采用的同態(tài)加密和PAKE方案增加了系統(tǒng)執(zhí)行時間.文獻(xiàn)[21]需要由云服務(wù)器對RCE加密的密文進(jìn)行外層加密,增加了系統(tǒng)復(fù)雜性.實(shí)驗(yàn)結(jié)果表明:盡管本方案所引入的DPoW產(chǎn)生了一定的時間開銷,但整體上仍優(yōu)于其他的方案. Fig. 11 Time span for each phrase of system圖11 系統(tǒng)各階段操作的時間開銷 Fig. 12 Comparison of every phase about time span圖12 各階段時間開銷對比 Fig. 13 Comparison of overall time span圖13 整體時間開銷對比 表3分析比較了本方案與其他代表性方案的優(yōu)點(diǎn)和局限性. 本文研究了云存儲環(huán)境中加密數(shù)據(jù)的重復(fù)刪除問題,提出了基于用戶定義安全條件的可驗(yàn)證重復(fù)數(shù)據(jù)刪除方案.方案首次分析了用戶數(shù)據(jù)共享控制問題,引入了用戶屬性,基于雙線性映射擴(kuò)展了數(shù)據(jù)標(biāo)識,設(shè)計(jì)了數(shù)據(jù)安全條件機(jī)制.當(dāng)且僅當(dāng)后繼上傳者的安全條件與現(xiàn)有安全條件一致或其屬性符合現(xiàn)有安全條件,才會發(fā)生數(shù)據(jù)的重復(fù)刪除.本方案采取文件級和塊級相結(jié)合的重復(fù)數(shù)據(jù)刪除方法,進(jìn)一步提高了系統(tǒng)執(zhí)行效率.此外,基于安全多方計(jì)算理論和布隆過濾器技術(shù)設(shè)計(jì)了所有權(quán)證明機(jī)制,實(shí)現(xiàn)了對數(shù)據(jù)所有權(quán)的控制,能有效抵御來自敵手的信道監(jiān)聽攻擊.安全性分析和實(shí)驗(yàn)結(jié)果表明:本方案能安全、高效地實(shí)現(xiàn)云存儲環(huán)境中加密數(shù)據(jù)的重復(fù)刪除. 實(shí)現(xiàn)云存儲用戶動態(tài)所有權(quán)控制,解決用戶數(shù)據(jù)更新操作的權(quán)限管理問題是有待進(jìn)一步研究的問題.




5.2 計(jì)算開銷





5.3 方案特點(diǎn)比較
6 總結(jié)與展望