高文靜, 咸鶴群, 田呈亮, 李增鵬, 賀云龍
1. 青島大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院, 青島266071
2. 中國科學(xué)院信息工程研究所信息安全國家重點(diǎn)實(shí)驗(yàn)室, 北京100093
數(shù)據(jù)去重技術(shù)是一種高效的數(shù)據(jù)縮減技術(shù), 可以有效的節(jié)省存儲(chǔ)空間、降低傳輸帶寬消耗. 數(shù)據(jù)去重也被稱作重復(fù)數(shù)據(jù)刪除(data deduplication), 即每個(gè)數(shù)據(jù)副本只在云服務(wù)器上存儲(chǔ)一份, 并為擁有此數(shù)據(jù)所有權(quán)的用戶創(chuàng)建訪問鏈接[1]. 但隨著云服務(wù)器端數(shù)據(jù)安全問題的不斷出現(xiàn)[2], 為保護(hù)數(shù)據(jù)隱私, 用戶普遍將數(shù)據(jù)進(jìn)行加密后上傳至云服務(wù)器存儲(chǔ). 對(duì)于云存儲(chǔ)中加密數(shù)據(jù)的去重問題, Douceur 等人首次提出收斂加密(CE, convergent encryption)[3], 作為數(shù)據(jù)隱私性與去重高效性的平衡方案. CE 直接使用明文數(shù)據(jù)的哈希值作為加密密鑰, 易于實(shí)現(xiàn)且計(jì)算效率高, 在云存儲(chǔ)數(shù)據(jù)去重中得到了廣泛的應(yīng)用[4-6]. 但加密密鑰過度依賴明文, 使其易遭受離線窮舉攻擊. 為明確安全目標(biāo), 定義形式化安全模型, Bellare 等人基于CE 提出了消息鎖加密(MLE, message-locked encryption)[4], 加密密鑰由明文數(shù)據(jù)和系統(tǒng)參數(shù)共同計(jì)算得到, 但本質(zhì)上和收斂加密相同, 不能達(dá)到語義安全.
Puzio 等人提出ClouDedup 方案[5],在CE 的基礎(chǔ)上,增加額外的加密操作和訪問控制機(jī)制來保證數(shù)據(jù)的機(jī)密性. 該方案將數(shù)據(jù)外層加密和解密過程外包給第三方服務(wù)器, 并借助MM (metadata manager)來存儲(chǔ)包括加密密鑰在內(nèi)的元數(shù)據(jù). 該方案中系統(tǒng)要求額外服務(wù)器都是完全可信的, 且不能合謀. Stanek等人首次提出了“數(shù)據(jù)流行度” 的概念, 根據(jù)隱私程度將用戶數(shù)據(jù)劃分為流行數(shù)據(jù)和非流行數(shù)據(jù)[7]. 使用語義安全的加密算法保護(hù)非流行數(shù)據(jù)的安全, 對(duì)隱私程度不高的流行數(shù)據(jù)執(zhí)行數(shù)據(jù)去重操作, 需借助完全可信的IS (indexing service) 提供索引服務(wù). Puzio 等人提出PerfectDedup 方案[8], 通過完美哈希函數(shù)計(jì)算數(shù)據(jù)標(biāo)識(shí), 作為數(shù)據(jù)流行度查詢的依據(jù). 該方案需借助可信第三方保證非流行數(shù)據(jù)的語義安全, 實(shí)現(xiàn)對(duì)流行數(shù)據(jù)的去重. 但可信第三方在實(shí)際應(yīng)用中部署困難, 易成為系統(tǒng)瓶頸[9].
Bellare 等人提出DupLESS 方案[1], 用戶與密鑰服務(wù)器KS (key server) 通過運(yùn)行OPRF (oblivious pseudorandom function) 協(xié)議生成加密密鑰, 保證數(shù)據(jù)的安全性. 該方案可有效的抵抗蠻力攻擊, 同時(shí)也要求KS 完全可信, 難以抵抗KS 和云服務(wù)器的合謀攻擊. Liu 等人提出一種無需可信第三方的加密數(shù)據(jù)安全去重方案[10]. 擁有相同數(shù)據(jù)副本的用戶通過在線運(yùn)行PAKE (password authenticated key exchange) 協(xié)議進(jìn)行密鑰交換, 能夠有效的抵抗在線窮舉攻擊. 但該方案需要用戶在上傳數(shù)據(jù)之前, 與其他用戶執(zhí)行PAKE 協(xié)議來獲取加密密鑰, 要求參與協(xié)商的用戶實(shí)時(shí)在線, 一定程度上增加了通信開銷, 也降低了方案的實(shí)用性.
Stanek 等人在原有方案的基礎(chǔ)上提出改進(jìn)的門限數(shù)據(jù)去重方案[11], 其核心為門限密碼系統(tǒng), 進(jìn)一步保證了非流行數(shù)據(jù)的語義安全. 該方案借助IRS (index repository service) 提供索引服務(wù), 并進(jìn)行流行度查詢. 非流行數(shù)據(jù)采用雙層加密, 在云服務(wù)器端仍保存多份副本, 存在較大的數(shù)據(jù)冗余. 該方案要求IRS完全可信, 才可實(shí)現(xiàn)數(shù)據(jù)的安全去重, 不能擺脫可信第三方的束縛. Yuan 等人提出dedupDUM 方案[12],支持用戶動(dòng)態(tài)管理, 采用預(yù)先驗(yàn)證的訪問控制技術(shù), 可驗(yàn)證用戶身份的有效性. 該方案對(duì)用戶數(shù)據(jù)采用重加密技術(shù)保護(hù), 在隨機(jī)收斂加密的基礎(chǔ)上, 使用組密鑰進(jìn)行重加密. 組密鑰根據(jù)組內(nèi)用戶信息生成, 每當(dāng)用戶組發(fā)生改變時(shí), 組密鑰都隨之發(fā)生變化, 對(duì)用戶數(shù)據(jù)進(jìn)行一次重加密. 頻繁的加解密操作一定程度上消耗了云服務(wù)器端的計(jì)算資源. Wang 等人提出一種基于密鑰共享的數(shù)據(jù)安全去重方案[13], 對(duì)于收斂加密密鑰的管理問題提出一種基于所有權(quán)證明的密鑰共享方法, 但需借助可信第三方實(shí)現(xiàn). Fan 等人提出了一種隱私保護(hù)的數(shù)據(jù)去重方案[14], 依賴可信執(zhí)行環(huán)境TEE(trusted execution environment)提供安全的密鑰管理, 可以有效的保護(hù)敏感數(shù)據(jù)的機(jī)密性.
針對(duì)以上問題, 本文提出了一種基于雙層加密的云存儲(chǔ)數(shù)據(jù)去重方案, 擺脫了可信第三方的束縛, 實(shí)現(xiàn)云存儲(chǔ)中加密數(shù)據(jù)的高效去重. 主要貢獻(xiàn)如下:
(1) 無需任何第三方參與, 加強(qiáng)了去重方案的實(shí)用性;
(2) 實(shí)現(xiàn)了對(duì)非流行數(shù)據(jù)的去重, 進(jìn)一步提高去重效率;
(3) 添加了額外的安全機(jī)制, 有效防止非授權(quán)用戶下載數(shù)據(jù).
收斂加密(CE, convergent encryption) 是解決加密數(shù)據(jù)去重的有效措施. 通過對(duì)明文數(shù)據(jù)M 進(jìn)行哈希計(jì)算得到加密密鑰K = H(M), 使用K 對(duì)M 加密得到密文C = SE(K,M). 收斂加密執(zhí)行效率高, 但在數(shù)據(jù)的信息熵較低時(shí), 易遭受離線窮舉攻擊. 即攻擊者窮舉{Mi}(i=1,2,···), 計(jì)算Mi的哈希值Ki=H(Mi), 并進(jìn)一步計(jì)算密文Ci=SE(Ki,Mi). 通過對(duì)比C =Ci是否成立, 即可對(duì)明文數(shù)據(jù)M進(jìn)行猜測(cè).
ElGamal 公鑰密碼算法的安全性基于離散對(duì)數(shù)問題[15]. 設(shè)q 是一個(gè)大素?cái)?shù), G 為以g 為生成元的q階循環(huán)群, 其中g(shù) ∈Zq.
離散對(duì)數(shù)問題: 若給定x, x ∈Zq, 計(jì)算y ≡gxmod q 是容易的; 但對(duì)于給定的y ∈G, 求解x ≡loggy mod q 是困難的. 我們把求解x ≡loggy mod q 的困難問題稱為離散對(duì)數(shù)問題.
ElGamal 公鑰密碼算法主要包含以下三個(gè)函數(shù):
(1) {pk,sk} ←KeyGen(q,G,g): 密鑰生成函數(shù), 以(q,G,g) 作為輸入, 輸出公私鑰對(duì){pk,sk}. 選取唯一的sk, 1 <sk <q-1, 計(jì)算pk=gskmod q. pk 為公鑰, 對(duì)外公開; sk 為私鑰, 由用戶保存.
(2) c ←E(pk,m): 加密函數(shù), 輸入公鑰pk 和待加密數(shù)據(jù)m, 輸出密文c. 對(duì)于數(shù)據(jù)m, 首先選取一個(gè)秘密的隨機(jī)數(shù), 1 <k <q. 計(jì)算c1=gkmod q, c2=m(pk)kmod q. 輸出密文c=c1‖c2.
(3) m ←D(sk,c): 解密函數(shù), 輸入私鑰sk 和待解密密文c, 輸出原始數(shù)據(jù)m. 其中c = c1‖ c2, 計(jì)算m=c2/c1sk.
所有權(quán)證明(PoW, proof of ownership)[16,17]是提高客戶端數(shù)據(jù)去重方案安全性的有效措施. 通過執(zhí)行PoW, 用戶可以向服務(wù)器證明其確實(shí)擁有對(duì)某個(gè)文件的所有權(quán), 而不是僅僅擁有文件的一小部分信息. Halevi 首次提出了基于Merkle hash tree (MHT) 的PoW 方法[17]. 用戶端和服務(wù)器端都根據(jù)文件內(nèi)容建立MHT, 并根據(jù)挑戰(zhàn)問答的形式由服務(wù)器發(fā)起挑戰(zhàn). 用戶端對(duì)給定葉子節(jié)點(diǎn)的子集提供有效的MHT 路徑. 具體來說, PoW 是一種由證明者(用戶) 和驗(yàn)證者(云服務(wù)器) 運(yùn)行的交互式算法. 云服務(wù)器對(duì)于已存儲(chǔ)的數(shù)據(jù)M, 計(jì)算關(guān)于M 的短信息值φ(M). 向云服務(wù)器證明對(duì)M 的所有權(quán)時(shí), 用戶計(jì)算并向云服務(wù)器發(fā)送φ′, 與其運(yùn)行證明算法. 當(dāng)φ′=φ(M) 并且證明正確時(shí), 認(rèn)為用戶成功證明了對(duì)于M 的所有權(quán).
設(shè)G, GT是2 個(gè)q 階的乘法循環(huán)群, 其中q 為大素?cái)?shù), g 是群G 的生成元, 1GT是群GT的單位元.定義映射關(guān)系e:G×G →GT, 并滿足在以下性質(zhì)[18]:
(1) 雙線性: ?a,b ∈Zq, 都有e(ga,gb)=e(g,g)ab;
(2) 可計(jì)算性: ?g1,g2∈G, e(g1,g2) 是可計(jì)算的;
(3) 非退化性: ?g1,g2∈G, 使得e(g1,g2)/=1GT.
本方案的系統(tǒng)模型如圖1 所示, 包含云服務(wù)器和用戶.
云服務(wù)器CSP (cloud service provider): 主要提供云存儲(chǔ)服務(wù), 用于存儲(chǔ)用戶數(shù)據(jù). CSP 對(duì)存儲(chǔ)的文件統(tǒng)計(jì)其合法上傳用戶并計(jì)數(shù), 用于安全驗(yàn)證和文件流行度查詢.
用戶U (user): 將數(shù)據(jù)外包到云服務(wù)器以節(jié)省本地存儲(chǔ)空間. 為保護(hù)數(shù)據(jù)隱私, 將數(shù)據(jù)加密后再上傳至云服務(wù)器.
圖1 系統(tǒng)模型Figure 1 System model
在本文方案中, 我們主要考慮以下兩類攻擊者:
(1) 內(nèi)部攻擊者: 指系統(tǒng)內(nèi)部的敵手, 主要指云服務(wù)器. 我們認(rèn)為云服務(wù)器是誠實(shí)且好奇的, 可對(duì)其存儲(chǔ)的用戶數(shù)據(jù)進(jìn)行任意訪問;
(2) 外部攻擊者: 指系統(tǒng)外部的敵手, 主要指非授權(quán)用戶. 外部敵手通過竊聽公共信道獲取部分上傳數(shù)據(jù)的相關(guān)信息, 其主要目的是非法獲取云服務(wù)器上存儲(chǔ)的用戶數(shù)據(jù)的明文信息.
本文方案的安全目標(biāo)如下:
(1) 數(shù)據(jù)的隱私性: 去重方案應(yīng)保證存放在云服務(wù)器上用戶數(shù)據(jù)的隱私性, 包括非流行數(shù)據(jù)和流行數(shù)據(jù). 云服務(wù)不應(yīng)獲取任何關(guān)于其存儲(chǔ)的用戶數(shù)據(jù)的明文信息. 非授權(quán)用戶不能獲取關(guān)于云服務(wù)上存儲(chǔ)的用戶數(shù)據(jù)的明文信息.
(2) 數(shù)據(jù)的完整性: 去重方案應(yīng)保證存儲(chǔ)在云服務(wù)器上用戶數(shù)據(jù)的完整性. 方案允許授權(quán)用戶下載數(shù)據(jù)時(shí)驗(yàn)證其數(shù)據(jù)的完整性.
本文中使用的符號(hào)如表1 所示.
(1) KC←KGenCE(M), 收斂加密方案中的密鑰生成函數(shù). 輸入數(shù)據(jù)M, 輸出對(duì)應(yīng)的收斂加密密鑰KC.
(2) C ←Enc(K,M), 使用對(duì)稱加密算法的加密函數(shù). 輸入密鑰K 和待加密數(shù)據(jù)M, 輸出加密后的密文C.
(3) M ←Dec(K,C), 使用對(duì)稱加密算法的解密函數(shù). 輸入密鑰K 和待解密數(shù)據(jù)C, 輸出解密后的數(shù)據(jù)M.
(4) 安全的哈希函數(shù)H: {0,1}*→Zq; 短哈希函數(shù)SH: {0,1}*→{0,1}s.
(5) c ←E(pk,m), ElGamal 公鑰密碼算法中的加密函數(shù). 輸入公鑰pk 和數(shù)據(jù)m, 輸出密文c.
表1 符號(hào)定義Table 1 Symbol definition
(6) m ←D(sk,c), ElGamal 公鑰密碼算法中的解密函數(shù). 輸入私鑰sk 和密文c, 輸出原始數(shù)據(jù)m.
(7) K ←KeyExt(p,k), 密鑰擴(kuò)展函數(shù). 輸入輔助參數(shù)p 和初始密鑰k, 確定性輸出長度為l 的密鑰.
(8) TF←TGen(p,CF), 標(biāo)簽生成函數(shù). 輸入?yún)?shù)p 和文件F 的收斂密文CF, 輸出文件標(biāo)簽TF. 具體來說, 計(jì)算V = gH(CF)·p, Aux = gp, 數(shù)據(jù)標(biāo)簽TF為V 和Aux 組成的二元組, 即TF=<V,Aux >. 本文方案中使用用戶私鑰sk 作為標(biāo)簽生成函數(shù)的參數(shù).
(9) re ←TCheck(TF,Tag_List), 標(biāo)簽查找函數(shù). 輸入文件標(biāo)簽TF和標(biāo)簽列表Tag_List, 輸出查找結(jié)果re. 若存在T′=<V′,Aux′>∈Tag_List 且e<V,Aux′>=e<V′,Aux >, 則代表Tag_List 中已存在該文件標(biāo)簽, 輸出re=T′; 否則, 輸出re=0.
本文提出一種基于雙層加密的云存儲(chǔ)數(shù)據(jù)去重方案, 無需第三方參與, 實(shí)現(xiàn)云存儲(chǔ)中加密數(shù)據(jù)的高效去重. 通過劃分?jǐn)?shù)據(jù)流行度, 對(duì)隱私程度較高的非流行數(shù)據(jù), 采用雙層加密. 內(nèi)層為簡(jiǎn)單高效的收斂加密,外層采用語義安全的對(duì)稱加密. 加密密鑰由用戶根據(jù)數(shù)據(jù)信息結(jié)合云服務(wù)器提供的隨機(jī)密鑰計(jì)算得到, 不需借助額外服務(wù)器或?qū)崟r(shí)在線用戶傳遞密鑰. 當(dāng)云服務(wù)器上存儲(chǔ)的用戶數(shù)據(jù)達(dá)到流行度閾值時(shí), 該數(shù)據(jù)轉(zhuǎn)換為流行數(shù)據(jù), 去除外層加密, 云服務(wù)器存儲(chǔ)數(shù)據(jù)的收斂加密結(jié)果. 本方案能夠?qū)崿F(xiàn)對(duì)非流行數(shù)據(jù)的去重,而且在數(shù)據(jù)流行度轉(zhuǎn)換時(shí)刻, 不需要用戶重復(fù)上傳數(shù)據(jù), 進(jìn)一步節(jié)省了網(wǎng)絡(luò)帶寬, 提高了去重效率.
方案主要包括三部分: 系統(tǒng)初始化, 文件上傳和文件下載.
系統(tǒng)初始化階段, 生成一個(gè)密鑰池KeySet, 其中包含足夠多數(shù)量的隨機(jī)密鑰, 密鑰長度為固定值s.密鑰池安全的存放在CSP 上. 對(duì)每一個(gè)加入系統(tǒng)的用戶Ui確定唯一的身份標(biāo)識(shí)IDi, 并為之分配專屬的公私鑰對(duì){pki,ski}, 其中公鑰pki對(duì)外公開, 私鑰ski由Ui保存.
CSP 上存放有文件標(biāo)簽列表Tag_List,文件信息表DB.Tag_List 為CSP 上已存儲(chǔ)數(shù)據(jù)對(duì)應(yīng)標(biāo)簽的集合, 主要用于數(shù)據(jù)重復(fù)性檢測(cè). DB 與CSP 上存儲(chǔ)的每一個(gè)文件相關(guān)聯(lián), 具體來說, 對(duì)于CSP 上存儲(chǔ)的文件F, 以標(biāo)簽TF作為標(biāo)識(shí), 與其相關(guān)聯(lián)的文件信息表DB[TF] 包含四條記錄, DB[TF].data 為存儲(chǔ)的文件密文, DB[TF].user 為文件的合法用戶列表, DB[TF].rkey 為文件加密所需的隨機(jī)密鑰, DB[TF].ctr為文件的合法用戶數(shù)量.
用戶Ui選擇文件F 上傳到云服務(wù)器CSP 存儲(chǔ)時(shí)(文件上傳的具體流程見算法1), 首先對(duì)F 進(jìn)行收斂加密, 計(jì)算文件標(biāo)簽TF,i, 發(fā)送上傳請(qǐng)求upload_request‖IDi‖TF,i到CSP. CSP 收到Ui的上傳請(qǐng)求后, 進(jìn)行數(shù)據(jù)重復(fù)性檢測(cè). CSP 運(yùn)行標(biāo)簽查找函數(shù)re ←TCheck(TF,i,Tag_List), 若re = 0, 則本次上傳為文件的初始上傳, 執(zhí)行算法2; 否則, 上傳文件為重復(fù)文件, 且該文件在CSP 中對(duì)應(yīng)標(biāo)簽TF為標(biāo)簽查找函數(shù)的返回值re, 執(zhí)行算法3.
算法1 文件上傳1. Ui:2. Compute convergent key KC ←KGenCE(F)3. Compute convergent ciphertext CF ←Enc(KC,F)4. Compute file tag TF,i ←TGen(ski,CF)5. Ui →CSP: Send upload_request ‖ IDi ‖ TF,i to CSP 6. CSP: re ←TCheck(TF,i,Tag_List)7. if re = 0, then execute Algorithm 2 8. else, TF = re, execute Algorithm 3
4.2.1 初始文件上傳
上傳文件F 為CSP 中不存在的文件時(shí), 為初始文件上傳.
CSP 首先將Ui上傳的文件標(biāo)簽TF,i添加到文件標(biāo)簽列表Tag_List. Ui作為F 的初始上傳者, 其上傳的文件標(biāo)簽TF,i作為CSP 中對(duì)于F 的唯一標(biāo)識(shí), 即TF= TF,i. 其次初始化對(duì)應(yīng)文件信息表, 設(shè)置DB[TF].ctr=0, 并在密鑰池KeySet 中隨機(jī)選取密鑰rk, 令DB[TF].rkey=rk. CSP 將rk 用公鑰加密RK ←E(pki,rk), 發(fā)送data_demand‖RK 到Ui, 要求Ui上傳數(shù)據(jù).
Ui收到RK 后用私鑰對(duì)其解密rk ←D(ski,RK), 并以收斂加密密文的短哈希值SH(CF) 和rk 作為輸入, 通過密鑰擴(kuò)展函數(shù)計(jì)算加密密鑰K ←KeyExt(SH(CF),rk). Ui用K 對(duì)文件的收斂加密密文CF進(jìn)行再加密得到雙層加密密文←Enc(K,CF), 并將data_upload‖IDi‖發(fā)送到CSP.
CSP 收到Ui上傳的數(shù)據(jù)后, 存儲(chǔ)文件密文DB[TF].data =, 更新用戶列表DB[TF].users ={IDi}, 并初始化DB[TF].ctr=1. Ui保存{TF,i,KC,K}.
至此, 文件上傳結(jié)束. 初始文件上傳的具體流程見算法2.
算法2 初始文件上傳1. CSP: TF = TF,i, initialize DB[TF]2. DB[TF].ctr = 0 3. Select random key rk←RKeySet, DB[TF].rkey = rk 4. Encrypt rk using pki, RK ←E(pki,rk)5. CSP →Ui: Send data_demand ‖ RK to Ui 6. Ui:7. Decrypt RK, rk ←D(ski,RK)8. Compute encryption key K ←KeyExt(SH(CF),rk)9. Re-encrypt F, C*F ←Enc(K,CF)10. Ui →CSP: Send data_upload ‖ IDi ‖ C*F to CSP 11. CSP: DB[TF].data = C*F, DB[TF].users = {IDi}, DB[TF].ctr = 1 12. Ui: Store {TF,i,KC,K}.
4.2.2 后續(xù)文件上傳
上傳文件F 為CSP 中已存在的文件時(shí), 為后續(xù)文件上傳, 系統(tǒng)執(zhí)行數(shù)據(jù)去重操作, 用戶無需再上傳數(shù)據(jù).
CSP 發(fā)送PoWverif_request 給Ui, 要求進(jìn)行PoW 驗(yàn)證. 若所有權(quán)驗(yàn)證通過, 則證明Ui確實(shí)擁有F, CSP 將對(duì)應(yīng)文件信息表中信息進(jìn)行更新, DB[TF].ctr+=1, 并將Ui添加到合法用戶列表中DB[TF].users=DB[TF].users ∪{IDi}.
根據(jù)文件的合法用戶數(shù)量DB[TF].ctr 和流行度閾值t 之間的關(guān)系, 又可分為以下三種情況:
(1) 當(dāng)DB[TF].ctr <t 時(shí), 我們定義F 為非流行文件, 具有較高的隱私性. Ui需與CSP 交互獲取文件加密密鑰.CSP 將文件隨機(jī)密鑰rk 用公鑰加密RK ←E(pki,rk) 并發(fā)送給Ui. Ui收到RK 之后用私鑰解密, rk ←D(ski,RK), 得到rk. 并計(jì)算文件加密密鑰K ←KeyExt(SH(CF),rk). Ui保存{TF,i,KC,K}.
(2) 當(dāng)DB[TF].ctr = t 時(shí), 為流行度轉(zhuǎn)換, 即經(jīng)過本次上傳之后, F 由非流行文件轉(zhuǎn)變?yōu)榱餍形募?Ui需上傳輔助信息, 用于存儲(chǔ)在CSP 上文件密文的外層解密.CSP 發(fā)送auxinfo_demand 給Ui要求上傳輔助信息. Ui計(jì)算輔助密鑰auxKey=SH(CF) 并發(fā)送到CSP. CSP 計(jì)算加密密鑰K ←KeyExt(auxKey,DB[TF].rkey). CSP 用該密鑰解密已存儲(chǔ)的文件密文←Dec(K,DB[TF].data), 并進(jìn)一步驗(yàn)證SH() 與auxKey 是否相等. 若auxKey = SH(), 則解密正確, 并更新DB[TF].data =. 此時(shí), CSP 上存儲(chǔ)的數(shù)據(jù)為文件的收斂加密密文. Ui只需保存{TF,i,KC} 用于后期文件下載.
(3) 當(dāng)DB[TF].ctr>t 時(shí),我們定義F 為流行文件,具有較低的隱私性. Ui只需自行保存{TF,i,KC},用于后期文件下載.至此, 文件上傳操作結(jié)束. 后續(xù)文件上傳的具體流程見算法3.
算法3 后續(xù)文件上傳1. CSP →Ui: Send PoWverif_request to Ui 2. Ui running PoW with CSP 3. if verification successful, then 4. CSP: DB[TF].ctr+ =1, DB[TF].users = DB[TF].users ∪{IDi}5. if DB[TF].ctr <t, then 6. CSP: rk = DB[TF].rkey, RK ←E(pki,rk)7. CSP →Ui: Send RK to Ui 8. Ui:9. Decrypt RK, rk ←D(ski,RK)10. Compute encryption key K ←KeyExt(SH(CF),rk)11. Store {TF,i,KC,K}12. end 13. else if DB[TF].ctr = t, then 14. CSP →Ui: Send auxinfo_demand to Ui 15. Ui: Compute auxKey =SH(CF)16. Ui →CSP: Send auxinfo_upload ‖ auxKey to CSP 17. CSP:18. Compute encryption key K ←KeyExt(auxKey,DB[TF].rkey)19. Compute C′F ←Dec(K,DB[TF].data)20. DB[TF].data = C′F 21. Ui: Store {TF,i,KC}22. end 23. else, Ui: Store {TF,i,KC}24. end 25. else, return ERROR
若用戶Uj下載文件F, 則發(fā)送下載請(qǐng)求download_request ‖ IDj‖ TF,j到CSP. CSP 首先根據(jù)該用戶上傳的文件標(biāo)簽TF,j查找CSP 上F 對(duì)應(yīng)的文件標(biāo)簽TF. 其次, CSP 查詢用戶權(quán)限, 若IDj∈DB[TF].users, 則為合法用戶, 進(jìn)一步驗(yàn)證用戶身份. CSP 選取隨機(jī)數(shù)r, 用該用戶的公鑰加密R ←E(pkj,r) 并發(fā)送給Uj. Uj用私鑰解密得到r′←D(skj,R), 將H(r′) 發(fā)送給CSP. CSP 計(jì)算H(r)并與收到的H(r′)對(duì)比,若H(r′)=H(r),則用戶身份驗(yàn)證通過,CSP 發(fā)送密文C =DB[TF].data給Uj.
Uj收到文件密文后, 對(duì)密文進(jìn)行解密, 分以下兩種情況:
(1) Uj保存有{TF,i,KC,K}, 則首先計(jì)算MF←Dec(K,C) 并進(jìn)行驗(yàn)證. 若TGen(skj,MF) =TF,j, 則MF為F 的收斂加密密文, 進(jìn)一步用收斂加密密鑰KC進(jìn)行解密得到原始文件F =Dec(KC,MF). 若TGen(skj,C)=TF,j, 則CSP 上存儲(chǔ)的F 已轉(zhuǎn)變?yōu)榱餍形募? 此時(shí)Uj收到的文件密文為收斂加密密文,直接用收斂加密密鑰KC進(jìn)行解密得到原始文件F =Dec(KC,C).否則, 返回錯(cuò)誤信息.
(2) Uj保存有{TF,j,KC}, 首先進(jìn)行驗(yàn)證, 若TGen(skj,C) = TF,j, 則確定C 為F 的收斂加密密文, Uj用收斂加密密鑰進(jìn)行解密得到原始文件F =Dec(KC,C).
文件下載的具體流程見算法4.
算法4 文件下載1. Uj →CSP: Send download_request ‖ IDj ‖ TF,j to CSP 2. CSP: TF ←TCheck(TF,j,Tag_List), check whether IDj ∈DB[TF].users or not 3. if IDj ∈DB[TF].users, then 4. CSP: Select random number r, compute R ←E(pkj,r) and send R to Uj 5. Uj: Compute r′ ←D(skj,R), and send H(r′) to CSP 6. CSP: Check whether H(r′) = H(r)7. if H(r′) = H(r), CSP send C = DB[TF].data to Uj 8. Uj:9. if have {TF,i,KC,K}, then 10. Compute MF ←Dec(K,C)11. if TGen(skj,MF) = TF,j, then compute F = Dec(KC,MF)12. else if TGen(skj,C) = TF,j, then compute F = Dec(KC,C)13. else, return ERROR 14. end 15. else if have {TF,j,KC}, then 16. if TGen(skj,C) = TF,j, then compute F = Dec(KC,C)17. else, return ERROR 18. end 19. end 20. else, return ERROR
根據(jù)3.2 節(jié)提出的威脅模型, 本文方案主要考慮來自內(nèi)部敵手和外部敵手的攻擊. 內(nèi)部敵手主要指云服務(wù)器, 外部敵手主要指非授權(quán)用戶. 本文提出方案中涉及的系統(tǒng)參數(shù)及3.4 節(jié)定義的函數(shù)均對(duì)外公開.我們認(rèn)為CSP 是誠實(shí)且好奇的, 非授權(quán)用戶可能會(huì)通過假冒合法用戶與CSP 進(jìn)行交互, 嘗試對(duì)CSP 上存儲(chǔ)的用戶數(shù)據(jù)進(jìn)行非法訪問. 我們假設(shè)外部敵手憑借其攻擊能力, 可竊聽公共信道獲取部分上傳數(shù)據(jù),從而對(duì)用戶數(shù)據(jù)進(jìn)行蠻力攻擊.
本文方案中由用戶計(jì)算數(shù)據(jù)標(biāo)簽, 云服務(wù)器基于雙線性映射e 檢測(cè)數(shù)據(jù)重復(fù)性. 方案應(yīng)保證數(shù)據(jù)標(biāo)簽的安全性, 接下來從數(shù)據(jù)標(biāo)簽的正確性、數(shù)據(jù)標(biāo)簽的唯一性和抗窮舉攻擊三方面進(jìn)行分析與證明.
5.1.1 數(shù)據(jù)標(biāo)簽的正確性
定理1 文件F 的初始上傳者Ui計(jì)算文件標(biāo)簽TF,i=<Vi,Auxi>, 上傳到云服務(wù)器中保存, 作為F 的唯一標(biāo)識(shí). 那么, F 的后續(xù)上傳者Uj計(jì)算文件標(biāo)簽TF,j=<Vj,Auxj>, 一定滿足e(Vi,Auxj) =e(Vj,Auxi).
證明: 根據(jù)標(biāo)簽生成函數(shù), Vi= gH(CF)·ski, Auxi= gski, Vj= gH(CF)·skj, Auxj= gskj, 其中CF為F 對(duì)應(yīng)收斂密文. 由雙線性映射的性質(zhì), 可得以下等式:
不失一般性, 不同用戶Ui和Uj對(duì)相同文件F 計(jì)算的文件標(biāo)簽TF,i=<Vi,Auxi>, TF,j=<Vj,Auxj>,一定滿足e(Vi,Auxj)=e(Vj,Auxi). 由此可證數(shù)據(jù)標(biāo)簽的正確性.
5.1.2 數(shù)據(jù)標(biāo)簽的唯一性
引理1 (哈希函數(shù)的抗碰撞性) 對(duì)于安全的哈希函數(shù)H : {0,1}*→Zq, ?M1,M2∈{0,1}*, 且M1/= M2, 使得H(M1) = H(M2) 的概率是可忽略的. 我們用ε 表示可忽略值, 即: Pr[H(M1) =H(M2)|M1/=M2]≤ε.
定理2 設(shè)文件F 的初始上傳者Ui計(jì)算文件標(biāo)簽TF,i=<Vi,Auxi>, 上傳到云服務(wù)器中保存, 作為F 的唯一標(biāo)識(shí). 當(dāng)用戶Uj上傳文件F′時(shí), 計(jì)算文件標(biāo)簽TF′,j=<Vj,Auxj>, 上傳到云服務(wù)器進(jìn)行數(shù)據(jù)重復(fù)性檢測(cè). 方案保證數(shù)據(jù)標(biāo)簽的唯一性, 即存在F /= F′, 使得e(Vi,Auxj) = e(Vj,Auxi) 的概率是可忽略的:
證明: 采用反證法進(jìn)行證明. 假設(shè)存在F /=F′, 使得e(Vi,Auxj)=e(Vj,Auxi). 即
當(dāng)F /= F′, CF/= CF′. 根據(jù)引理1, Pr[H(CF) = H(CF′)|CF/= CF′] ≤ε. 不失一般性, 若e(Vi,Auxj)=e(Vj,Auxi), 則H(CF)=H(CF′), 與假設(shè)相矛盾, 所以假設(shè)不成立. 即當(dāng)且僅當(dāng)F =F′時(shí), 才滿足e(Vi,Auxj)=e(Vj,Auxi). 由此可證數(shù)據(jù)標(biāo)簽的唯一性.
5.1.3 抵抗窮舉攻擊
本節(jié)針對(duì)方案中數(shù)據(jù)標(biāo)簽存在被窮舉攻擊的風(fēng)險(xiǎn)進(jìn)行安全性分析. 假設(shè)存在一個(gè)多項(xiàng)式時(shí)間的敵手A, 針對(duì)某一文件的標(biāo)簽TF=<V,Aux >進(jìn)行離線窮舉攻擊, 進(jìn)而猜測(cè)TF對(duì)應(yīng)的數(shù)據(jù)明文M. 攻擊過程如下:
①A 窮舉數(shù)據(jù){M′}, 對(duì)其進(jìn)行收斂加密得到收斂加密密文CM′;
②A 選擇隨機(jī)數(shù)r←RZq, 運(yùn)行標(biāo)簽生成函數(shù)TM′←TGen(r,CM′), 得到TM′=<VA,AuxA>, 其中VA=gH(CM′)·r, AuxA=gr;
③A 通過標(biāo)簽查找函數(shù)中的匹配算法,對(duì)比e(V,AuxA) 與e(VA,Aux) 是否相等;
④若e(V,AuxA)=e(VA,Aux), 則A 猜測(cè)TF對(duì)應(yīng)的數(shù)據(jù)明文M =M′.
在明文空間足夠大的情況下, A 不知數(shù)據(jù)大小|M|, 以上攻擊是不可行的. 在實(shí)際應(yīng)用中,用戶外包到云服務(wù)器存儲(chǔ)的數(shù)據(jù)小到幾 KB, 大到數(shù) GB (例如視頻文件). 假設(shè)明文空間 MS ={M|M ∈{0,1}*,|M|≤n}, n >230×8. A 在該明文空間下窮舉數(shù)據(jù)M′∈MS, 成功攻破標(biāo)簽TF的概率遠(yuǎn)遠(yuǎn)小于, 我們認(rèn)為此概率是可忽略的.
方案保證存儲(chǔ)在CSP 上用戶數(shù)據(jù)的隱私性, 敵手不應(yīng)獲取任何數(shù)據(jù)明文.
定理3 本文方案可防止CSP 獲取其存儲(chǔ)的用戶數(shù)據(jù)明文.
證明: 盡管CSP 可獲取用戶數(shù)據(jù)密文, 根據(jù)存儲(chǔ)的文件信息表, 可獲取文件的流行度和隨機(jī)密鑰,但仍不能解密得到數(shù)據(jù)明文. 對(duì)于某個(gè)特定密文C, 若為非流行數(shù)據(jù)的密文, 為雙層加密密文. 內(nèi)層為收斂加密, 外層采用語義安全的加密算法保護(hù), CSP 在沒有密鑰的情況下難以解密. 即使C 為流行數(shù)據(jù)的收斂加密密文, 根據(jù)引理1, CSP 在不知明文M 的情況下, 難以計(jì)算出收斂加密密鑰H(M), 不能對(duì)C 進(jìn)行解密. 即CSP 無法解密獲取用戶數(shù)據(jù)明文.
引理2 (公鑰密碼的安全性) 基于離散對(duì)數(shù)困難問題的ElGamal 公鑰密鑰體制是安全的, 即在沒有私鑰的情況下, 成功解密經(jīng)公鑰加密的密文的概率是可忽略的.
定理4 本文方案可有效的阻止非授權(quán)用戶獲取用戶數(shù)據(jù)明文.
證明: 非授權(quán)用戶Ua想要獲取CSP 上存儲(chǔ)的數(shù)據(jù), 根據(jù)4.3 節(jié)中的文件下載操作流程, 可能假冒合法用戶身份并使用其身份標(biāo)識(shí)IDi, 發(fā)送download_request‖IDi‖TF,i到CSP, 通過權(quán)限驗(yàn)證. CSP發(fā)送使用公鑰pki加密的隨機(jī)數(shù)密文R = E(pki,r), 根據(jù)引理2, Ua在沒有私鑰的情況下, 無法解密獲取r. Ua不能返回給CSP 正確的驗(yàn)證信息, 難以通過身份驗(yàn)證. 即非授權(quán)用戶Ua無法獲取CSP 上存儲(chǔ)的數(shù)據(jù).
定理5 CSP 上存儲(chǔ)數(shù)據(jù)的可驗(yàn)證性. 授權(quán)用戶可通過下載數(shù)據(jù)并檢測(cè)標(biāo)簽的一致性, 驗(yàn)證存儲(chǔ)在CSP 上數(shù)據(jù)的完整性.
證明: 由4.3 節(jié)中文件下載部分, 授權(quán)用戶Ub請(qǐng)求下載文件F, 通過CSP 發(fā)起的用戶身份驗(yàn)證之后, 收到由CSP 發(fā)送的密文C. Ub對(duì)密文進(jìn)行解密的過程中即可驗(yàn)證數(shù)據(jù)完整性.
本文方案考慮外部敵手對(duì)CSP 上存儲(chǔ)密文發(fā)動(dòng)蠻力攻擊的情況, 本節(jié)主要針對(duì)該攻擊, 進(jìn)行安全性分析, 建立一個(gè)安全模型游戲Game. 在該游戲中, 除了云服務(wù)器和用戶, 同時(shí)還存在一個(gè)多項(xiàng)式時(shí)間的攻擊者A. 假設(shè)在游戲的交互中, A 憑借其攻擊能力, 獲取了存儲(chǔ)在CSP 上的密文C. 本文方案能有效的抵抗來自A 的蠻力攻擊.
引理3 (蠻力攻擊) 收斂加密的密鑰由原始文件計(jì)算得到, 密鑰過度依賴明文. 若敵手已知密文, 便可窮舉數(shù)據(jù), 對(duì)其進(jìn)行加密并與已知密文進(jìn)行對(duì)比, 則可能猜測(cè)出原始數(shù)據(jù).
定理6 CSP 上存儲(chǔ)密文的不可區(qū)分性可保證去重方案能有效的抵抗蠻力攻擊. 即A 已知存儲(chǔ)在CSP 上的密文C, 通過暴力窮舉的方式猜測(cè)出原始數(shù)據(jù)M, 贏得游戲Game 的概率是可忽略的.
5.5.1 使用短哈希函數(shù)SH 的原因
本文方案中使用短哈希函數(shù)SH: {0,1}*→{0,1}s計(jì)算收斂加密密文的短哈希值SH(CF), 作為計(jì)算數(shù)據(jù)外層加密密鑰的輔助參數(shù). 方案中使用短哈希函數(shù)主要有以下兩個(gè)原因:
(1) 在4.2.2 節(jié)中, 后續(xù)文件上傳的流行度轉(zhuǎn)換情況, 上傳用戶需計(jì)算輔助密鑰auxKey = SH(CF)并發(fā)送給CSP, 用于CSP 計(jì)算數(shù)據(jù)外層加密密鑰. 由于短哈希函數(shù)會(huì)增加碰撞率, 不同的數(shù)據(jù)可能計(jì)算出相同的短哈希值. 所以即使在傳輸過程中, SH(CF) 意外泄露了, 敵手也無法從其中獲取關(guān)于原始文件F 的有用信息.
(2) 短哈希值長度更短, 計(jì)算或傳輸?shù)男矢? 減輕用戶端計(jì)算負(fù)擔(dān).
5.5.2 方案的改進(jìn)
為了節(jié)省網(wǎng)絡(luò)帶寬, 本文方案僅要求文件的初始上傳者上傳文件數(shù)據(jù), 后續(xù)上傳者只需進(jìn)行驗(yàn)證而不需上傳數(shù)據(jù), 極大的節(jié)省了用戶和云服務(wù)器間的通信開銷. 而且, 本文方案具有更高的靈活性, 若用戶存在較高的安全性需求, 本文方案只需很小的代價(jià)就可改進(jìn)為服務(wù)器端數(shù)據(jù)去重, 能夠有效的抵抗側(cè)信道攻擊[21], 從而具有更高的安全性.
具體來說, CSP 在用戶請(qǐng)求上傳文件時(shí), 無論該用戶是否為文件的初始上傳者, 均要求用戶上傳數(shù)據(jù)密文. 即在4.2.2 節(jié)中, 對(duì)于后續(xù)文件的上傳, CSP 發(fā)送data_demand 給用戶, 要求用戶上傳密文. CSP收到用戶上傳的密文后, 再執(zhí)行去重操作. 該改進(jìn)方案基于服務(wù)器端去重, 在一定程度上會(huì)增加網(wǎng)絡(luò)帶寬消耗, 但具有更高的安全性.
我們分別模擬實(shí)現(xiàn)了云服務(wù)器端和用戶端. 使用一臺(tái)戴爾OptiPlex 5250 臺(tái)式計(jì)算機(jī)模擬云服務(wù)器,配備有3.20 GHz Intel(R) Core(TM) i5-6500 四核處理器和8 GB 運(yùn)行內(nèi)存, 運(yùn)行操作系統(tǒng)為Windows 10. 我們另外使用了一臺(tái)聯(lián)想Lenovo s40-70 計(jì)算機(jī)模擬用戶端, 配備有1.70 GHz Intel(R) Core(TM)i5-4210 四核處理器和4 GB 運(yùn)行內(nèi)存, 運(yùn)行操作系統(tǒng)為Windows 10. 為測(cè)試方案性能, 我們借助Visual Studio 2017 的編譯環(huán)境, 使用SQL Server 2017 數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù), 采用C# 語言編寫Windows 窗體應(yīng)用程序模擬實(shí)現(xiàn)去重過程, 限制網(wǎng)絡(luò)傳輸帶寬為10 Mbps. 利用OPENSLL 函數(shù)庫[19]實(shí)現(xiàn)方案中所需的密碼算法, 其中使用MD5 哈希函數(shù)生成數(shù)據(jù)標(biāo)簽, SHA-256 用于生成收斂加密密鑰, 采用256 bit 強(qiáng)度的AES 實(shí)現(xiàn)數(shù)據(jù)加解密.
我們將不同體積的數(shù)據(jù)上傳至云服務(wù)器, 并分以下三種情況進(jìn)行模擬實(shí)驗(yàn):
(1) 初始文件上傳, 即上傳CSP 中不存在的文件.
(2) 非流行文件的上傳, 即上傳文件為已存儲(chǔ)在CSP 上, 但未超過流行度閾值的非流行文件.
(3) 流行文件的上傳, 即上傳文件為已存儲(chǔ)在CSP 上的流行文件.
本節(jié)的主要內(nèi)容包括方案的性能分析、計(jì)算開銷、去重效率和方案特點(diǎn)對(duì)比四部分.
我們從理論上對(duì)本文方案進(jìn)行性能分析, 主要包括通信開銷和存儲(chǔ)開銷, 并與Stanek 方案[11]進(jìn)行對(duì)比. 對(duì)于數(shù)據(jù)M, CT、CC分別表示數(shù)據(jù)標(biāo)簽規(guī)模、密文規(guī)模, CK、Crk、Csk分別表示數(shù)據(jù)加密密鑰規(guī)模、隨機(jī)密鑰規(guī)模和用戶私鑰規(guī)模. CID表示用戶標(biāo)識(shí)規(guī)模.
通信開銷主要包括文件上傳和文件下載兩部分, 文件上傳又分為初始文件上傳、非流行文件上傳和流行文件上傳三種情況. 對(duì)比結(jié)果如表2 所示, 本文方案不會(huì)增加額外的通信開銷. 對(duì)于文件的后續(xù)上傳, 無論是非流行文件還是流行文件, 都不需要重復(fù)上傳文件密文, 很大程度上節(jié)省了通信開銷.
存儲(chǔ)開銷對(duì)比主要包括云服務(wù)器端、額外服務(wù)器端和用戶端三部分. 我們?cè)O(shè)定數(shù)據(jù)M 為非流行數(shù)據(jù),其合法用戶數(shù)量為N. 對(duì)比結(jié)果如表3 所示, 本文方案無需額外服務(wù)器, 沒有額外的存儲(chǔ)開銷. 實(shí)現(xiàn)了對(duì)非流行數(shù)據(jù)的去重, 相同數(shù)據(jù)在云服務(wù)器端只存儲(chǔ)一份副本, 很大程度上節(jié)省了云服務(wù)端的存儲(chǔ)空間.
表2 通信開銷對(duì)比Table 2 Communication overhead comparison
表3 存儲(chǔ)開銷對(duì)比Table 3 Storage overhead comparison
我們對(duì)本文方案的計(jì)算時(shí)間開銷進(jìn)行了測(cè)試, 測(cè)試的主要過程包含標(biāo)簽生成、所有權(quán)驗(yàn)證、密鑰生成、數(shù)據(jù)加密和數(shù)據(jù)上傳. 方案中公鑰加密的數(shù)據(jù)體積較小, 計(jì)算時(shí)間忽略不計(jì). 根據(jù)方案特點(diǎn), 我們將不同體積的文件上傳至云服務(wù)器, 分三種情況進(jìn)行模擬實(shí)驗(yàn). 情況1 為初始文件上傳, 需要用戶對(duì)數(shù)據(jù)進(jìn)行雙層加密并上傳到云服務(wù)器, 該情況下的測(cè)試結(jié)果如圖2 所示. 情況2 為非流行文件的上傳, 此時(shí)需要用戶根據(jù)收到的隨機(jī)密鑰自行計(jì)算外層加密密鑰并存儲(chǔ), 不需重復(fù)上傳文件密文, 該情況下的測(cè)試結(jié)果如圖3 所示. 情況3 為流行文件上傳, 此時(shí)用戶只需對(duì)文件進(jìn)行收斂加密, 并保存收斂加密密鑰, 該情況下的測(cè)試結(jié)果如圖4 所示.
對(duì)三種情況的總時(shí)間開銷統(tǒng)計(jì)結(jié)果如圖5 所示. 其中情況1 (初始文件上傳) 下的總時(shí)間開銷較大, 情況2 (非流行文件的上傳) 和情況3 (流性文件的上傳) 下不需要上傳數(shù)據(jù), 只需要少量的計(jì)算時(shí)間. 整體來看, 本文方案在時(shí)間開銷方面具有明顯的性能優(yōu)勢(shì).
圖2 初始文件上傳Figure 2 Initial file uploading
圖3 非流行文件上傳Figure 3 Unpopular file uploading
本文中去重效率的定義與其他主流方案[20]相同, 定義為用戶需外包給CSP 存儲(chǔ)的數(shù)據(jù)中重復(fù)數(shù)據(jù)體積所占總數(shù)據(jù)體積的比值.
為了模擬真實(shí)的應(yīng)用場(chǎng)景, 在系統(tǒng)初始化階段, 隨機(jī)產(chǎn)生8000 個(gè)不同的文件, 文件大小隨機(jī), 上限為500 MB. 隨機(jī)選取3000 個(gè)不同的文件存儲(chǔ)到云服務(wù)器中, 為每個(gè)文件設(shè)定隨機(jī)的合法用戶數(shù)量. 設(shè)定流行度閾值為5, 并使得非流行數(shù)據(jù)占數(shù)據(jù)總量的比例不低于1/3. 測(cè)試方案的去重效率實(shí)驗(yàn)中, 隨機(jī)選擇指定數(shù)量的文件上傳到CSP, 統(tǒng)計(jì)方案的去重效率. 將本文方案與PerfectDedup 方案[8]和Stanek 方案[11]進(jìn)行對(duì)比, 數(shù)據(jù)去重效率實(shí)驗(yàn)結(jié)果如圖6 所示. 三個(gè)方案都對(duì)數(shù)據(jù)進(jìn)行流行度劃分, Stanek 方案和PerfectDedup 方案只對(duì)流行數(shù)據(jù)去重, 但后者基于數(shù)據(jù)塊去重, 去重效率高于前者. 本文方案實(shí)現(xiàn)了對(duì)非流行數(shù)據(jù)的去重, 同一數(shù)據(jù)副本在云服務(wù)器端只存儲(chǔ)一份, 數(shù)據(jù)去重效率高于其他兩個(gè)方案.
圖4 流行文件上傳Figure 4 Popular file uploading
圖5 方案總時(shí)間開銷Figure 5 Total time cost
圖6 去重效率對(duì)比Figure 6 Data deduplication ratio comparison
將本文提出的方案與ClouDedup[5]、PerfectDedup[8]、Stanek[11]在方案特點(diǎn)方面進(jìn)行對(duì)比, 結(jié)果如表4 所示. 本文方案針對(duì)加密數(shù)據(jù)進(jìn)行去重, 無需可信第三方, 對(duì)用戶數(shù)據(jù)進(jìn)行流行度劃分, 實(shí)現(xiàn)了對(duì)非流行數(shù)據(jù)的去重, 可防止非授權(quán)用戶下載.
表4 方案特點(diǎn)對(duì)比Table 4 Feature comparison
本文提出了一種基于雙層加密的云存儲(chǔ)數(shù)據(jù)去重方案, 可實(shí)現(xiàn)云存儲(chǔ)中加密數(shù)據(jù)的高效去重. 擺脫了第三方服務(wù)器的束縛, 去重方案更具有實(shí)用性. 通過劃分?jǐn)?shù)據(jù)流行度, 對(duì)隱私程度較高的非流行數(shù)據(jù)采用雙層加密, 對(duì)隱私程度不高的流行數(shù)據(jù)采用收斂加密. 實(shí)現(xiàn)了非流行數(shù)據(jù)的去重, 進(jìn)一步提高了去重效率.添加了額外的安全機(jī)制, 可有效的防止非授權(quán)用戶下載數(shù)據(jù), 保證云服務(wù)器上用戶數(shù)據(jù)的安全性. 分析并討論了方案的安全性, 實(shí)驗(yàn)結(jié)果表明本文方案具有較高的執(zhí)行效率.