熊金波,張媛媛,田有亮,應(yīng)作斌,李琦,馬蓉
(1. 貴州省公共大數(shù)據(jù)重點(diǎn)實(shí)驗(yàn)室(貴州大學(xué)),貴州 貴陽,550025;2. 福建師范大學(xué)數(shù)學(xué)與信息學(xué)院,福建 福州 350117;3. 安徽大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院, 安徽 合肥 230601;4. 南京郵電大學(xué)計算機(jī)學(xué)院,江蘇 南京 210023)
隨著云計算、大數(shù)據(jù)技術(shù)的不斷發(fā)展,越來越多的企業(yè)和個人通過數(shù)據(jù)外包享受到云服務(wù)提供商經(jīng)濟(jì)高效的計算和存儲服務(wù)。Excelcom公司發(fā)布的“互聯(lián)網(wǎng)一分鐘產(chǎn)生數(shù)據(jù)”信息顯示,一分鐘內(nèi)Facebook共產(chǎn)生701 389個賬號登錄,1.5億封電子郵件已發(fā)送,Google上產(chǎn)生240萬個的搜索請求,Instagram平臺上傳243萬多張照片。從信息單位的角度計算,2011年全世界每天發(fā)送的數(shù)據(jù)量達(dá)到40億或更多,全球數(shù)據(jù)產(chǎn)生量達(dá)到 1.8 ZB,IDC(international data corporation)的報告顯示,2013年全球數(shù)據(jù)量已達(dá)到4.4 ZB,并且數(shù)據(jù)總量每年的增長速度也超過50%,預(yù)計到2020年,全球數(shù)據(jù)總量將超過 44 ZB[1]。研究表明,超過一半的云存儲空間被重復(fù)數(shù)據(jù)的副本占用,用于管理重復(fù)數(shù)據(jù)的預(yù)算開銷是管理原數(shù)據(jù)本身的8倍。數(shù)據(jù)量的爆炸式增長態(tài)勢、占據(jù)大量存儲空間的重復(fù)數(shù)據(jù)以及龐大的管理開銷給云存儲空間帶來巨大壓力。因此,如何經(jīng)濟(jì)高效地存儲和管理數(shù)據(jù)成為云服務(wù)提供商面臨的嚴(yán)峻挑戰(zhàn)。
為了提高存儲效率、降低管理開銷,重復(fù)數(shù)據(jù)刪除技術(shù)(數(shù)據(jù)去重)被云服務(wù)提供商廣泛采用。云服務(wù)器通過隨機(jī)抽樣、提取散列值等方法校驗(yàn)用戶上傳的數(shù)據(jù)是否已經(jīng)存儲,經(jīng)驗(yàn)證,若用戶新上傳的數(shù)據(jù)與原存儲數(shù)據(jù)相同則執(zhí)行數(shù)據(jù)去重[1]。根據(jù)不同的分類標(biāo)準(zhǔn),數(shù)據(jù)去重的分類結(jié)果也不盡相同。根據(jù)數(shù)據(jù)的處理單位,可以分為文件級數(shù)據(jù)去重和塊級數(shù)據(jù)去重;根據(jù)數(shù)據(jù)去重的執(zhí)行對象,可以分為基于目標(biāo)的數(shù)據(jù)去重即服務(wù)器端數(shù)據(jù)去重、基于文件源的數(shù)據(jù)去重(即客戶端數(shù)據(jù)去重)以及跨用戶數(shù)據(jù)去重[2]。實(shí)驗(yàn)表明,跨用戶數(shù)據(jù)去重將節(jié)省一半以上的存儲空間,去重率達(dá)到90%~95%[3,4]。
然而,大數(shù)據(jù)時代下的企業(yè)與個人外包給云服務(wù)提供商的數(shù)據(jù)涉及大量隱私信息。因此,在保護(hù)用戶隱私數(shù)據(jù)的同時實(shí)施數(shù)據(jù)安全去重是云服務(wù)提供商面臨的新挑戰(zhàn),是否能夠提供安全的數(shù)據(jù)去重服務(wù)也是滿足用戶外包數(shù)據(jù)需求的衡量標(biāo)準(zhǔn)之一。保護(hù)用戶數(shù)據(jù)隱私的安全去重技術(shù)迅速成為云存儲領(lǐng)域的研究熱點(diǎn),得到學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注。收斂加密(CE, convergent encryption)算法首先由Douceur等[5]提出,保證相同的數(shù)據(jù)經(jīng)過散列運(yùn)算及對稱加密算法得到相同的密鑰和密文。CE算法不僅滿足對密文數(shù)據(jù)進(jìn)行重復(fù)性檢測的需求,而且有效地減少云存儲空間的浪費(fèi),能夠很好地適應(yīng)云計算環(huán)境,如Puzio等[6]、Li等[7]和Stanek等[8]均結(jié)合CE算法實(shí)現(xiàn)云數(shù)據(jù)安全去重。為了達(dá)到語義安全,Bellare等[9]提出了一種消息鎖加密(MLE,message-locked encryption)算法,Chen 等[10]、Jiang 等[11]、Li等[12]和 Qin 等[13]分別結(jié)合 MLE 算法實(shí)現(xiàn)數(shù)據(jù)安全去重。然而,傳統(tǒng)的CE和MLE算法存在許多隱私泄露問題以及新的安全挑戰(zhàn)。
1) 隱私泄露。云服務(wù)提供商在采用數(shù)據(jù)去重技術(shù)控制單個文件副本數(shù)量的同時,敵手可能利用云數(shù)據(jù)去重過程并通過相關(guān)攻擊手段竊取用戶的隱私信息,包括個體隱私和集體隱私。不僅如此,在云服務(wù)器執(zhí)行去重檢測的同時,用戶的身份、位置信息以及用戶之間重復(fù)數(shù)據(jù)的數(shù)量可能被泄露,這些隱私數(shù)據(jù)遭到泄露將嚴(yán)重阻礙云服務(wù)的健康發(fā)展,因此,在云數(shù)據(jù)去重過程中保護(hù)數(shù)據(jù)隱私尤為重要。
2) 未授權(quán)訪問?;趥鹘y(tǒng)內(nèi)容加密算法的數(shù)據(jù)去重方案存在嚴(yán)重的安全漏洞,敵手僅通過上傳文件的散列值即可通過離線蠻力攻擊得到用戶信息,難以保障云端用戶隱私數(shù)據(jù)的安全性和授權(quán)訪問。云環(huán)境中用戶存在分層結(jié)構(gòu),不同層次的用戶所擁有的權(quán)限也不同,對于云端存儲的文件,只有擁有訪問權(quán)限的用戶才能訪問。在執(zhí)行云數(shù)據(jù)去重過程中,如何保證只有擁有特定權(quán)限的用戶才能訪問指定文件是亟待解決的一個關(guān)鍵問題。
3) 權(quán)限的更新與撤銷。在實(shí)際應(yīng)用中,執(zhí)行數(shù)據(jù)去重的企業(yè)和個人的角色與需求靈活多變,這些用戶的權(quán)限也是動態(tài)變化的。因此,需要合理的更新和撤銷機(jī)制來及時處理用戶的權(quán)限變更,保證用戶的合法訪問權(quán)限;同時,滿足復(fù)雜多變的用戶需求,更好地應(yīng)用在實(shí)際生產(chǎn)生活中。在云數(shù)據(jù)授權(quán)訪問過程中,用戶權(quán)限的更新與撤銷問題亟待解決。
綜上所述,為了解決現(xiàn)有云數(shù)據(jù)安全去重方案存在的上述問題,本文提出一種基于角色對稱加密的云數(shù)據(jù)安全去重方案。該方案設(shè)計一種角色對稱加密算法將用戶角色與密鑰相關(guān)聯(lián),構(gòu)建角色密鑰樹,滿足不同角色根據(jù)訪問控制策略訪問對應(yīng)權(quán)限文件的需求,實(shí)現(xiàn)角色分層結(jié)構(gòu)下的云數(shù)據(jù)授權(quán)去重,并通過群組密鑰協(xié)商解決角色與密鑰映射關(guān)系中由密鑰更新、權(quán)限撤銷等帶來的安全問題。本文主要貢獻(xiàn)如下。
1) 提出角色對稱加密算法,建立分層角色密鑰樹映射用戶角色關(guān)系,設(shè)計角色密鑰生成函數(shù)和文件密鑰生成函數(shù)獲得角色密鑰及文件密鑰,使用戶角色與其密鑰相關(guān)聯(lián),為云數(shù)據(jù)安全去重提供理論基礎(chǔ)。
2) 針對云環(huán)境下的隱私泄露、未授權(quán)訪問等安全問題,提出一種基于角色對稱加密的云數(shù)據(jù)安全去重方案,實(shí)現(xiàn)角色分層結(jié)構(gòu)下不同角色用戶對文件的授權(quán)訪問與安全去重。
3) 針對角色與密鑰映射關(guān)系中由于密鑰更新、權(quán)限撤銷等帶來的安全問題,設(shè)計一種授權(quán)密鑰更新機(jī)制,引入群組密鑰協(xié)商協(xié)議,對角色密鑰樹進(jìn)行處理,在保證授權(quán)訪問和安全去重的基礎(chǔ)上,實(shí)現(xiàn)授權(quán)密鑰的更新和用戶權(quán)限的撤銷。
4) 安全分析表明,角色對稱加密算法是可證明安全的,基于角色對稱加密的云數(shù)據(jù)安全去重方案能夠滿足安全目標(biāo),性能分析和實(shí)驗(yàn)結(jié)果表明所提方案是高效的。
國內(nèi)外學(xué)者對云環(huán)境中數(shù)據(jù)安全去重問題進(jìn)行了深入研究,并取得了一定的成果。Puzio等[6]提出了一種基于 CE算法的安全高效存儲系統(tǒng)ClouDedup,增加訪問控制機(jī)制與語義安全加密算法實(shí)現(xiàn)數(shù)據(jù)塊級去重。Stanek等[8]將文件分為流行文件和非流行文件,分別對應(yīng)不同的安全等級,針對這些不同安全等級的文件采用不同級別的加密算法。針對用戶自定義文件安全等級過程中出現(xiàn)的安全隱患,Puzio等[14]提出了一種PerfectDedup方案,使用完美散列函數(shù)獲得數(shù)據(jù)塊重要程度的索引,實(shí)現(xiàn)數(shù)據(jù)安全去重。Li等[7]將CE算法與收斂擴(kuò)散機(jī)制結(jié)合,提出了一種CDStore方案以實(shí)現(xiàn)數(shù)據(jù)安全去重,實(shí)驗(yàn)表明所提方案節(jié)省近70%的存儲開銷。為了達(dá)到語義安全加密,Bellare等[9]提出了一種 MLE算法,并給出明確的安全性目標(biāo)和嚴(yán)格的形式化定義來實(shí)現(xiàn)云數(shù)據(jù)安全去重;在此基礎(chǔ)上,提出了一種跨用戶的數(shù)據(jù)安全去重方案iMLE[15],采用交互消息鎖加密算法實(shí)現(xiàn)關(guān)聯(lián)文件的安全去重。Chen等[10]提出了一種適用于大規(guī)模加密文件環(huán)境中的數(shù)據(jù)安全去重方案BL-MLE,使用少量的元數(shù)據(jù)高效安全地實(shí)現(xiàn)文件級和塊級數(shù)據(jù)去重。Jiang等[11]提出了一種 R-MLE2方案,采用隨機(jī)化標(biāo)識的方式實(shí)現(xiàn)跨用戶的高效數(shù)據(jù)去重。為了解決密鑰管理問題,Li等[16]將密鑰分布存儲在多服務(wù)器中,Miao等[17]提出了一種基于門限盲簽名與可校驗(yàn)秘密共享機(jī)制的多密鑰服務(wù)器數(shù)據(jù)去重方案,可以防止第三方的密鑰服務(wù)器與云服務(wù)器合謀。針對密鑰更新問題,Li等[12]和Qin等[13]提出了一種通過更新密鑰狀態(tài)實(shí)現(xiàn)文件密鑰更新的REED方案,結(jié)合MLE和AONT-RS秘密共享機(jī)制滿足數(shù)據(jù)安全去重的要求。然而,上述結(jié)合 CE、MLE等基于內(nèi)容加密的數(shù)據(jù)去重方案易遭受離線蠻力攻擊和側(cè)信道攻擊,存在隱私泄露和未授權(quán)訪問等安全問題。
通過上述攻擊,敵手僅依據(jù)上傳文件散列值就可以猜測得到文件信息,為此,Halevi等[18]提出了一種所有權(quán)證明(PoW, proof of ownership)的概念,服務(wù)器和客戶端分別根據(jù)原文件生成 Merkle Hash Tree(MHT),由服務(wù)器驗(yàn)證客戶端所返回的給定挑戰(zhàn)對應(yīng)的回答是否正確,進(jìn)而得出所有權(quán)證明結(jié)果。為了減少客戶端的計算開銷,文獻(xiàn)[19,20]提出了一種s-PoW方案,根據(jù)特定算法獲得文件隨機(jī)位置的比特值作為挑戰(zhàn),要求待驗(yàn)證的客戶端返回對應(yīng)結(jié)果,進(jìn)而實(shí)現(xiàn)文件的所有權(quán)證明,擴(kuò)展方案s-PoW1和s-PoW2有效提高了算法的執(zhí)行效率。為了提高服務(wù)器端的計算和查詢效率,Blasco等[21]提出了一種基于布隆過濾器(BF, bloom filter)的BF-PoW方案,服務(wù)器端建立三元數(shù)組分別存儲文件、挑戰(zhàn)和應(yīng)答,要求客戶端上傳一定數(shù)量的驗(yàn)證信息證明文件的所有權(quán),實(shí)驗(yàn)表明,服務(wù)器加入布隆過濾器能夠大幅減少計算開銷。González-Manzano等[22]提出了一種基于CE算法的所有權(quán)證明方案ce-PoW,該方案無可信第三方參與,不涉及復(fù)雜密鑰管理,服務(wù)器采用四元數(shù)據(jù)結(jié)構(gòu)映射密文塊、挑戰(zhàn)、應(yīng)答和身份標(biāo)識,通過與客戶端進(jìn)行挑戰(zhàn)—應(yīng)答交互機(jī)制實(shí)現(xiàn)文件所有權(quán)證明。針對敵手或未授權(quán)用戶利用側(cè)信道訪問文件信息的問題,Li等[23]提出了一種混合云環(huán)境下的授權(quán)去重方案,文件密鑰的生成與用戶權(quán)限相關(guān),實(shí)現(xiàn)了云環(huán)境下的授權(quán)去重及重復(fù)數(shù)據(jù)檢測。González-Manzano等[24]綜合考慮授權(quán)去重問題和所有權(quán)證明方案,提出了一種ase-PoW方案,文件密鑰的生成與用戶的屬性相關(guān),使用輕量級的訪問控制策略實(shí)現(xiàn)分層環(huán)境下的授權(quán)去重和文件所有權(quán)證明,然而,該方案未考慮密鑰的更新和撤銷,客戶端和服務(wù)器端的計算開銷較大。表1總結(jié)上述典型數(shù)據(jù)去重方案的相關(guān)特性并將其與本文所提方案進(jìn)行對比。
表1 現(xiàn)有云數(shù)據(jù)去重方案的比較
綜上所述,現(xiàn)有解決云環(huán)境下數(shù)據(jù)安全去重問題的方案較少考慮到數(shù)據(jù)去重過程中的隱私泄露與未授權(quán)訪問等問題,缺乏對分層結(jié)構(gòu)下授權(quán)用戶密鑰更新和權(quán)限撤銷等方面的研究。同時,在實(shí)現(xiàn)云數(shù)據(jù)安全去重與權(quán)限更新的基礎(chǔ)上,如何有效減少計算開銷、提高I/O讀寫效率以及降低通信開銷等問題也亟待研究。
為了方便描述本文所提安全去重方案,表2列出常用的符號及對應(yīng)的描述。
表2 符號及其描述
基于角色對稱加密的云數(shù)據(jù)安全去重方案的系統(tǒng)模型如圖1所示,主要包含3個實(shí)體:用戶、角色認(rèn)證中心和云服務(wù)器。
圖1 系統(tǒng)模型
用戶:在云環(huán)境的分層結(jié)構(gòu)中,不同角色的用戶擁有對應(yīng)的角色密鑰,再結(jié)合訪問控制策略得到文件密鑰,用戶使用該文件密鑰對稱加密文件,向云服務(wù)器發(fā)送上傳或下載文件的請求。用戶通過群組密鑰協(xié)商協(xié)議更新角色密鑰,并與角色認(rèn)證中心交互,實(shí)現(xiàn)用戶權(quán)限的撤銷。
角色認(rèn)證中心:負(fù)責(zé)認(rèn)證用戶角色和撤銷用戶權(quán)限,通過用戶身份認(rèn)證用戶角色,返回角色密鑰給用戶。用戶執(zhí)行群組密鑰協(xié)商協(xié)議與角色認(rèn)證中心交互更新角色密鑰樹,撤銷用戶權(quán)限。
云服務(wù)器:負(fù)責(zé)安全存儲文件和執(zhí)行授權(quán)去重,將用戶上傳的文件信息保存在存儲服務(wù)器中,當(dāng)用戶再次請求上傳相同文件時執(zhí)行授權(quán)去重,并返回對應(yīng)的結(jié)果給用戶。
本文所提角色對稱加密算法[25]的角色密鑰和文件密鑰均需采用散列函數(shù),假設(shè)所使用的散列函數(shù)均能夠抵抗弱碰撞攻擊和強(qiáng)碰撞攻擊,角色對稱加密算法的加密部分采用標(biāo)準(zhǔn)對稱加密算法,如AES-256。
本文考慮2種層面的攻擊:敵手對角色對稱加密算法的攻擊和對云數(shù)據(jù)安全去重方案的攻擊。
結(jié)合敵手的攻擊強(qiáng)度,本文考慮以下3種類型的敵手對算法發(fā)起攻擊。
1) 敵手A0的攻擊能力可以描述如下:能夠向挑戰(zhàn)者發(fā)起詢問,獲取有向無環(huán)圖T中所有公共信息Pub={IDi,H1},攻陷算法的方式是成功猜測節(jié)點(diǎn)Gi的角色密鑰KG′i,成功的概率為Pr[KG′i=KGi]。
2) 敵手A1的攻擊能力可以描述如下:能夠向挑戰(zhàn)者發(fā)起詢問,獲取有向無環(huán)圖T中所有公共信息Pub={IDi,H1}、部分節(jié)點(diǎn)Gi的角色密鑰,攻陷算法的方式是成功恢復(fù)節(jié)點(diǎn)Gu的角色密鑰KG′u,成功的概率為Pr[KG′u=KGu]。
3) 敵手A2的攻擊能力可以描述如下:能夠向挑戰(zhàn)者發(fā)起詢問,獲取有向無環(huán)圖T中所有公共信息Pub={IDi,H1}、部分節(jié)點(diǎn)Gi的角色密鑰,并且可以選定任一節(jié)點(diǎn)Gv質(zhì)詢挑戰(zhàn)者獲得對應(yīng)的角色密鑰,攻陷算法的方式是成功區(qū)分挑戰(zhàn)者返回的角色密鑰是否為該節(jié)點(diǎn)的真正角色密鑰,成功的概率為Pr[KG′v=KGv]。
根據(jù)上述3種類型敵手攻擊能力的定義,敵手A0可獲得的信息包含于敵手A1和敵手A2掌握的挑戰(zhàn)信息中。因此,敵手的攻擊能力具有A1角色密鑰恢復(fù)和A2角色密鑰的不可區(qū)分。如果敵手A1攻陷算法的概率 ε1=Pr[KG′u=KGu],敵手A2攻陷算法的概率 ε2=Pr[KG′v=KGv]是可忽略的,即敵手不能以不可忽略的概率攻陷該算法,則所提算法是安全的。
對云數(shù)據(jù)安全去重方案的攻擊中,敵手試圖非授權(quán)訪問、下載云端存儲的文件,存在以下類型的攻擊。
1) 內(nèi)容猜測攻擊或文件偽造攻擊。敵手?jǐn)r截合法用戶向云服務(wù)器上傳的數(shù)據(jù),或云服務(wù)器向合法用戶反饋的數(shù)據(jù),并試圖猜測所攔截數(shù)據(jù)的內(nèi)容或偽造所攔截數(shù)據(jù)。
2) 共謀攻擊。在基于角色對稱加密算法的安全去重過程中,合法用戶可以與敵手共謀,泄露部分文件內(nèi)容給敵手,根據(jù)文獻(xiàn)[17]和文獻(xiàn)[24],當(dāng)泄露不超過64 MB內(nèi)容時足夠抵抗這種共謀攻擊。
本文系統(tǒng)實(shí)現(xiàn)的目標(biāo)主要考慮安全目標(biāo)和性能目標(biāo)2個方面。
安全目標(biāo)主要包含算法安全性、抵抗內(nèi)容猜測攻擊或文件偽造攻擊、抵抗共謀攻擊、細(xì)粒度訪問控制等方面。
1) 算法安全性:所提角色對稱加密算法是可證明安全的。
2) 抵抗內(nèi)容猜測攻擊或文件偽造攻擊:在安全去重過程中,一個擁有文件f部分內(nèi)容的敵手,能夠以可忽略的優(yōu)勢成功猜測或偽造目標(biāo)文件。
3) 抵抗共謀攻擊:在安全去重過程中,一個擁有文件f部分內(nèi)容的敵手,必須和f的合法用戶交換至少Smin的信息才能成功通過安全去重協(xié)議。根據(jù)Halevi等[18]的方案,Smin設(shè)置為64 MB。
4) 細(xì)粒度訪問控制:本文所提方案,除了保障文件安全之外,還需要提供對用戶和文件的細(xì)粒度訪問控制支持,且不需要云服務(wù)器和用戶承擔(dān)額外的任務(wù)。
性能目標(biāo)主要包含最小化傳輸帶寬、云服務(wù)器內(nèi)存消耗和用戶端存儲空間。
1) 通信帶寬有效性:在執(zhí)行安全去重過程中,用戶端和云服務(wù)器端交換的文件字節(jié)數(shù)應(yīng)該盡可能小,以保證低通信開銷。
2) 服務(wù)器內(nèi)存有效性:在執(zhí)行安全去重過程中,云服務(wù)器端內(nèi)存中加載的信息應(yīng)比較小,與上傳的文件大小無關(guān),以保證低內(nèi)存開銷。
3) 用戶端存儲有效性:用戶端存儲的密鑰、密文數(shù)據(jù)盡可能少;此外,存儲密鑰的數(shù)量和長度都應(yīng)該與文件大小無關(guān),以保證低存儲開銷。
本節(jié)首先提出一種新型的角色對稱加密算法,然后詳細(xì)描述基于所提算法的云數(shù)據(jù)安全去重方案。
角色認(rèn)證中心建立分層角色密鑰樹以映射用戶角色和密鑰之間的關(guān)系,角色密鑰樹的每個節(jié)點(diǎn)表示不同的角色群組,擁有唯一的身份標(biāo)識,相同角色的用戶屬于同一個角色群組,擁有相同的角色標(biāo)識[4]。不同的文件由特定角色群組的用戶管理,根據(jù)不同的訪問控制策略,每個文件可由多個角色群組的用戶共同管理,但是有且僅有一個主角色群組[25]。
為了方便描述密鑰管理和文件管理過程,圖 2給出一種角色密鑰樹的實(shí)例。定義2棵角色密鑰樹T1和T2,根節(jié)點(diǎn)分別為Root1和Root2,并擁有各自的主密鑰MK1和MK2。T1包含2個角色群組G1和G2,群組G1由子群組G3和G4組成,而群組G2只有一個子群組G5。T2包含一個群組G6,并由一個子群組G7組成。文件f1屬于群組G3,由G3中的所有用戶管理,文件f1的主群組為G3。文件f2由G5中的用戶和G4中的用戶共同管理,文件f2的主群組為G5。文件f3由G7中的用戶和G5中的用戶共同管理,文件f3的主群組為G5。
圖2 角色對稱加密算法實(shí)例
所提角色對稱加密算法主要分為3個階段:角色密鑰生成、文件密鑰生成和對稱加密。
1) 角色密鑰生成階段。上述角色密鑰樹T1可以和一個有向無環(huán)圖形成映射關(guān)系,形式化定義為T1=<G,E> ,其中,G={Root1,G1,G2,… ,Gn},表示圖T1中的節(jié)點(diǎn)集合,每個節(jié)點(diǎn)G1表示一類角色,也表示一類安全級別;E= {E1,E2,… ,Em},表示圖T1中有向邊的集合,每條有向邊Ei表示2個安全級別的角色之間具有從屬關(guān)系。
算法初始化(Setup)時,給定有向無環(huán)圖T1=<G,E>和安全參數(shù)λ、ρ,取圖T1中的每個節(jié)點(diǎn)Gi∈G分配唯一的角色標(biāo)識符idi=Gi∈ {0 ,1}λ,隨機(jī)選取相應(yīng)的密鑰材料MK1∈ {0 ,1}ρ,角色之間具有的從屬關(guān)系用散列函數(shù)H1描述。將角色標(biāo)識符和角色從屬關(guān)系作為公開參數(shù)Pub={IDi,H1},MK1作為根節(jié)點(diǎn)主密鑰。
各層角色密鑰推導(dǎo)過程(derivation)如下。由根節(jié)點(diǎn)的主密鑰及各個角色群組的標(biāo)識計算得到各級群組節(jié)點(diǎn)的角色密鑰。G1的角色密鑰KG1=H1(H1(MK1) ‖G1),G3的 角 色 密 鑰KG2=H1(H1(MK1)‖G3)。類似地,上級節(jié)點(diǎn)的散列值串聯(lián)該節(jié)點(diǎn)的群組標(biāo)識再進(jìn)行散列運(yùn)算的結(jié)果作為各個角色群組節(jié)點(diǎn)的角色密鑰。
2) 文件密鑰生成階段。文件密鑰由主群組角色密鑰的散列值串聯(lián)訪問控制策略中其他擁有管理權(quán)的群組角色密鑰的散列值計算得到。文件f1屬于群組G3,該角色群組中的所有用戶擁有文件f1的管理權(quán),文件f1的文件密鑰為角色密鑰KG3的散列值,fk1=H1(KG3)。文件f2由群組G5和群組G4中的用戶共同管理,群組G5為主群組,則文件f2的文件密鑰由主群組角色密鑰和其他擁有管理權(quán)的群組的角色密鑰計算得到,fk2=H1(KG5) ‖H2(KG4)。類似地,文件f3的文件密鑰與主群組G7和其他群組G5相關(guān),fk3=H1(KG7) ‖H2(KG5)。
3) 對稱加密階段。由文件密鑰對稱加密原文件得到密文。使用文件密鑰fk1對稱加密文件f1得到密文, Θ1=Encfk1(f1),類似地,得到文件f2和文件f3的密文, Θ2=Encfk2(f2), Θ3=Encfk3(f3)。然后將使用文件密鑰對稱加密的密文 Θ1、Θ2、Θ3上傳至云服務(wù)器。
基于角色對稱加密的云數(shù)據(jù)安全去重方案包括4個階段:文件加密階段、文件上傳階段、文件存儲階段和文件去重階段。
1) 文件加密階段
用戶向角色認(rèn)證中心發(fā)送認(rèn)證請求,角色認(rèn)證中心認(rèn)證用戶身份、搜索角色密鑰樹,根據(jù)從根節(jié)點(diǎn)到用戶所屬群組節(jié)點(diǎn)的角色節(jié)點(diǎn)路徑以及根節(jié)點(diǎn)的主密鑰MKα,執(zhí)行角色密鑰生成函數(shù),得到角色密鑰rk并發(fā)送給用戶。其中,節(jié)點(diǎn)路徑可以表示為 <Root1,G1,G2,… ,Gi>,i∈ [1,m]。
角色密鑰rk計算過程可以表示為rki=H1(…H1(H1(H1(MKα)‖G1)‖G2)… ‖Gi),i∈ [1 ,m]。
角色密鑰與節(jié)點(diǎn)路徑的節(jié)點(diǎn)標(biāo)識及主密鑰相關(guān),從主密鑰散列值開始,執(zhí)行上級節(jié)點(diǎn)的散列值串聯(lián)用戶所屬群組標(biāo)識再進(jìn)行散列運(yùn)算的遞歸操作,獲得角色密鑰。
用戶根據(jù)角色密鑰rk以及對應(yīng)的訪問控制策略執(zhí)行文件密鑰生成函數(shù),獲得文件密鑰fk。
文件密鑰fk與角色密鑰及訪問控制策略相關(guān),而散列函數(shù)的選擇取決于擁有文件管理權(quán)的角色群組是否為主群組,如果文件屬于單個角色群組,則x=1,即對該角色群組的角色密鑰進(jìn)行H1操作,如果文件屬于多個角色群組,則對主群組的角色密鑰執(zhí)行H1操作,對其他擁有管理權(quán)的角色群組的角色密鑰執(zhí)行H2操作,最后串聯(lián)上述結(jié)果,作為文件密鑰。
用戶使用文件密鑰對稱加密原文件得到密文
文件加密階段的交互過程如圖3所示。
圖3 文件加密階段
文件加密階段的具體描述如算法1所示。
算法1 客戶端和角色認(rèn)證中心——文件加密
輸入 角色群組節(jié)點(diǎn)列表,主密鑰MKα,文件f
輸出 使用文件密鑰對稱加密的密文Θ
2) 文件上傳階段
用戶執(zhí)行角色對稱加密算法得到密文Θ,對密文執(zhí)行散列操作得到文件索引值,hf=H3(Θ),然后對用戶的身份標(biāo)識進(jìn)行散列操作得到加密的身份標(biāo)識,eid=H4(id),最后,用戶整合上述結(jié)果,首次向云服務(wù)器發(fā)送{Θ,hf,eid},請求存儲文件。文件上傳階段具體描述如算法2所示。
算法2 客戶端——文件上傳
輸入 使用文件密鑰對稱加密的密文Θ,用戶身份標(biāo)識id
輸出 文件索引值hf,加密的身份標(biāo)識eid
return Θ,hf,eid
發(fā)送{Θ,hf,eid}給云服務(wù)器
3) 文件存儲階段
接收到用戶存儲文件的請求后,云服務(wù)器首先計算密文的散列值,h′f=H3(Θ),驗(yàn)證計算結(jié)果h′f是否與用戶上傳的文件索引值hf一致,用來抵抗文件偽造攻擊。如果通過驗(yàn)證,云服務(wù)器根據(jù)接收到的信息創(chuàng)建一個二元的映射結(jié)構(gòu)數(shù)組F,包括F ·ENC和·EID,分別存儲加密文件Θ和加密的用戶身份標(biāo)識eid,并使用密文的散列值hf作為檢索數(shù)據(jù)結(jié)構(gòu)的索引,如果結(jié)果不一致,則返回失敗。文件上傳階段和文件存儲階段的交互過程如圖4所示。
圖4 文件上傳階段和文件存儲階段
文件存儲階段的具體描述如算法3所示。
算法3 云服務(wù)器——文件存儲
輸入 文件索引值hf,使用文件密鑰對稱加密的密文Θ,加密的身份標(biāo)識eid
輸出 二元的映射結(jié)構(gòu)數(shù)組F
4) 文件去重階段
當(dāng)用戶向云服務(wù)器發(fā)送上傳文件的請求時,執(zhí)行文件去重過程。首先,云服務(wù)器要求用戶上傳文件索引值和加密的用戶身份標(biāo)識{hf,eid},然后,云服務(wù)器根據(jù)文件索引值hf檢索存儲服務(wù)器中是否存儲對應(yīng)的結(jié)構(gòu)數(shù)組,如果不存在,則要求用戶上傳使用角色密鑰加密的密文Θ,存儲到云存儲服務(wù)器中的二元映射結(jié)構(gòu)數(shù)組中;如果存在,則表明云服務(wù)器中已存儲該文件,不需要用戶再次上傳文件,實(shí)現(xiàn)云數(shù)據(jù)安全去重,并返回給用戶存儲文件的地址,然后,驗(yàn)證用戶上傳的加密身份標(biāo)識是否屬于若屬于該數(shù)組,則表明該用戶使用同一身份上傳過相同文件,若不屬于該數(shù)組,則表明用戶使用該身份首次上傳文件,但云服務(wù)器中已存儲同一角色群組中的其他用戶上傳的文件,將用戶的加密身份標(biāo)識添加到數(shù)組中。文件去重階段的交互過程如圖5所示。
圖5 文件去重階段
文件去重階段的具體描述如算法4所示。
算法4 云服務(wù)器——文件去重
輸入 文件索引值hf,加密的身份標(biāo)識eid輸出 結(jié)果
ifhf存儲then
執(zhí)行數(shù)據(jù)去重操作
renturn發(fā)送文件地址
當(dāng)用戶向云服務(wù)器發(fā)送下載文件的請求時,發(fā)送文件索引值和加密的用戶身份標(biāo)識{hf,eid},云服務(wù)器驗(yàn)證用戶的身份,根據(jù)文件索引值進(jìn)行檢索,返回密文給用戶。最后,用戶使用文件密鑰解密文件得到原文件。
為了解決密鑰更新問題,通過群組密鑰協(xié)商協(xié)議得到更新因子?,并與角色認(rèn)證中心交互,提出一種密鑰更新機(jī)制,高效實(shí)現(xiàn)云環(huán)境下分層結(jié)構(gòu)的角色密鑰更新和用戶權(quán)限撤銷。
用戶權(quán)限撤銷通過對用戶的角色密鑰進(jìn)行更新實(shí)現(xiàn),而更新角色密鑰主要是對角色樹進(jìn)行操作的,用戶權(quán)限撤銷可分為以下3種情況。
1) 撤銷中間節(jié)點(diǎn)或葉子節(jié)點(diǎn)的部分用戶的權(quán)限
用戶通過密鑰協(xié)商協(xié)議協(xié)商出更新因子?,設(shè)參與密鑰協(xié)商的用戶個數(shù)為n,分別用U0,U1,…,Un?1表示。固定輪數(shù)群組密鑰協(xié)商協(xié)議基于可認(rèn)證的群組密鑰協(xié)商協(xié)議[26]和橢圓曲線密碼系統(tǒng),通過2輪協(xié)商得出群組密鑰即更新因子?。協(xié)商的過程可以描述如下。
①第一輪協(xié)商。參與協(xié)商的n個用戶分別隨機(jī)產(chǎn)生,由預(yù)先在橢圓曲線上選取的公共點(diǎn)P計算出Zi=riP,每個用戶Ui,i∈ [0 ,n? 1]發(fā)送Zi給用戶U(i?1)modn和U(i+1)modn。
②第二輪協(xié)商。用戶Ui,i∈ [0 ,n? 1]根據(jù)接收到 的Z(i?1)modn=r(i?1)modnP和Z(i+1)modn=r(i+1)modnP計算?i= (Z(i+1)modn?Z(i?1)modn)ri,并廣播?i至所有參與協(xié)商的用戶。用戶Ui計算出協(xié)商密鑰,即更新因子?,Ωi=nriZ(i+1)modn+(n? 1)?i+(n?2 )?(i+1)modn+ …+?(i? 2) m odn=Ω(i? 1)modn=Ω。
用戶將更新因子?發(fā)送給角色認(rèn)證中心,角色認(rèn)證中心將該群組節(jié)點(diǎn)標(biāo)識與更新因子進(jìn)行異或操作,作為更新后的群組節(jié)點(diǎn)標(biāo)識,被撤銷權(quán)限的用戶不參與協(xié)商過程,無法獲得更新因子,也無法得到更新后的節(jié)點(diǎn)標(biāo)識,從而不能執(zhí)行角色對稱加密算法獲得密文,實(shí)現(xiàn)用戶權(quán)限的撤銷。撤銷中間節(jié)點(diǎn)或葉子節(jié)點(diǎn)的部分用戶權(quán)限過程如圖6所示。
2) 撤銷中間節(jié)點(diǎn)全部用戶的權(quán)限
角色認(rèn)證中心指定更新因子Φ,與該群組節(jié)點(diǎn)標(biāo)識進(jìn)行異或操作,作為更新后的群組節(jié)點(diǎn)標(biāo)識,該角色節(jié)點(diǎn)的全部用戶均無法獲得更新因子,也無法得到更新后的節(jié)點(diǎn)標(biāo)識,從而不能執(zhí)行角色對稱加密算法獲得密文,實(shí)現(xiàn)中間角色節(jié)點(diǎn)全部用戶權(quán)限的撤銷。撤銷中間節(jié)點(diǎn)全部用戶權(quán)限的過程如圖7所示。
圖6 撤銷中間節(jié)點(diǎn)或葉子節(jié)點(diǎn)的部分用戶權(quán)限過程
圖7 撤銷中間節(jié)點(diǎn)全部用戶權(quán)限的過程
3) 撤銷葉子節(jié)點(diǎn)全部用戶的權(quán)限
角色認(rèn)證中心直接刪除該葉子節(jié)點(diǎn),即刪除了該角色群組節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識,從而實(shí)現(xiàn)葉子角色節(jié)點(diǎn)全部用戶權(quán)限的撤銷。撤銷葉子節(jié)點(diǎn)全部用戶權(quán)限的過程如圖8所示。
圖8 撤銷葉子節(jié)點(diǎn)全部用戶權(quán)限的過程
角色認(rèn)證中心由更新后的角色樹獲得新的節(jié)點(diǎn)路徑,執(zhí)行角色密鑰生成函數(shù),得到角色密鑰rk′并發(fā)送給對應(yīng)角色的所有用戶。為了實(shí)現(xiàn)對已存儲密文的更新,角色認(rèn)證中心在更新的角色群組中選擇參與密鑰協(xié)商的用戶,隨機(jī)發(fā)送該角色群組所管理的文件,參與密鑰協(xié)商的用戶個數(shù)為n, 角色群組Gx中管理的索引列表{token1,token2,…,tokenq},token為云服務(wù)器存儲密文的索引,文件個數(shù)為q,隨機(jī)發(fā)送過程可以描述為以下2種情況。
1) 當(dāng)n>q時,即參與協(xié)商的用戶個數(shù)大于該角色群組中管理的文件個數(shù)。
①角色認(rèn)證中心從n個用戶中隨機(jī)選擇q個用戶依次發(fā)送文件索引{token1,token2, …,tokenq};②用戶執(zhí)行文件密鑰生成函數(shù)得到更新后的文件密鑰fk′,并向云服務(wù)器發(fā)送更新文件請求,云服務(wù)器根據(jù)對應(yīng)的文件索引返回密文,用戶使用文件密鑰得到更新后的密文上傳給云服務(wù)器。
2) 當(dāng)n≤q時,即參與協(xié)商的用戶個數(shù)小于或等于該角色群組中管理的文件個數(shù)。
①角色認(rèn)證中心計算,將文件索引{token1,toke2,…,tokenn}和{tokenn+1,token+2,…,tokenn+n}隨機(jī)發(fā)送給n個用戶,重復(fù)a輪,最后隨機(jī)從n個用戶中選取b個,將{tokenq?b,tokenq?b+1,…,tokenq?1,tokenq}依次發(fā)送給b個隨機(jī)用戶;②用戶執(zhí)行情況1)的步驟②,完成更新密文操作。
本文的安全性分析主要包含算法安全性證明和系統(tǒng)安全性分析。
本文借鑒文獻(xiàn)[27,28]的構(gòu)造思想,利用標(biāo)準(zhǔn)模型,對所提角色對稱加密算法進(jìn)行形式化安全證明。通過將所提算法規(guī)約到隨機(jī)函數(shù)的安全性和加密方案的選擇明文攻擊的安全性上來證明所提算法是安全的,即如果存在敵手A攻陷所提算法的概率等價于存在敵手 A′攻陷所提算法采用的一個多項(xiàng)式時間的計算復(fù)雜難題上,則可以證明所提算法是安全的[29]。
命題1 令RSE表示本文所提角色對稱加密算法,設(shè)H1是一個安全、抗碰撞的散列函數(shù),H1∶{0 ,1}?→ {0 ,1}ε。設(shè)FR是一個偽隨機(jī)函數(shù)集合,。對于任意的有向無環(huán)圖T=<G,E>,如果存在一個敵手A1以ε的概率攻陷 RSE,則存在敵手 A1′以ε′的概率攻陷隨機(jī)函數(shù)FR。
證明 定義Game0,Game1, …,Gamew為敵手發(fā)起的一系列游戲,敵手發(fā)起的真正游戲?yàn)镚ame0,每個游戲Gamei對應(yīng)有向無環(huán)圖T=<G,E>中節(jié)點(diǎn)展開角色密鑰恢復(fù)的操作,通過Game之間獲得的密鑰不可區(qū)分性來證明敵手進(jìn)行Game0攻陷算法RSE的概率是可忽略的。
1)Game0
初始化階段。挑戰(zhàn)者C調(diào)用RSE的初始化函數(shù),即輸入有向無環(huán)圖T1,主密鑰MK1,安全參數(shù){0 .1}ρ。將輸出結(jié)果中的公開信息Pub={IDi,H1}交給 A1′。
詢問階段。 A1′向C發(fā)起詢問,詢問任意節(jié)點(diǎn)Gi對應(yīng)的角色密鑰材料,即KGi的結(jié)果。
挑戰(zhàn)階段。挑戰(zhàn)者C由角色密鑰生成算法計算得到對應(yīng)的角色密鑰材料KGi,具體可以描述為KGi=H1(…H1(H1(H1(MK1)‖G1)‖G2)… ‖Gi),Gi∈ {0 ,1}λ=IDi,MK1∈ {0 ,1}ρ,并將上述角色密鑰材料KGi的結(jié)果返回給 A1′。
猜測階段。敵手 A1′指定一個節(jié)點(diǎn)G0,且G0與質(zhì)詢階段的Go不構(gòu)成從屬關(guān)系, A1′通過猜測得到最接近G0的真實(shí)角色密鑰KG0的密鑰KG′0, A1′贏得Game0的優(yōu)勢定義為
2)Game1
Game1的初始化階段、詢問階段和挑戰(zhàn)階段均與上述Game0過程相同,區(qū)別在于猜測階段獲得角色密鑰KG1的算法由偽隨機(jī)函數(shù)集合來替代,即KG1≈FR(MK1,ID1)。利用Game0和Game1之間的可區(qū)分性,能構(gòu)造一個多項(xiàng)式時間算法,以不可忽略的概率優(yōu)勢攻陷安全隨機(jī)函數(shù),有
成立。
同理,下面描述Gamei(i=0,1,2,…,w)。
3)Gamei
Gamei的初始化階段、詢問階段和挑戰(zhàn)階段均與上述Gamei?1過程相同,區(qū)別在于猜測階段獲得角色密鑰KG1的算法由另一偽隨機(jī)函數(shù)集合來替代,即KG1≈FR′ (MK1,ID1)。利用Gamei和Gamei?1之間的可區(qū)分性,能構(gòu)造一個多項(xiàng)式時間算法,以不可忽略的概率優(yōu)勢攻陷安全隨機(jī)函數(shù),有
成立。
敵手 A1′在整個游戲Gamei?w過程中,無法通過詢問獲得真實(shí)角色密鑰KG1,因此,敵手 A1′能夠猜測出正確角色密鑰KG1贏得游戲的優(yōu)勢定義為
合并式(1)~式(3),即,證畢。
命題2 令RSE表示本文所提角色對稱加密算法,設(shè)H1是一個安全、抗碰撞的散列函數(shù),設(shè)是一個偽隨機(jī)函數(shù)集合,。對于任意的有向無環(huán)圖T=<G,E>,如果存在一個敵手A2以ε的概率攻陷 RSE,則存在敵手A2′,A2′以ε′的概率攻陷隨機(jī)函數(shù)FR。
證明 定義Game0,Game1, …,Gamew為敵手發(fā)起的一系列游戲,敵手發(fā)起的真正游戲?yàn)镚ame0,每個游戲Gamei對應(yīng)有向無環(huán)圖T=<G,E>中節(jié)點(diǎn)展開角色密鑰獲取的操作,敵手的優(yōu)勢為可以區(qū)分挑戰(zhàn)者返回的結(jié)果是真正的角色密鑰還是與密鑰等長的隨機(jī)值,通過Game之間獲得的密鑰不可區(qū)分性來證明敵手進(jìn)行Game0攻陷算法 RSE的概率是可忽略的。
1)Game0
初始化階段。挑戰(zhàn)者C調(diào)用RSE的初始化函數(shù),即輸入有向無環(huán)圖T1,主密鑰MK1,安全參數(shù)其中。將輸出結(jié)果中的公開信息給 A2′。
詢問階段。A2′向C發(fā)起詢問,詢問任意節(jié)點(diǎn)Gi對應(yīng)的角色密鑰材料,即KG1的結(jié)果。
挑戰(zhàn)階段。①挑戰(zhàn)者C由角色密鑰生成算法計算得到對應(yīng)的角色密鑰材料KG1,即,并將上述角色密鑰
材料KGi的結(jié)果返回給A2′。②A2′選定任一節(jié)點(diǎn)G0,且G0與詢問階段的Gi不構(gòu)成從屬關(guān)系,向挑戰(zhàn)者C發(fā)起詢問。挑戰(zhàn)者C隨機(jī)選擇Cr′ ∈ {0 ,1}, 若Cr′= 1, 則 返 回 真 實(shí) 角 色 密 鑰
則返回與密鑰等長的隨機(jī)值KG′0。
猜測階段。敵手A2′被賦予挑戰(zhàn)者C隨機(jī)選擇Cr′ ∈ {0 ,1}返回的對應(yīng)值作為猜測結(jié)果,則A2′贏得Game0的優(yōu)勢定義為
2)Game1
Game1的過程與上述Game0過程相同,區(qū)別在于推導(dǎo)獲得角色密鑰KG1的算法由偽隨機(jī)函數(shù)集合來替代,即KG1≈FR(MKα,ID1)。利用Game0和Game1之間的可區(qū)分性,能構(gòu)造一個多項(xiàng)式時間算法,以不可忽略的概率優(yōu)勢攻陷安全隨機(jī)函數(shù),有
成立。
同理,下面描述Gamei(i=1,2,…,w)。
3)Game1
Gamei的過程與Gamei?1過程相同,區(qū)別在于推導(dǎo)獲得角色密鑰KG1的算法由另一偽隨機(jī)函數(shù)集合來替代,即KG1≈FR′ (MKα,ID1)。利用Gamei和Gamei?1之間的可區(qū)分性,能構(gòu)造一個多項(xiàng)式時間算法,以不可忽略的概率優(yōu)勢攻陷安全隨機(jī)函數(shù),有
成立。
敵手A2′在整個游戲Gamew過程中,無法通過區(qū)分獲得的角色密鑰是真實(shí)角色密鑰還是與密鑰等長的隨機(jī)值,因此,敵手A2′無法通過推導(dǎo)得到真實(shí)的角色密鑰KG1,則能夠成功猜測挑戰(zhàn)者返回結(jié)果為真實(shí)角色密鑰,贏得游戲的優(yōu)勢定義為
合并式(4)~式(6),即證畢。
本文所提云數(shù)據(jù)安全去重方案需要抵抗內(nèi)容猜測攻擊、文件偽造攻擊和共謀攻擊,與傳統(tǒng)的基于內(nèi)容加密的數(shù)據(jù)去重方案相比,本文所提方案基于角色對稱加密算法建立密鑰和用戶角色之間的映射關(guān)系,確保密鑰和文件內(nèi)容無關(guān),使得敵手無法通過內(nèi)容猜測攻擊獲取隱私信息,即使敵手得到密文信息,也無法解密出原文件[30]。在假設(shè)合法用戶與敵手交換至少Smin的信息成功通過安全去重協(xié)議的安全目標(biāo)下,根據(jù)Halevi等[18]設(shè)置Smin為64 MB來實(shí)現(xiàn)抵抗共謀攻擊。在文件存儲階段,服務(wù)器通過驗(yàn)證用戶上傳的密文Θ和文件索引值hf是否一致來抵抗文件偽造攻擊,使擁有部分文件信息的敵手以可忽略的優(yōu)勢成功訪問目標(biāo)文件。在實(shí)現(xiàn)細(xì)粒度訪問控制的安全目標(biāo)方面,基于角色的對稱加密算法通過訪問控制策略和用戶角色權(quán)限關(guān)聯(lián)文件密鑰來實(shí)現(xiàn)不同權(quán)限的用戶訪問特定的文件,計算角色密鑰的過程中使用遞歸散列的操作以及計算文件密鑰的過程中使用串聯(lián)操作保證了不同的訪問控制策略的應(yīng)用,如果用戶權(quán)限被撤銷,則不能訪問該文件,實(shí)現(xiàn)了細(xì)粒度訪問控制的目標(biāo)。
本文所提方案的通信帶寬與設(shè)置的安全參數(shù)相關(guān),滿足用戶和服務(wù)器交換較小的文件字節(jié)數(shù)實(shí)現(xiàn)授權(quán)去重的系統(tǒng)目標(biāo),服務(wù)器的內(nèi)存開銷也與安全參數(shù)相關(guān),但與上傳的文件大小無關(guān),保證了服務(wù)器的低內(nèi)存開銷??蛻舳舜鎯Φ慕巧荑€由角色認(rèn)證中心計算,用戶根據(jù)訪問控制策略和角色密鑰得到文件密鑰來加密原文件,因此,客戶端存儲的密鑰長度與文件大小無關(guān),實(shí)現(xiàn)用戶端存儲有效性的系統(tǒng)目標(biāo)。
表3將本文所提云數(shù)據(jù)安全去重方案與相關(guān)方案在算法安全性、系統(tǒng)安全性、細(xì)粒度訪問控制和性能目標(biāo)等方面進(jìn)行歸納與總結(jié)。
本文主要從客戶端、服務(wù)器端和第三方服務(wù)器的計算開銷分析算法的復(fù)雜度??蛻舳说挠嬎汩_銷主要是使用散列和串聯(lián)操作得出文件密鑰、使用文件密鑰對稱加密文件得到密文、進(jìn)而得到文件索引值,復(fù)雜度與密鑰長度、訪問控制策略以及文件大小相關(guān)。服務(wù)器端的計算開銷主要是計算和匹配文件索引值、生成和檢索二元映射結(jié)構(gòu),復(fù)雜度與具體的匹配算法、檢索算法相關(guān)。第三方服務(wù)器的計算開銷主要是角色認(rèn)證中心初始化角色密鑰樹、搜索角色密鑰樹及獲取角色密鑰,復(fù)雜度與角色密鑰樹的層次,密鑰長度及具體的搜索算法相關(guān)。表 4將本文方案與實(shí)現(xiàn)數(shù)據(jù)安全去重和所有權(quán)證明的方案在計算復(fù)雜度和帶寬方面進(jìn)行對比分析。
從表 4可以看出,在客戶端計算開銷方面,ce-PoW和ase-PoW均對文件塊進(jìn)行加密操作,雖然比其他方案直接對文件操作更加高效,但是密鑰的計算也需要較大的開銷;在服務(wù)器端計算開銷方面,ce-PoW和ase-PoW均對文件塊進(jìn)行處理,與其他方案相比計算開銷較??;在第三方服務(wù)器計算復(fù)雜度方面,AuthorizedDedup方案、ase-PoW和本文提出的方案均引入第三方服務(wù)器,AuthorizedDedup方案的第三方服務(wù)器計算密鑰與文件相關(guān),而ase-PoW和本文方案與文件無關(guān),因此,效率更高。
本文采用Linux系統(tǒng)下Java語言進(jìn)行系統(tǒng)仿真實(shí)驗(yàn),選取公開的OpenSSL函數(shù)庫中AES-256與SHA-256算法實(shí)現(xiàn)對稱加密和散列運(yùn)算。實(shí)驗(yàn)環(huán)境配置如下,CPU:Intel Core i5-4590 3.30 GHz;RAM:8 GB;磁盤:WDC WD10EZEX-08M2NA0(1TB/7200 r/min);操作系統(tǒng):Ubuntu 12.04.4 LTS。
實(shí)驗(yàn)測試文件加密階段和文件上傳階段的運(yùn)行時間,實(shí)驗(yàn)運(yùn)行1 000次,取平均值作為實(shí)驗(yàn)結(jié)果,選擇9個從2 MB到512 MB不同大小的文件:2 MB、4 MB、8 MB、16 MB、32 MB、64 MB、128 MB、256 MB和512MB。
文件加密階段的運(yùn)行時間主要分為生成角色密鑰、生成文件密鑰及對稱加密。實(shí)驗(yàn)測試了生成不同層級的群組角色密鑰運(yùn)行時間,在不同訪問控制策略下生成文件密鑰運(yùn)行時間和使用文件密鑰對稱加密文件的運(yùn)行時間,如圖9~圖11所示。
表3 相關(guān)方案安全性和性能目標(biāo)的比較
表4 相關(guān)方案計算復(fù)雜度和帶寬消耗的比較
圖9 生成不同層級群組角色密鑰的運(yùn)行時間
圖10 不同群組個數(shù)下生成文件密鑰的運(yùn)行時間
圖11 對稱加密文件的運(yùn)行時間
從圖9可以看出角色密鑰的計算復(fù)雜度與角色群組節(jié)點(diǎn)的層次和密鑰長度相關(guān),隨著層次個數(shù)的增加,運(yùn)行時間也不斷增大,當(dāng)設(shè)置主密鑰長度為512 bit,角色群組在角色密鑰樹的第10層時,計算角色密鑰的時間開銷僅需3 ms,具有很高的計算效率。文件密鑰的計算復(fù)雜度主要與訪問控制策略相關(guān),即文件所屬的角色群組個數(shù)相關(guān),由圖 10不同群組個數(shù)下生成文件密鑰的運(yùn)行時間可以看出,隨著群組個數(shù)不斷增加,得到文件密鑰的運(yùn)行時間也不斷增大,當(dāng)角色群組個數(shù)為 10個時,計算文件密鑰的時間開銷約為2.7 ms,具有較高的效率。文件加密階段主要的時間開銷在使用文件密鑰對稱加密文件上,如圖 11所示,隨著文件大小的增加,對稱加密的時間開銷增大,曲線的增長趨勢符合方案計算復(fù)雜度的分析。
文件上傳階段的運(yùn)行時間主要是計算文件索引值,上傳文件信息和運(yùn)行時間的關(guān)系如圖12所示。文件大小不斷增加,上傳文件所需時間開銷有明顯增長,曲線的增長趨勢符合方案計算復(fù)雜度的分析。
圖12 文件上傳階段運(yùn)行時間
隨著云計算和大數(shù)據(jù)技術(shù)的普及和發(fā)展,數(shù)據(jù)量的爆炸式增長和龐大的管理開銷給有限的存儲空間帶來巨大壓力,如何有效地存儲管理這些文件,在保護(hù)個人隱私的同時實(shí)現(xiàn)安全訪問和授權(quán)去重成為當(dāng)前的研究熱點(diǎn)。本文綜合考慮隱私泄露、未授權(quán)訪問、安全數(shù)據(jù)去重和密鑰更新等問題,提出了一種全新的角色對稱加密算法和基于該算法的云數(shù)據(jù)安全去重方案,通過構(gòu)建角色密鑰樹,建立角色和密鑰之間的映射關(guān)系,并利用角色對稱加密關(guān)聯(lián)用戶角色與密鑰,以滿足不同角色根據(jù)訪問控制策略訪問對應(yīng)權(quán)限文件的需求,有效保護(hù)個人隱私信息,實(shí)現(xiàn)云環(huán)境中分層結(jié)構(gòu)下的云數(shù)據(jù)授權(quán)去重,并通過群組密鑰協(xié)商解決角色與密鑰映射關(guān)系中由密鑰更新、權(quán)限撤銷等帶來的安全問題。安全性證明和性能分析表明所提方案是安全且高效的。
[1] XIA W, JIANG H, FENG D, et al. A comprehensive study of the past,present, and future of data deduplication[J]. Proceedings of the IEEE,2016, 104(9)∶1681-1710.
[2] 熊金波, 張媛媛, 李鳳華,等.云環(huán)境中數(shù)據(jù)安全去重研究進(jìn)展.通信學(xué)報,2016,37(11)∶169-180.XIONG J B, ZHANG Y Y, LI F H, et al. Research progress on secure data deduplication in cloud[J]. Journal on Communications, 2016,37(11)∶ 169-180.
[3] LIU J, ASOKAN N, PINKAS B. Secure deduplication of encrypted data without additional independent servers[C]//ACM SIGSAC Conference on Computer and Communications Security. 2015∶874-885.
[4] XIONG J, ZHANG Y, LI X, et al. RSE-PoW∶ a role symmetric encryption PoW scheme with authorized deduplication for multimedia data[J]. Mobile Networks and Applications, 2017∶1-14.
[5] DOUCEUR J, ADYA A, BOLOSKY W, et al. Reclaiming space from duplicate files in a serverless distributed file system[C]//International Conference on Distributed Computing Systems. 2002∶ 617-624.
[6] PUZIO P, MOLVA R, ONEN M, et al. ClouDedup∶ secure deduplication with encrypted data for cloud storage[C]//5th International Conference on Cloud Computing Technology and Science(CloudCom). 2013∶ 363-370.
[7] LI M, QIN C, LI J, et al. CDStore∶ toward reliable, secure, and cost-efficient cloud storage via convergent dispersal[J]. IEEE Internet Computing, 2016, 20(3)∶ 45-53.
[8] STANEK J, SORNIOTTI A, ANDROULAKI E, et al. A secure data deduplication scheme for cloud storage[C]// International Conference on Financial Cryptography and Data Security, Springer Berlin Heidelberg, 2014, 8437∶ 99-118.
[9] BELLARE M, KEELVEEDHI S, RISTENPART T. Message-locked encryption and secure deduplication[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques.Springer Berlin Heidelberg, 2013, 7881∶ 296-312.
[10] CHEN R, MU Y, YANG G, et al. Bl-MLE∶ block-level messagelocked encryption for secure large file deduplication[J]. IEEE Transactions on Information Forensics and Security,2015,10(12)∶2643-2652.
[11] JIANG T, CHEN X, WU Q, et al. Secure and efficient cloud data deduplication with randomized tag[J]. IEEE Transactions on Information Forensics and Security, 2017, 12(3)∶ 532-543.
[12] LI J, QIN C, LEE P P C, et al. Rekeying for encrypted deduplication storage[C]//46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). 2016∶ 618-629.
[13] QIN C, LI J, LEE P P C. The design and implementation of a rekeying-aware encrypted deduplication storage system[J]. ACM Transactions on Storage (TOS), 2017, 13(1)∶ 9.
[14] PUZIO P, MOLVA R, ?NEN M, et al. PerfectDedup∶ secure data deduplication[C]//International Workshop on Data Privacy Management. Springer International Publishing, 2015∶ 150-166.
[15] BELLARE M, KEELVEEDHI S. Interactive message-locked encryption and secure deduplication[C]// IACR International Workshop on Public Key Cryptography. Springer Berlin Heidelberg, 2013, 7881∶296-312.
[16] LI J, CHEN X F, LI M Q, et al. Secure deduplication with efficient and reliable convergent key management[J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(6)∶ 1615-1625.
[17] MIAO M, WANG J, LI H, et al. Secure multi-server-aided data deduplication in cloud computing[J]. Pervasive and Mobile Computing, 2015, 24∶ 129-137.
[18] HALEVI S, HARNIK D, PINKAS B, et al. Proofs of ownership in remote storage systems[C]// 18th ACM conference on Computer and Communications Security, ACM, 2011∶ 491-500.
[19] DI PIETRO R, SORNIOTTI A. Boosting efficiency and security in proof of ownership for deduplication[C]// 7th ACM Symposium on Information, Computer and Communications Security. ACM, 2012∶ 81-82.
[20] DI PIETRO R, SORNIOTTI A. Proof of ownership for deduplication systems∶ a secure, scalable, and efficient solution[J]. Computer Communications, 2016, 82∶ 71-82.
[21] BLASCO J, ROBERTO D P, ALEJANDRO O, et al. A tunable proof of ownership scheme for deduplication using bloom filters[C]// IEEE Conference on Communications and Network Security (CNS). 2014∶481-489.
[22] GONZáLEZ-MANZANO L, AGUSTIN O. An efficient confidentiality-preserving proof of ownership for deduplication[J]. Journal of Network and Computer Applications, 2015,50∶ 49-59.
[23] LI J, LI Y K, CHEN X, et al. A hybrid cloud approach for secure authorized deduplication[J]. IEEE Transactions on Parallel and Distributed Systems, 2015, 26(5)∶ 1206-1216.
[24] GONZáLEZ-MANZANO L, FUENTES J M D, CHOO K K R.ase-POW∶ a proof of ownership mechanism for cloud deduplication in hierarchical environments[C]// 12th EAI International Conference on Security and Privacy in Communication Networks.2016∶ 412-428.
[25] ZHANG Y, XIONG J, REN J, et al. A novel role symmetric encryption algorithm for authorized deduplication in cloud[C]//10th EAI International Conference on Mobile Multimedia Communications (EAI MOBIMEDIA). 2017∶ 104-110.
[26] 王宏遠(yuǎn), 祝烈煌, 李龍一佳. 云存儲中支持?jǐn)?shù)據(jù)去重的群組數(shù)據(jù)持有性證明[J]. 軟件學(xué)報, 2016, 27(6)∶1417-1431.WANG H Y, ZHU L H, LI L Y J. Group provable data possession with deduplication in cloud storage[J]. Journal of Software, 2016, 27(6)∶1417-1431.
[27] SANTIS A D, FERRARA A L, MASUCCI B. Efficient provably-secure hierarchical key assignment schemes[J]. Theoretical Computer Science, 2011, 412(41)∶ 5684-5699.
[28] ATALLAH M, BLANTON M, FAZIO N, et al. Dynamic and efficient key management for access hierarchies[J]. ACM Transactions on Information and System Security (TISSEC), 2009, 12(3)∶1-43.
[29] 馬駿, 郭淵博, 馬建峰,等.物聯(lián)網(wǎng)感知層一種分層訪問控制方案[J].計算機(jī)研究與發(fā)展, 2013, 50(6)∶ 1267-1275.MA J, GUO Y B, MA J F, et al. A hierarchical access control scheme for perceptual layer of IoT[J]. Journal of Computer Research and Development, 2013, 50(6)∶1267-1275.
[30] 宋建業(yè),何暖,朱一明,等.基于阿里云平臺的密文數(shù)據(jù)安全去重系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2017(3)∶39-45.SONG J Y, HE N, ZHU Y M, et al. Design and implementation of secure deduplication system for ciphertext data based on Aliyun[J].Netinfo Security, 2017(3)∶39-45.