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