溫琳雅,儀張倩,劉 行
(長安大學 信息工程學院,西安 710064)
云存儲服務(wù)在個人和組織環(huán)境中,隨著云用戶數(shù)的增加,冗余數(shù)據(jù)量也隨之增加.眾所周知,云服務(wù)提供商通常利用跨用戶數(shù)據(jù)去重復(fù)來盡量減少存儲開銷,允許云服務(wù)器檢測兩個或多個用戶上傳同一文件的副本,并且只存儲該文件的一個副本.
云服務(wù)提供商自由訪問用戶數(shù)據(jù),這就要求云用戶充分信任云服務(wù)提供商做正確的事情.傳統(tǒng)的加密算法將文件的相同副本加密成完全獨立的密文,這使得重復(fù)刪除的工作復(fù)雜化.Douceur 等人[1]提出的收斂加密(CE)的技術(shù),CE是一種確定性加密方案,使得文件的相同副本被加密成相同的密文.
雖然CE 提供了一種簡單而有效的方法來在數(shù)據(jù)隱私和加密重復(fù)數(shù)據(jù)消除的功能要求之間取得平衡,但它有安全性和性能限制.利用CE的概念,Bellare 等人[2–4]構(gòu)建了一個名為消息鎖定加密(MLE)的新加密原語,以方便在加密數(shù)據(jù)上的重復(fù)數(shù)據(jù)消除,他們還為MLE 定義了兩個安全要求:隱私性和標簽一致性.
在本文中,我們提出了一種隨機、安全、跨用戶重復(fù)數(shù)據(jù)消除方案,請求上傳文件的用戶需要與云服務(wù)器進行交互,以確保同一文件的副本被加密到同一密文中,同時實現(xiàn)抵抗暴力攻擊.具體地說,擁有相同文件副本的不同用戶通過共享相同的隨機值生成文件加密密鑰,因此只有具有該文件相同副本的用戶才能獲得隨機值并計算正確的加密密鑰.
Millier[5]基于橢圓曲線提出了橢圓曲線密碼體制,Fp被設(shè)定為階為q有限域,有限域Fp上的橢圓曲線E被定義為滿足等式y(tǒng)2=x3+ax+bmodp上所有點(x,y) 集合;其中a,b∈Fp且 4a3+27b2≠0.無窮遠點O和橢圓曲線E上其他點形成一個循環(huán)加法群 G,則橢圓曲線上的標量乘是kP=P+P+···+P(k times),這里k∈Z*q.
Fan 等人在2014年提出布谷過濾器(Cuckoo filter),這是一種用于近似集合查詢的新型數(shù)據(jù)結(jié)構(gòu)[6].
本文提出了動態(tài)布谷鳥濾波器(DCF),以支持可靠的刪除操作和彈性容量的動態(tài)集.影響DCF 設(shè)計的效率有兩個因素,首先,DCF 數(shù)據(jù)結(jié)構(gòu)是可擴展的,使動態(tài)集空間的表示更有效.其次,DCF 使用壟斷指紋來表示一個項,并保證可靠的刪除操作.實驗結(jié)果表明,與現(xiàn)有的先進設(shè)計相比,DCF的內(nèi)存成本降低了75%,構(gòu)建速度提高了50%,會員查詢速度提高了80%.
布谷鳥濾波器一般是成對的哈希函數(shù),一個是記錄的位置,另一個是備用位置,這個備用位置是處理碰撞時用的.
HA:G→{0,1}L HB:G→{0,1}L L
使用和(一般為64 bits)計算文件對應(yīng)的位置.
此外,在遷移過程中,存儲的是原始數(shù)據(jù)的哈希值ξx而不是原始數(shù)據(jù)x帶來了挑戰(zhàn).為了解決這個問題,利用了一種新的散列方法,稱為部分密鑰布谷鳥散列,它通過根據(jù)當?shù)谝粋€陣列地址和要踢出的哈希值進行異或操作來計算替代位置的地址.具體來說,兩個陣列的地址可計算為:
如果在添加新元素時,兩個哈希列表均被偶然的占據(jù),則會導致假陽性的結(jié)果.可計算假陽性概率的上限為:
橢圓曲線離散對數(shù)問題(ECDLP):給定P,Q∈G為橢圓曲線上E的點,P是G的生成元,這里a∈Z*q且未知,滿足Q=aP,ECDL 問題是計算a∈Z*q.
該系統(tǒng)模型圖如圖1所示,參與者包括3 個實體:云服務(wù)器(CSP),域服務(wù)器(KS),用戶(U).
圖1 網(wǎng)絡(luò)模型
云服務(wù)提供商CSP:表示誠實又好奇的實體機構(gòu),負責系統(tǒng)參數(shù)的生成.
區(qū)域服務(wù)器KSi:表示誠實又好奇的實體機構(gòu),負責生成用戶的文件標識和區(qū)域內(nèi)部去重.
用戶Ui:生成文件標識進行去重.
我們的目標是在所提方案中實現(xiàn)以下安全目標.
(1)數(shù)據(jù)機密性:任何對手,包括未經(jīng)授權(quán)的用戶U、CSP或KS,都不能獲得加密數(shù)據(jù)的明文信息,除非他們獲得加密數(shù)據(jù)的密鑰[7].
(2)數(shù)據(jù)完整性[8]:所提方案應(yīng)保護數(shù)據(jù)完整性免受對手的影響.也就是說,它應(yīng)該允許U驗證從云存儲器下載的數(shù)據(jù)是否沒有被更改.
(3)可擴展性:所有的密鑰服務(wù)器都不應(yīng)參與收斂的密鑰生成過程,這會導致系統(tǒng)的性能下降.
所提方案包含6 個階段:系統(tǒng)初始化階段、用戶注冊階段、用戶文件標簽產(chǎn)生階段、去重階段、數(shù)據(jù)完整性校驗、用戶動態(tài)更新.
系統(tǒng)初始化:該算法由CSP執(zhí)行.
(1)給定一個安全參數(shù) λ,基于定義在有限域Fp上的橢圓曲線E,選擇一個階為q的循環(huán)加法群 G,P是群 G的生成元.
(2)CSP隨機選取3 個單向哈希函數(shù)H1:{0,1}*→Z*q,H2:G→Z*q,H3:G→Z*q.公開系統(tǒng)參數(shù)params={q,G,P,H1,H2,H3}.
區(qū)域服務(wù)器參數(shù)生成:區(qū)域服務(wù)器KSi(i∈(1,N),共有N個區(qū)域) 隨機選擇si∈Z*q作為私鑰,計算公鑰pki=siP,并將公鑰公開.
用戶注冊:用戶選擇xi∈Z*q作為用戶的密鑰,并計算公鑰 Xi=xiP,并將公鑰公開.
給定系統(tǒng)參數(shù)params,區(qū)域公鑰pki、用戶的數(shù)據(jù)mi,執(zhí)行以下步驟生成文件標簽.
(1)用戶Ui隨 機選擇ai∈Z*q,計算M1=aisiP+H1(mi)P,Ai=ai·P.用戶Ui將(M1,Ai,Xi) 發(fā)送給所在區(qū)域的服務(wù)器KSi.
(2)區(qū)域服務(wù)器KSi隨機選擇ri∈Z*q,計算M2=M1-siAi=H1(mi)P.在用戶區(qū)域內(nèi)去重過程中,區(qū)域服務(wù)器KSi限制規(guī)定時間內(nèi)進行有限次詢問,例如十分鐘內(nèi)進行20 次詢問.為了防止區(qū)域服務(wù)器發(fā)生單點故障,我們在一個區(qū)域內(nèi)部署3 個服務(wù)器.
(3)生成標簽:區(qū)域服務(wù)器KSi計算:H3(M2),哈希值H3(M2) 將用于去重工作.
去重工作包含兩個階段,區(qū)域內(nèi)部去重、跨區(qū)域去重.區(qū)域內(nèi)部去重由區(qū)域服務(wù)器執(zhí)行,跨區(qū)域去重由CSP執(zhí)行.
(1)區(qū)域內(nèi)去重階段區(qū)域服務(wù)器KSi將H3(Tagi) 與本區(qū)域保存的哈希列表進行對比.區(qū)域內(nèi)去重工作存在兩種情況:
第1 類,本區(qū)域內(nèi)存在重復(fù),即本區(qū)域內(nèi)存在Tagi滿足Tagi=Tagj,意味著在之前已經(jīng)有處在同一個區(qū)域的用戶上傳了與用戶Ui相同的文件,則用戶Ui為后續(xù)上傳者,因此,用戶Ui不需要上傳密文.
區(qū)域服務(wù)器KSi向用戶Ui發(fā)送‘同區(qū)域重復(fù)文件存在||不需要上傳文件’的指令,區(qū)域服務(wù)器KSi計算:Ti=H3(M2).區(qū)域服務(wù)器KSi將用戶公鑰、用戶文件標識:‘ (Xi,Ti)||重復(fù)’提交給CSP,CSP將用戶Ui的公
鑰Xi添加到文件第一個上傳者的密文列表中.
第2 類,如果本區(qū)域內(nèi)文件不存在重復(fù),意味著在同一個區(qū)域的用戶沒有上傳過與用戶Ui相同的文件,區(qū)域服務(wù)器KSi將H3(Tagi) 保存在本域的哈希列表中,區(qū)域服務(wù)器KSi將‘ (i,Xi,Ti)||去重’提交給CSP進行跨區(qū)域去重.
(2)區(qū)域間去重階段,CSP收到來自區(qū)域服務(wù)器KSi的‘ (Xi,Ti)||去重’指令,CSP計算哈希值HA(Ti)、HB(Ti),CSP利用布谷鳥服務(wù)器進行對比查詢這兩個哈希值在濾波器列表中映射的位置是否為空,如果映射位置為空則該文件屬于無重復(fù)文件,任選一個位置插入Ti,如果映射的位置不都為空則與Ti進行對比,存在與Ti相同數(shù)值,則該文件在云上已有重復(fù)存在.去重后存在兩種情況:
第1 類,跨區(qū)域不存在重復(fù)文件,則表示用戶Ui為其文件的第一上傳者,用戶需要加密文件并上傳.云向區(qū)域服務(wù)器發(fā)送‘Ti||上傳文件’指令,由區(qū)域服務(wù)器KSi轉(zhuǎn)發(fā)給用戶.
第2 類,跨區(qū)域存在重復(fù)文件,意味著在之前已經(jīng)有處在不同區(qū)域的用戶上傳了與用戶Ui相同的文件,則用戶Ui為后續(xù)上傳者,不需要上傳加密文件.
CSP向區(qū)域服務(wù)器KSi發(fā)送‘Ti||文件重復(fù)’,CSP添加用戶Ui的公鑰Xi添加進第一上傳者的密文條目.用戶去重工作完成后,CSP向發(fā)生重復(fù)的用戶發(fā)送‘不需要上傳文件’指令時,并向用戶發(fā)送文件第一上傳者的密鑰輔助參數(shù)Ci2.
用戶Ui在完整性校驗過程中利用已保存的H1(mi) 計算:ai=DecH1(mi)(Ci2),cki′=H2(ai).用戶Ui保存對稱密鑰cki′.用戶Ui保存對稱密鑰cki′,形如:
用戶Ui收到上傳文件指令后,計算對稱加密密鑰、文件密文、輔助密文:
其中,cki用于加密文件mi,Ci2用于輔助后續(xù)去重工作中與用戶Ui具有重復(fù)文件的用戶生成解密的對稱密鑰.用戶Ui將密文 (Ci1,Ci2,Ti) 發(fā)送給區(qū)域服務(wù)器KSi,服務(wù)器KSi將(Ci1,Ci2,Ti) 轉(zhuǎn)發(fā)給CSP.云將(Ci1,Ci2)添加到去重階段已保存的條目 (i,Ti,Xi)中,保存為(i,Ci1,Ci2,Ti,Xi).
用戶Ui向云服務(wù)器提交‘下載||Ti’,云檢查Ti相對應(yīng)的密文列表是否具有用戶的公鑰Xi,云隨機選擇r∈Z*a計算EncXi(r),發(fā)送給用戶Ui.用戶收到EncXi(r)后利用自己的進行解密得到r,用戶將r發(fā)送給云,云收到r后進行檢驗,相等的情況下云將密文發(fā)送給用戶.云服務(wù)器向用戶發(fā)送相應(yīng)的(Ci1,Ci2).
用戶在下載請求后將收到密文 (Ci1,Ci2),用戶Ui可以利用已保存的私鑰cki,下載文件進行解密:mi=Deccki(Ci1).
當有用戶想要刪除文件時,需要進行密鑰的更新,CSP從Tj對應(yīng)的密文條目中刪除用戶公鑰Xj.
數(shù)據(jù)的保密性和完整性是對加密數(shù)據(jù)的重復(fù)數(shù)據(jù)消除研究中重要的安全問題.因此,在這部分,我們討論如何實現(xiàn)更高層次的安全性,且比其他方案的設(shè)置更簡單.
內(nèi)部攻擊通常被定義為服務(wù)器試圖獲得明文[9–11],在我們的方案中,由于服務(wù)器和云是半信任的,它們將按指定的方式執(zhí)行數(shù)據(jù)的去重復(fù),但出于好奇,他們試圖獲得明文.具體地,區(qū)域服務(wù)器為每個數(shù)據(jù)存儲哈希值H3(Tagi),云服務(wù)器存儲密文 (Ci1,Ci2).基于橢圓曲線離散對數(shù)難題,服務(wù)器無法通過M2=M1-siAi=H1(mi)P,Ai=ai·P獲得文件的哈希值H1(mi)和加密密鑰ai,從而服務(wù)器無法解密文件密文.
本節(jié)與以前的去重方案的安全屬性和計算成本方面的比較.
(1)安全屬性比較
方案的安全屬性比較如表1.
表1 安全屬性比較
(2)計算代價比較
本節(jié)將比較所提方案與現(xiàn)有去重方案的計算代價和通信代價.
基于MIRACL Crypto SDK,仿真實驗在CPU為英特爾i7 (2.53 GHz),內(nèi)存為8 GB的64 位Window 7 操作系統(tǒng)下進行.平均運行時間如表2所示.表3和表4給出了文獻[12–16]和本文提出的方案計算代價比較.
表2 基本操作的執(zhí)行時間
表3 該方案與其他方案用戶計算代價比較
表4 通信代價比較 (bits)
由表3可知,在文件標簽上傳階段,所提方案計算代價為1.16 ms,與已有的數(shù)據(jù)去重方案[12–16]相比,計算代價最小,分別降低了59.15%,95.70%,95.70%,95.97%和72.76%.
在文件加密階段中,所提方案加密文件計算代價為0.004 8 ms,與已有的數(shù)據(jù)去重方案[12–14,16]相比,分別降低了99.91%,99.96%,99.96%和99.96%,與方案[15]相比,計算代價近乎相同,但方案[15]不能滿足訪問控制和用戶的動態(tài)更新.
密文解密階段,在非上傳者解密2 KB 文件過程中,所提方案解密文件計算代價為0.39 ms,與已有的數(shù)據(jù)去重方案[12–14,16]相比,分別降低了86.26%,96.31%,98.33%和99.96%,盡管方案[15]的非上傳者在文件解密階段具有更低的計算代價,但所提方案在功能方面優(yōu)于方案[15].
由圖2可知,在文件標簽上傳階段,所提方案通信代價為320 bits,與已有的數(shù)據(jù)去重方案[12–16]相比,通信代價最小,分別降低了68.75%,79.17%,79.17%,68.75%和68.75%.
圖2 通代價比較
文件密文上傳階段,在密文大小相同的情況下,對輔助參數(shù)的通信代價進行比較.由圖2所知,與已有的數(shù)據(jù)去重方案[12–16]相比,所提方案在密文上傳階段的通信代價最小,所提方案分別降低了89.58%,84.38%,87.50%,68.75%和72.97%.
文件密文下載階段,與已有的數(shù)據(jù)去重方案[12–16]相比,所提方案的通信代價最小,所提方案分別降低了84.38%,84.38%,87.50%,68.75%和72.97%.
由以上分析表明,所提方案在實際應(yīng)用中具有更好的適用性.
本文提出了一種隨機、安全、服務(wù)器端去重方案.通過共享用于為持有相同文件副本的用戶生成加密密鑰的隨機值,可以抵抗來自惡意云服務(wù)器和用戶的暴力攻擊.在所提方案中,昂貴和復(fù)雜的計算由云服務(wù)器處理,因此在客戶端發(fā)生的計算開銷較少.安全性分析表明,該方案提供了一個更簡單的去重復(fù)框架,具有更高的安全性.性能評估的結(jié)果表明,本文方案在客戶端產(chǎn)生最小的計算開銷,這是足夠輕量級的.