杜瑞忠,石朋亮,何欣楓
(1. 河北大學(xué)網(wǎng)絡(luò)空間安全與計(jì)算機(jī)學(xué)院,河北 保定 071002;2. 河北省高可信信息系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,河北 保定 071002)
作為新的服務(wù)模式,云計(jì)算[1]能夠?qū)?shù)據(jù)存儲(chǔ)和數(shù)據(jù)共享進(jìn)行高效的結(jié)合,以便為用戶提供更優(yōu)質(zhì)的服務(wù)。隨著云計(jì)算技術(shù)的發(fā)展,越來(lái)越多的個(gè)人或者企業(yè)把數(shù)據(jù)上傳到云端,一方面能節(jié)省本地硬件存儲(chǔ)開銷,另一方面可以隨時(shí)隨地享受云計(jì)算提供的服務(wù)。但 2018年泰累茲數(shù)據(jù)威脅報(bào)告[2]指出,2017年36%的受訪者表示遭遇過(guò)數(shù)據(jù)泄露,并預(yù)測(cè)這一比例還將上升,數(shù)據(jù)泄露已成為影響云計(jì)算發(fā)展和應(yīng)用的重要問(wèn)題之一。其中數(shù)據(jù)的不安全性刪除[3]是導(dǎo)致數(shù)據(jù)泄露的一個(gè)重要原因。
目前,用戶大多是將數(shù)據(jù)加密后存儲(chǔ)到云端,在數(shù)據(jù)刪除命令發(fā)出后,通過(guò)刪除加密密鑰來(lái)保證數(shù)據(jù)的不可解密和恢復(fù),以達(dá)到數(shù)據(jù)刪除的目的。這樣的刪除機(jī)制存在很大的弊端,因?yàn)槠渲粚?duì)數(shù)據(jù)進(jìn)行邏輯刪除,待刪除的數(shù)據(jù)仍然存儲(chǔ)在云端,一旦有非法分子獲得云端的數(shù)據(jù),就可能對(duì)所得數(shù)據(jù)進(jìn)行暴力破解,從而導(dǎo)致敏感信息泄露。如果存在部分云服務(wù)提供商為了自身的利益,只對(duì)數(shù)據(jù)進(jìn)行邏輯刪除,那么用戶在多租戶模式下就面臨著數(shù)據(jù)泄露危機(jī)。另外,云存儲(chǔ)的模式和以往的存儲(chǔ)模式有很大的區(qū)別。在云存儲(chǔ)模式下,一方面數(shù)據(jù)擁有者將數(shù)據(jù)上傳到云端存儲(chǔ),致使數(shù)據(jù)控制權(quán)被移交至云端。另一方面,現(xiàn)存的數(shù)據(jù)邏輯刪除方式,一旦加密密鑰被恢復(fù),數(shù)據(jù)泄露幾率增大。針對(duì)以上情況,在數(shù)據(jù)生命周期結(jié)束需要?jiǎng)h除時(shí),如何保證數(shù)據(jù)的確定性刪除,使數(shù)據(jù)在云端永久性刪除或者密鑰刪除后無(wú)法再次解密及恢復(fù)是現(xiàn)階段云存儲(chǔ)研究的一個(gè)重點(diǎn)和難點(diǎn)問(wèn)題。
目前,研究者對(duì)云端數(shù)據(jù)確定性刪除已經(jīng)做了很多有益的嘗試。熊金波等[4]從密碼學(xué)的角度對(duì)已有的確定性刪除方法進(jìn)行綜合性分析對(duì)比,給出了目前存在的三大類確定性刪除機(jī)制的優(yōu)缺點(diǎn)。文獻(xiàn)[5]利用(S,T)門限密鑰共享方法將加密密鑰分成n份,發(fā)送到網(wǎng)絡(luò)節(jié)點(diǎn)上的分布式散列表(DHT,distributed hash table)進(jìn)行存儲(chǔ),但是DHT社交網(wǎng)絡(luò)容易遭受非法分子的跳躍攻擊。為解決此問(wèn)題,文獻(xiàn)[6]將加密密鑰的長(zhǎng)度進(jìn)行擴(kuò)展后再使用密鑰共享方案發(fā)送到DHT網(wǎng)絡(luò)上,雖然能抵御跳躍攻擊但是加重了密鑰存儲(chǔ)開銷。為減少密鑰存儲(chǔ)開銷,李超零等[7]采用兩級(jí)加密方式,其中控制密鑰由密鑰生成樹生成,基于樹結(jié)構(gòu)減少密鑰的存儲(chǔ),之后通過(guò)秘密共享方法發(fā)到DHT網(wǎng)絡(luò)中。文獻(xiàn)[8]提出一種基于混沌序列比特流變化的云多媒體文件確定性刪除方案,數(shù)據(jù)加密上傳前進(jìn)行數(shù)據(jù)比特流變換,數(shù)據(jù)刪除時(shí)僅僅刪除對(duì)應(yīng)數(shù)據(jù)的比特流,達(dá)到安全刪除的目的,減少了對(duì)加密密鑰和可信第三方的依賴,但是只適用于視頻和圖片類的多媒體文件。薛亮等[9]提出一種基于屬性加密和屬性撤銷的數(shù)據(jù)刪除方案,通過(guò)撤銷屬性實(shí)現(xiàn)數(shù)據(jù)的訪問(wèn)控制,從而達(dá)到數(shù)據(jù)刪除的目的。但是以上方案僅僅是對(duì)數(shù)據(jù)加密密鑰進(jìn)行安全性處理,原數(shù)據(jù)依然在云端,存在非法用戶獲得數(shù)據(jù)后暴力破解的可能,為此張坤等[10]將加密密文進(jìn)行分片抽樣,把抽樣后的剩余密文上傳到云端,抽樣密文交由可信第三方保管,使存在云端的數(shù)據(jù)不完整,來(lái)抵制暴力攻擊。但是如果使用密文抽樣技術(shù)使云端存儲(chǔ)的密文不完整,會(huì)給云端的數(shù)據(jù)更新和密文檢索帶來(lái)不便。而針對(duì)多樣性用戶,如何實(shí)現(xiàn)文件數(shù)據(jù)的細(xì)粒度控制操作也成為數(shù)據(jù)確定性刪除要考慮的一個(gè)關(guān)鍵問(wèn)題。文獻(xiàn)[11]提出一種基于策略的刪除機(jī)制,使得密文對(duì)應(yīng)一條或者幾條策略,用策略加密密文,用戶只有滿足訪問(wèn)策略才能訪問(wèn)密文,刪除時(shí)撤銷策略?;谶@種思想,熊金波等[12]提出一種基于身份加密的安全自銷毀方案,根據(jù)用戶身份不同提供數(shù)據(jù)的細(xì)粒度訪問(wèn),可是容易暴露用戶身份信息。文獻(xiàn)[13]提出基于屬性加密的數(shù)據(jù)文件刪除機(jī)制,用屬性加密文件,用戶只有滿足訪問(wèn)控制屬性才能訪問(wèn)文件,減少了用戶身份信息的暴露。禹勇等[14]提出一種在互聯(lián)網(wǎng)和霧計(jì)算框架下,基于細(xì)粒度訪問(wèn)控制的確定性刪除方案,通過(guò)改變數(shù)據(jù)的訪問(wèn)控制,來(lái)達(dá)到數(shù)據(jù)刪除的目的,但不適應(yīng)云端大數(shù)據(jù)存儲(chǔ)。以上文獻(xiàn)都未對(duì)云端數(shù)據(jù)刪除后進(jìn)行驗(yàn)證。綜合分析現(xiàn)有文獻(xiàn),發(fā)現(xiàn)存在以下挑戰(zhàn)。
1) 云存儲(chǔ)環(huán)境下無(wú)法對(duì)數(shù)據(jù)文件進(jìn)行有效的細(xì)粒度操作,致使數(shù)據(jù)泄露。
2) 沒(méi)有實(shí)現(xiàn)即時(shí)刪除,基于DHT社交網(wǎng)絡(luò)的刪除機(jī)制,只能依賴網(wǎng)絡(luò)的更新周期,不能適用云存儲(chǔ)環(huán)境下的即時(shí)刪除要求。
3) 刪除云存儲(chǔ)中的數(shù)據(jù)時(shí),大多數(shù)是采用刪除密鑰這樣的邏輯刪除方式,致使密鑰刪除后文件依舊存在泄露的可能。
4) 沒(méi)有對(duì)云數(shù)據(jù)刪除操作進(jìn)行驗(yàn)證。
針對(duì)以上情況,提出一種基于密文重加密和數(shù)據(jù)覆寫驗(yàn)證結(jié)合的云數(shù)據(jù)確定性刪除方案(WV-CPABE,overwrite and verify ciphertext-policy attributed based encryption),可以有效實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)以及刪除細(xì)粒度控制和數(shù)據(jù)刪除驗(yàn)證。本方案的主要工作如下。
1) 采用基于密文策略屬性基加密機(jī)制(CPABE,ciphertext-policy attribute-based encryption)加密數(shù)據(jù),當(dāng)數(shù)據(jù)擁有者想刪除外包數(shù)據(jù)時(shí),通過(guò)重新加密密文改變密文對(duì)應(yīng)的屬性訪問(wèn)控制策略來(lái)實(shí)現(xiàn)數(shù)據(jù)細(xì)粒度操作和確定性刪除。
2) 設(shè)計(jì)了一種基于臟數(shù)據(jù)覆寫的可搜索路徑散列二叉樹(DSMHT,dirty data and search merkle hash tree),對(duì)云存儲(chǔ)的數(shù)據(jù)覆寫后進(jìn)行驗(yàn)證。根據(jù)輔助的可信刪除證據(jù),判斷是否對(duì)數(shù)據(jù)文件真正進(jìn)行了覆寫操作。
3) 對(duì)提出的云數(shù)據(jù)確定性刪除方案進(jìn)行了詳細(xì)的敵手模擬安全性證明,表明本方案可以滿足要求的數(shù)據(jù)細(xì)粒度操作和確定性刪除目標(biāo)。
屬性基加密[15](ABE,attribute-based encryption)是由Sahai和Watens在2005年的歐密會(huì)上提出的模糊身份加密。目前常用的2種方案是:基于密鑰策略屬性基加密(KP-ABE,key-policy attributebased encryption)和基于密文策略屬性基加密(CP-ABE,ciphertext-policy attribute-based encryption)。這 2種加密機(jī)制都用到屬性訪問(wèn)控制策略(AC,access control)。
假設(shè)初始化的系統(tǒng)屬性個(gè)數(shù)為n,則得系統(tǒng)屬性集合為 Ω={att1,att2,… ,attn},Ai={vi,1,vi,2,…,vi,ni},其中ni=|Ai|,Ai表示第i個(gè)屬性atti的取值。用戶屬性集合 Au= {Au1,Au2,???,A um},其中m∈ [1,n]。Aui表示用戶屬性集合 Au中屬性的取值。AC =[AC1,AC2,…,A Ck],k∈ [1,n],為定義的一個(gè)密文的訪問(wèn)控制策略。訪問(wèn)控制策略是借助樹結(jié)構(gòu),采用與門、或門和門限控制方法對(duì)屬性進(jìn)行管理。數(shù)據(jù)擁有者首先將訪問(wèn)控制策略AC轉(zhuǎn)換為一棵訪問(wèn)控制樹,其中非葉子節(jié)點(diǎn)表示屬性控制判斷條件,葉子節(jié)點(diǎn)表示屬性值。圖1所示的是訪問(wèn)控制策略AC=[hebie, cs, man, pro, is]轉(zhuǎn)化為樹形式的一種表達(dá)。
設(shè)p是素?cái)?shù),GT是階為p的乘法循環(huán)群,Gv是階為p的乘法循環(huán)群,通常稱映射e:GT×GT→GV為一個(gè)雙線性對(duì),e滿足以下的3個(gè)性質(zhì)。
1) 雙線性:對(duì)于任意δ,ξ∈Zp和χ,γ∈GT,都有e(χδ,γξ)= e(χ,γ)δξ。
2) 非退化性:存在χ,γ∈GT,使e(χ,γ) ≠ 1Gv。
3) 可計(jì)算性:對(duì)任意的χ∈GT,γ∈Gv,存在有效的算法計(jì)算e(χ,γ)的值。
圖1 訪問(wèn)控制策略AC
符號(hào)及其含義如表1所示。
表1 符號(hào)及其含義
本文提出的云數(shù)據(jù)確定性刪除方案(WVCP-ABE)共包括四部分,分別是數(shù)據(jù)擁有者(DO,data owner)、可信授權(quán)機(jī)構(gòu)(TA,trusted authority)、云服務(wù)提供商(CSP,cloud server provider)和用戶(user)。整體結(jié)構(gòu)如圖2所示,具體各部分的功能如下。
圖2 系統(tǒng)整體結(jié)構(gòu)
數(shù)據(jù)擁有者(DO):創(chuàng)建數(shù)據(jù)文件,上傳云端前對(duì)數(shù)據(jù)文件進(jìn)行加密處理。數(shù)據(jù)擁有者雖然上傳了數(shù)據(jù)到云端,但是懷疑云服務(wù)提供商是否按照約定對(duì)數(shù)據(jù)進(jìn)行處理,擔(dān)心數(shù)據(jù)有泄露的危險(xiǎn)。
可信授權(quán)機(jī)構(gòu)(TA):產(chǎn)生密鑰中心,負(fù)責(zé)給用戶分發(fā)私鑰,根據(jù)用戶屬性分發(fā)不同的用戶私鑰,而只有滿足數(shù)據(jù)文件訪問(wèn)控制策略的用戶才能下載文件解密出明文。
云服務(wù)提供商(CSP):自身?yè)碛袕?qiáng)大的計(jì)算能力和存儲(chǔ)資源,對(duì)租戶提供長(zhǎng)時(shí)間的存儲(chǔ)服務(wù)。但是本身是誠(chéng)實(shí)且好奇的,在商業(yè)利益和自己名聲的驅(qū)使下,會(huì)有泄露租戶信息的不法行為。
用戶(user):數(shù)據(jù)文件的使用者,通過(guò)自身?yè)碛械膶傩栽诳尚攀跈?quán)機(jī)構(gòu)獲取私鑰,然后在云端下載數(shù)據(jù),如果滿足數(shù)據(jù)的訪問(wèn)控制策略,就能成功解密文件。
云數(shù)據(jù)確定性刪除方案(WV-CP-ABE)總共包括以下幾個(gè)步驟:系統(tǒng)初始化setup、用戶私鑰產(chǎn)生KeyGen、數(shù)據(jù)加密encrypt、數(shù)據(jù)解密dncrypt、刪除信息生成DelRequest、刪除密鑰生成ReKeyGen、訪問(wèn)控制策略重加密 ReEncrypt和數(shù)據(jù)覆寫驗(yàn)證Verify,流程如圖3所示,具體如下。
步驟1系統(tǒng)初始化setup(1k):TA執(zhí)行初始化算法,依據(jù)相應(yīng)的參數(shù)K,產(chǎn)生一對(duì)密鑰,即公共密鑰PK和主要密鑰MSK。
步驟 2用戶私鑰產(chǎn)生 KeyGen(PK,MSK,Au):TA對(duì)PK、MSK以及用戶屬性集合Au進(jìn)行計(jì)算,生成用戶私鑰SKu;并給數(shù)據(jù)擁有者生成私鑰ssk,該私鑰用于密文簽名。
步驟3數(shù)據(jù)加密encrypt(PK, AC,M):數(shù)據(jù)擁有者將明文M、公鑰PK和訪問(wèn)控制策略AC作為參數(shù),生成密文C;并對(duì)密文訪問(wèn)控制策略進(jìn)行簽名。
圖3 方案整體流程
步驟4數(shù)據(jù)解密decrypt(SKu,C):用戶首先需要通過(guò)數(shù)據(jù)文件的訪問(wèn)控制策略 AC,如果通過(guò),則利用獲得的私鑰SKu將密文C解密出明文M。
步驟 5刪除信息生成 DelRequest(AC):數(shù)據(jù)擁有者輸入要?jiǎng)h除數(shù)據(jù)的訪問(wèn)控制策略 AC,輸出刪除信息 DR,分別發(fā)送給授權(quán)機(jī)構(gòu)和云服務(wù)提供商,云服務(wù)商返回刪除數(shù)據(jù)的簽名,數(shù)據(jù)擁有者對(duì)其返回的簽名進(jìn)行驗(yàn)證。
步驟6刪除密鑰生成ReKeyGen(DR,MSK):可信授權(quán)機(jī)構(gòu)輸入刪除信息DR和系統(tǒng)主密鑰MSK生成新加密密鑰newk。
步驟7訪問(wèn)控制策略重加密ReEncrypt (newk,C):云服務(wù)提供商輸入newk、密文C輸出重新加密的密文NC。
步驟 8數(shù)據(jù)覆寫驗(yàn)證 verify(NC,H(R)):數(shù)據(jù)擁有者構(gòu)建基于臟數(shù)據(jù)塊覆寫的可搜索路徑散列二叉樹對(duì)云數(shù)據(jù)進(jìn)行覆寫操作,并驗(yàn)證覆寫結(jié)果的正確性。
假設(shè)存在敵手A、挑戰(zhàn)者和模擬器S,為本方案構(gòu)建以下敵手攻擊游戲,具體如下。
1) 敵手A嘗試構(gòu)建訪問(wèn)控制策略AC。
2) 挑戰(zhàn)者運(yùn)行setup初始化算法,輸出PK給敵手。
3) 敵手為得到用戶屬性集合AU,向模擬器 S請(qǐng)求多個(gè)私鑰。
4) 敵手A給挑戰(zhàn)者發(fā)送2條等長(zhǎng)的數(shù)據(jù)明文M0和M1,挑戰(zhàn)者隨機(jī)選擇其中一條φ= {0,1},挑戰(zhàn)者選擇訪問(wèn)控制策略加密AC加密數(shù)據(jù),將加密明文Cφ發(fā)送給敵手。
5) 敵手多次嘗試 3)。
6) 敵手根據(jù)得到的信息對(duì)φ進(jìn)行猜測(cè)得到φ′,如果敵手A猜測(cè)的φ′=φ,則敵手在游戲中獲勝;反之,敵手 A失敗。在敵手攻擊游戲中,敵手 A的優(yōu)勢(shì)為
本節(jié)給出云數(shù)據(jù)確定性刪除方案(WVCP-ABE)中數(shù)據(jù)加密解密階段和數(shù)據(jù)刪除階段的具體流程設(shè)計(jì)方案。數(shù)據(jù)加密解密階段包括系統(tǒng)初始化、用戶私鑰產(chǎn)生、數(shù)據(jù)加密和數(shù)據(jù)解密4個(gè)步驟。數(shù)據(jù)確定性刪除階段包括刪除信息生成、刪除密鑰產(chǎn)生、訪問(wèn)控制策略重加密和數(shù)據(jù)覆寫驗(yàn)證4個(gè)步驟。
1) 系統(tǒng)初始化 setup(1K)
這是在可信授權(quán)機(jī)構(gòu) TA運(yùn)行的一個(gè)隨機(jī)算法。首先可信授權(quán)機(jī)構(gòu)TA選擇2個(gè)階為p的乘法循環(huán)群GT,GV,滿足e:GT×GT→GV,其中g(shù)為GT的生成元,TA隨機(jī)選擇y∈Zp,計(jì)算
2) 用戶私鑰產(chǎn)生 KeyGen(PK,MSK,Au)
首先隨機(jī)選擇計(jì)算用戶私鑰的公共基r∈Zp,計(jì)算用戶私鑰基D0
對(duì)于每個(gè)屬性aj,都有rj∈Zp,然后基于用戶屬性計(jì)算屬性值Dj
最后產(chǎn)生的用戶私鑰為 SKu= (D0,Dj) 。同時(shí)可信授權(quán)機(jī)構(gòu)TA為數(shù)據(jù)擁有者DO產(chǎn)生用于訪問(wèn)控制策略簽名的公私鑰對(duì)(spk,ssk),隨機(jī)選擇一個(gè)α∈ Zp,計(jì)算v,如式(5)所示。
3) 數(shù)據(jù)加密 encrypt(PK,AC,M)
數(shù)據(jù)擁有者輸入明文M、公鑰PK和數(shù)據(jù)訪問(wèn)控制策略AC,輸出密文C。數(shù)據(jù)擁有者首先隨機(jī)選擇s∈Zp,計(jì)算密文C1、C2和C3如式(6)~式(8)所示。
最后得到的密文為C=(AC,C1,C2,C3),然后數(shù)據(jù)擁有者用簽名的私鑰對(duì)訪問(wèn)控制策略進(jìn)行簽名,計(jì)算標(biāo)簽,如式(9)所示。
其中,fname是數(shù)據(jù)文件的唯一名字標(biāo)識(shí),最后上傳{fname,C,σ}到云端。
4) 數(shù)據(jù)解密 encrypt(SKu,C)
解密過(guò)程如下。
其中,Au為用戶的屬性集合,對(duì)于每一個(gè)屬性aj∈Au,都隨機(jī)選擇一個(gè)隨機(jī)數(shù)Si∈Zp,且滿足
其中,i為訪問(wèn)控制屬性AC中屬性的序號(hào)。
1) 刪除信息生成 DelRequest(AC)
當(dāng)數(shù)據(jù)擁有者想刪除外包的數(shù)據(jù)時(shí),首先生成數(shù)據(jù)的刪除信息 DR =(fname,AC),其中fname是要?jiǎng)h除數(shù)據(jù)的唯一名字標(biāo)識(shí)。然后將 DR分別發(fā)送給可信授權(quán)機(jī)構(gòu)和云服務(wù)提供商。之后云服務(wù)提供商返回 {fname,σ}給數(shù)據(jù)擁有者,數(shù)據(jù)擁有者再認(rèn)證
如果成立,則證明C3確實(shí)是要?jiǎng)h除密文中的屬性訪問(wèn)控制策略。
2) 刪除密鑰生成ReKeyGen(DR,MSK)
可信授權(quán)機(jī)構(gòu)收到數(shù)據(jù)擁有者發(fā)送的刪除信息DR,根據(jù)主密鑰MSK,隨機(jī)選擇計(jì)算ck
然后將 newk =(fname,AC,ck) 返回給數(shù)據(jù)擁有者,數(shù)據(jù)擁有者收到newk后,立即將newk信息發(fā)送給云服務(wù)提供商。
3) 訪問(wèn)控制策略重加密ReEncrypt(newk,C)
云服務(wù)提供商接收到newk信息后,選擇密文C,然后計(jì)算
然后替換原來(lái)密文的C3部分,組成新的密文
4) 覆寫驗(yàn)證 verfiy(NC,H(R))
數(shù)據(jù)擁有者首先構(gòu)造基于臟數(shù)據(jù)覆寫的可搜索路徑散列二叉樹,根據(jù)要?jiǎng)h除數(shù)據(jù)塊的多少生成最小二叉樹,從數(shù)字1開始,層次遍歷二叉樹給節(jié)點(diǎn)賦值。然后準(zhǔn)備一個(gè)和外包數(shù)據(jù)一樣大小的二進(jìn)制隨機(jī)臟數(shù)據(jù)塊,從二叉樹根節(jié)點(diǎn)到每個(gè)葉子節(jié)點(diǎn)都有一條最短路徑,將路徑經(jīng)過(guò)的節(jié)點(diǎn)序號(hào)記錄下來(lái)再轉(zhuǎn)換為二進(jìn)制,和臟數(shù)據(jù)文件數(shù)據(jù)逐位進(jìn)行異或運(yùn)算,得到的新的數(shù)據(jù)就是此葉子節(jié)點(diǎn)對(duì)應(yīng)的要?jiǎng)h除的數(shù)據(jù)塊需要覆寫的數(shù)據(jù),然后葉子節(jié)點(diǎn)存儲(chǔ)這個(gè)臟數(shù)據(jù)塊的散列值,作為驗(yàn)證的根據(jù)。按照上述操作遍歷完所有的葉子節(jié)點(diǎn)。按照新生成的數(shù)據(jù)對(duì)云端存儲(chǔ)的數(shù)據(jù)進(jìn)行數(shù)據(jù)覆寫,寫操作完成后讓云服務(wù)提供商返回覆寫完數(shù)據(jù)的散列值,和本地存儲(chǔ)的進(jìn)行驗(yàn)證,如果一致,說(shuō)明覆寫刪除步驟完成。
數(shù)據(jù)覆寫算法如下。
步驟1輸入DeldatanumDirtyData
步驟 2DSMHT<—GetTree(Deldatanum)
步驟 3Levelsearch(DSMHT)
步驟4foriton
步驟 5Road<—search(i)
步驟 6Broad<—Binary(Road)
步驟7forjtom:
步驟8DC<—DirtyData^Broad
步驟 9H(R)<—getHash(H(R)L||H(R)r)
步驟 10overwrite(DC)
步驟11end
下面以一個(gè)刪除8個(gè)數(shù)據(jù)塊的例子詳細(xì)說(shuō)明數(shù)據(jù)覆寫的過(guò)程,生成的二叉樹如圖4所示。
要?jiǎng)h除的數(shù)據(jù)a1,它到根節(jié)點(diǎn)的最短路徑如圖中的曲線所示,其中經(jīng)過(guò)的節(jié)點(diǎn)序號(hào)為 8421,將8421轉(zhuǎn)換為二進(jìn)制得到10000011100101,然后與準(zhǔn)備的臟數(shù)據(jù)進(jìn)行異或運(yùn)算得到新的數(shù)據(jù)文件,即是a1數(shù)據(jù)文件需要覆寫的臟數(shù)據(jù)。然后依照此步驟完成其余7個(gè)數(shù)據(jù)文件的覆寫操作,最后通過(guò)遞歸算法得出DSMHT根節(jié)點(diǎn)的散列值。等到云端要?jiǎng)h除數(shù)據(jù)覆寫結(jié)束后,讓云端返回覆寫完數(shù)據(jù)的散列值,再與本地的散列值進(jìn)行判斷,以此判定覆寫刪除過(guò)程是否正確完成。
針對(duì)4.3節(jié)定義的安全模型,本節(jié)模擬游戲來(lái)證明本文提出的解決方案是安全的。
圖4 二叉樹
判定的雙線性 Diffie-Hellman問(wèn)題(簡(jiǎn)稱DBDH):假設(shè)輸入(P,aP,bP,cP,abcP)和(P,aP,bP,cP,μP),其中,a、b、c、μP均為隨機(jī)的,如果(P,aP,bP,cP,abcP)和aP、bP、cP、μP在多項(xiàng)式時(shí)間內(nèi)可區(qū)分出來(lái),則輸出true。
定理 1 如果敵手在安全模型下可以攻破本方案,則至少存在一個(gè)概率多項(xiàng)式時(shí)間算法內(nèi)敵手以不可忽略的優(yōu)勢(shì)解決DBDH(Diffe-Hellmen)問(wèn)題。
證明假設(shè)存在一個(gè)敵手A以優(yōu)勢(shì)ε在多項(xiàng)式時(shí)間內(nèi)攻破本方案,下面證明如下的DBDH問(wèn)題游戲可以以優(yōu)勢(shì)完成。
假設(shè)e:G0×G0→GV是一個(gè)雙線性映射,首先DBDH問(wèn)題挑戰(zhàn)者設(shè)以下情況。
敵手模擬游戲的具體過(guò)程如下。
1) 敵手A嘗試創(chuàng)建訪問(wèn)控制策略AC。
2)模 擬 器 S初始 化 公共參數(shù)Y=e(A,B)=e(g,g)ab,發(fā)送給敵手A。
3) 敵手A為了滿足用戶屬性集合Au,向模擬器S請(qǐng)求多個(gè)私鑰。模擬器S接收到信息后,對(duì)于每一個(gè)屬性aj∈Au,隨機(jī)選擇rj∈Zp計(jì)算用戶私鑰然后返回給敵手A。
4) 敵手為了能猜測(cè)出加密使用的密鑰,提交2個(gè)長(zhǎng)度一樣的內(nèi)容不同的明文M0、M1給模擬器S,模擬器S隨機(jī)選取r={0,1},然后用訪問(wèn)控制策略 AC加密明文 Mr,返回密文C給敵手 A。其中密文C包括C=MYsφ=1。當(dāng)φ=0時(shí),由假設(shè)Z=e(g,g)abc,其中αl(l∈ {1,2,…,N})可以 使ab= ∑αl,c=s, 這 樣 就 可 以 得 到Z=e(g,可知道密文C是關(guān)于 Mr的一個(gè)有效密文。當(dāng)φ=1時(shí),r′≠r,因?yàn)閦為隨機(jī)數(shù),所以密文C不包括明文Mr的任何有用信息。
5) 敵手A重復(fù)上述攻擊。
6) 敵手 A 根據(jù)收到的信息猜測(cè)r′的值。如果r′≠r,則模擬器S輸出φ′=1,敵手無(wú)法獲取任何關(guān)于r的信息,則有當(dāng)然也有如果r′=r,則模擬器 S輸出φ′= 0,敵手獲取Mr的密文,之前定義過(guò)敵手的優(yōu)勢(shì)為ε,則有得Pr[φ′=φ|最后得到的整體優(yōu)勢(shì)為
為進(jìn)一步說(shuō)明本文所提出的WV-CP-ABE方案的安全可靠性。本文從加密方式、刪除機(jī)制、細(xì)粒度安全訪問(wèn)和刪除驗(yàn)證4個(gè)方面將WV-CP-ABE方案與現(xiàn)有的云數(shù)據(jù)確定性刪除方案 Vanish[16]、ISS[17]、ESITE[18]和 SelfDOC[19]進(jìn)行對(duì)比分析,詳細(xì)結(jié)果如表2所示。結(jié)果表明本方案一方面在云數(shù)據(jù)刪除時(shí)采用重加密訪問(wèn)控制策略和數(shù)據(jù)覆寫雙重保證,另一方面在云數(shù)據(jù)刪除后增加驗(yàn)證過(guò)程,防止不可信云服務(wù)提供商偽造刪除信息,具有較高的安全性。
本文采用騰訊云服務(wù)器和本地電腦搭建實(shí)驗(yàn)所需的環(huán)境。騰訊云服務(wù)器為專業(yè)型服務(wù)器,CPU為四核、內(nèi)存為 8 GB,充當(dāng)方案中的云服務(wù)提供商。本地 3臺(tái)電腦件配置為戴爾OptiPlex 3020 Mini Tower臺(tái)式機(jī),處理器為Inter Core(TM) i5-4590@3.30 GHz四核,內(nèi)存為 8 GB,主硬盤為影馳 CX0128ML106-P(128 GB固態(tài)硬盤),分別充當(dāng)方案中的數(shù)據(jù)擁有者、授權(quán)機(jī)構(gòu)和用戶。部署的Linux系統(tǒng)為Centos6.7,Hadoop版本為 hadoop-2.6.0,采用 C語(yǔ)言并基于 PBC(pairing- based cryptography library)函數(shù)庫(kù)進(jìn)行編程開發(fā)。
實(shí)驗(yàn)主要是測(cè)試所提WV-CP-ABE方案在文件加解密、云端數(shù)據(jù)重加、二叉樹生成以及數(shù)據(jù)覆寫驗(yàn)證等過(guò)程的時(shí)間消耗情況。
圖 5測(cè)試不同文件大小方案加密時(shí)間的消耗。首先,在訪問(wèn)控制策略固定為15個(gè)屬性的情況下,為更好構(gòu)建現(xiàn)實(shí)的云存儲(chǔ)環(huán)境,選用的文件大小分別為 1 MB、2 MB、4 MB、8 MB、16 MB、32 MB、64 MB、128 MB和256 MB測(cè)試數(shù)據(jù)文件的加密時(shí)間。圖6是在相同條件下測(cè)試用戶解密數(shù)據(jù)的時(shí)間消耗。從圖5和圖6中可以發(fā)現(xiàn)與文獻(xiàn)[9]、文獻(xiàn)[21]相比,加解密消耗時(shí)間隨著數(shù)據(jù)文件的增多逐漸增多,但是數(shù)據(jù)文件增大到 256 MB時(shí)本方案的加解密時(shí)間明顯少于對(duì)比方案。主要原因是本方案和文獻(xiàn)[21]采用 CA-ABE加密,密文僅和一個(gè)訪問(wèn)控制策略有關(guān),而文獻(xiàn)[9]采用KP-ABE加密,密文和屬性相關(guān),隨著文件的增多,將屬性關(guān)聯(lián)到文件中時(shí)間消耗增大,導(dǎo)致對(duì)應(yīng)的加解密時(shí)間增多。
圖5 不同文件大小加密時(shí)間消耗
表2 不同方案對(duì)比
圖6 不同文件大小解密時(shí)間消耗
圖7測(cè)試數(shù)據(jù)大小固定,隨著訪問(wèn)控制策略中屬性個(gè)數(shù)變化,數(shù)據(jù)加解密時(shí)間消耗。根據(jù)云存儲(chǔ)中個(gè)人數(shù)據(jù)使用的調(diào)查報(bào)告[20]發(fā)現(xiàn),云數(shù)據(jù)中文檔類型占比最大,其次為照片類型?;诖饲闆r本實(shí)驗(yàn)選用1 MB大小的數(shù)據(jù)作為測(cè)試數(shù)據(jù),分析已存在的加密方案同時(shí)結(jié)合本文的設(shè)計(jì)目標(biāo),屬性個(gè)數(shù)大多數(shù)在5~15個(gè)之間變化,而當(dāng)屬性個(gè)數(shù)為15個(gè)時(shí)已能滿足方案安全要求。為此本實(shí)驗(yàn)數(shù)據(jù)大小固定為1 MB情況下,訪問(wèn)控制策略AC中屬性個(gè)數(shù)從5個(gè)增加到15個(gè)。從圖中可以看出隨著訪問(wèn)控制策略里屬性增多,數(shù)據(jù)加密和解密的時(shí)間大致呈現(xiàn)線性上升關(guān)系,而且相同屬性個(gè)數(shù)情況下,數(shù)據(jù)加密消耗時(shí)間小于數(shù)據(jù)解密時(shí)間消耗。
圖7 不同屬性個(gè)數(shù)加解密時(shí)間消耗
圖8測(cè)試的是不同屬性個(gè)數(shù)情況下云端對(duì)密文中訪問(wèn)屬性控制結(jié)構(gòu)重加密的時(shí)間消耗。數(shù)據(jù)刪除階段的重加密密鑰在可信授權(quán)結(jié)構(gòu)生成時(shí),TA只需要在Zp尋找一個(gè)隨機(jī)數(shù),所以計(jì)算時(shí)間消耗很小,而主要的時(shí)間消耗在云端訪問(wèn)控制策略重加密。當(dāng)固定文件大小為1 MB,訪問(wèn)控制策略中屬性個(gè)數(shù)從5個(gè)增加到15個(gè),從圖中可以看出來(lái),隨著屬性個(gè)數(shù)增多,時(shí)間消耗基本維持在95 ms左右。
圖8 不同屬性個(gè)數(shù)情況下重加密時(shí)間消耗
圖9測(cè)試的是生成不同高度DSMHT樹的時(shí)間消耗。由于數(shù)據(jù)分塊的大小不同,導(dǎo)致數(shù)據(jù)塊個(gè)數(shù)不同,致使DSMHT的高度也不同,為不失一般性,每個(gè)準(zhǔn)備的臟數(shù)據(jù)塊大小為4 KB,生成樹的高度從14增加到21,當(dāng)樹高度為21時(shí),基本可以滿足數(shù)據(jù)覆寫驗(yàn)證要求。從圖中可以看出隨著樹高度的增加,時(shí)間消耗不再呈現(xiàn)線性關(guān)系。當(dāng)高度為21時(shí),時(shí)間消耗大約為5.30 s,在可接受的范圍。
圖9 不同高度DSMHT生成時(shí)間消耗
圖10測(cè)試的是文件大小從1 MB到64 MB,采用全零覆寫、隨機(jī)覆寫和本方案覆寫時(shí)的時(shí)間消耗,從圖中可以看出隨著文件的增大,覆寫時(shí)間消耗大致呈比例增大,且本方案的時(shí)間消耗雖然比全零覆寫方式多,但是卻和隨機(jī)覆寫方式的時(shí)間消耗基本一致。分析其原因,全零覆寫模式直接對(duì)文件數(shù)據(jù)進(jìn)行覆寫,所以相同文件大小,時(shí)間消耗最少;隨機(jī)覆寫模式需要產(chǎn)生隨機(jī)數(shù),本方案覆寫模式需要讀取生成好的臟數(shù)據(jù),因此比全零覆寫模式消耗時(shí)間多,而這2種模式的時(shí)間消耗大致相同。
圖10 不同覆寫方法時(shí)間消耗
表3測(cè)試的是對(duì)文件大小從1 MB到64 MB進(jìn)行覆寫驗(yàn)證的時(shí)間消耗。從表中可以看出隨著文件大小的增加,時(shí)間消耗逐漸增多。64 MB的文件覆寫的時(shí)間大約為2.70 s,覆寫驗(yàn)證時(shí)間為9.45 s,均在允許接受的范圍。
表3 不同大小數(shù)據(jù)覆寫及覆寫驗(yàn)證時(shí)間消耗
采用刪除驗(yàn)證思想,提出一種基于密文重加密與覆寫驗(yàn)證技術(shù)結(jié)合的數(shù)據(jù)確定性刪除方案。當(dāng)數(shù)據(jù)刪除時(shí),首先采用重加密云端密文的訪問(wèn)控制策略,使數(shù)據(jù)文件不能解密;其次構(gòu)建基于臟數(shù)據(jù)塊覆寫的可搜索路徑散列二叉樹對(duì)云端密文進(jìn)行覆寫驗(yàn)證處理,保證刪除過(guò)程準(zhǔn)確地完成;最終通過(guò)敵手模擬游戲證明方案滿足細(xì)粒度操作和確定性刪除目標(biāo)。
下一步研究目標(biāo)是對(duì)上傳到云端的數(shù)據(jù)進(jìn)行安全等級(jí)分類,對(duì)不同安全等級(jí)的數(shù)據(jù)文件采用不同的數(shù)據(jù)確定性刪除方法,以便達(dá)到資源合理的動(dòng)態(tài)分配。