王杰昌,張 平,常琳林,趙新輝
(1.鄭州大學體育學院 計算機教研室,河南 鄭州 450044;2.河南科技大學 數(shù)學與統(tǒng)計學院,河南 洛陽 471023)
云存儲有很多優(yōu)點,但也面臨安全、性能、質量等[1-5]問題和挑戰(zhàn)。對于用戶來說,云存儲服務器是半可信的,所以Ali等[6]提出云環(huán)境數(shù)據(jù)安全系統(tǒng)(DaSCE),通過引入半可信第三方(密鑰管理器)對數(shù)據(jù)加密后再上傳至云存儲服務器;Akhila等[7]也提出了云環(huán)境下基于半可信第三方的數(shù)據(jù)安全系統(tǒng)協(xié)議。雖然他們均認為密鑰管理器是半可信的并做出防范,但密鑰管理器仍可截獲并解密用戶數(shù)據(jù),且方案缺少對數(shù)據(jù)消費者的訪問控制。
Xia等[8]、SHIRAISHI等[9]、劉鵬等[10]均提出各自的均視權威機構為完全可信的ABE方案,過于理想化。雷麗楠等[11]及楊小東等[12]提出多授權中心ABE方案,李龍等[13]提出去中心化ABE機制,雖視權威機構(授權中心)為半可信的,但卻無法防止多數(shù)或全部權威機構的串謀攻擊。
本文在現(xiàn)有云存儲應用基礎上,借鑒文獻[6],引入半可信權威機構——密鑰生成中心(可由網(wǎng)絡運營商提供)對數(shù)據(jù)進行加密上傳,同時完全摒除來自密鑰生成中心方的安全威脅,提出可證明安全的用戶云數(shù)據(jù)訪問控制協(xié)議(user cloud data access control,UCDAC),實現(xiàn)了用戶文件加密上傳、好友下載請求、用戶授權好友下載等完備的訪問控制功能。
一個參與者稱為半可信的,它可以正確地遵守協(xié)議的指令,但在協(xié)議執(zhí)行期間能得到中間結果,并企圖根據(jù)中間結果得到額外信息。


如果α=β, 則稱四元組 (g1,g2,u1,u2) 為DH四元組。
利用G上的雙線性映射e可容易解決DDH問題:已知 (g1,g2,u1,u2)∈G4, 則
α=β?e(g1,u2)=e(g2,u1)
CDH問題:已知 (g,ga,h)∈G3, 計算ha。
如果G上的DDH問題是容易的,但CDH是困難的,G稱為GDH群。
大整數(shù)分解問題(IF問題)[15]:奇合數(shù)N,至少有兩個素因子,求素數(shù)q滿足q|N。

如圖1所示,UCDAC模型使用四元組
(1)Us表示用戶(數(shù)據(jù)擁有者),將其數(shù)據(jù)文件通過密鑰生成中心加密后存儲在云端。
(2)KGC表示密鑰生成中心(權威機構),生成部分密鑰,為用戶提供部分加密和解密服務。功能與前述文獻中的密鑰管理器或加密服務器類似,但使用方法又有所不同。
(3)Cloud表示云,存儲Us加密的文件及相關數(shù)據(jù)。
(4)Fr表示好友(數(shù)據(jù)消費者),需要用戶的云數(shù)據(jù),向用戶申請文件下載授權。

圖1 UCDAC模型
本文中的UCDAC系統(tǒng)將面臨3種類型的敵手攻擊,將這3種敵手分別簡寫為A1、A2、A3這3類。
A1:此類敵手掌握部分密鑰,輔助用戶進行加密解密數(shù)據(jù)文件,但是仍可能會攻擊系統(tǒng)中其它實體間的通信,截獲并嘗試解密用戶數(shù)據(jù)文件;A1為具有半可信KGC能力的敵手。
A2:此類敵手存儲用戶的加密數(shù)據(jù)文件,但是仍可能會攻擊系統(tǒng)中其它實體間的通信,并嘗試解密其存儲的用戶數(shù)據(jù)文件;A2為掌握半可信Cloud資源的敵手。
A3:此類敵手向用戶發(fā)出文件下載授權請求,但仍可能會偽造用戶文件授權,不經用戶同意直接下載并解密用戶數(shù)據(jù)文件;A3類敵手為半可信的Fr。
下面通過敵手A1、A2與挑戰(zhàn)者之間的交互游戲來定義協(xié)議中加密算法的IND-CCA安全:
(1)初始化。挑戰(zhàn)者產生系統(tǒng)UCDAC,敵手A獲得UCDAC的公開鑰。
(2)詢問。敵手A向挑戰(zhàn)者做解密詢問,挑戰(zhàn)者解密后,將明文給敵手A。
(3)挑戰(zhàn)。敵手A輸出兩個長度相同的消息F0和F1, 再從挑戰(zhàn)者接受密文Fβ, 其中隨機值β←{0,1}。
(4)猜測。敵手輸出β′, 如果β′=β, 則敵手A攻擊成功。

通過敵手A3與挑戰(zhàn)者之間的交互游戲來定義協(xié)議中的數(shù)字簽名(即授權)在適應性選擇消息攻擊下具有存在性不可偽造性:
(1)挑戰(zhàn)者運行系統(tǒng)得到公私鑰,選擇一個隨機函數(shù)H。敵手A3得到公開鑰。
(2)敵手A3可以向挑戰(zhàn)者詢問H(·)和對消息的授權。
(3)A3輸出一個消息及其簽名,其中A3沒有向挑戰(zhàn)者請求過該消息的簽名。如果簽名(授權)通過驗證,則敵手攻擊成功。
定義2 如果任何多項式有界時間的攻擊者A3攻破上述安全模型的優(yōu)勢Adv=|Pr[Exp=1]| 是可忽略的,那么我們就說本文協(xié)議中的授權在適應性選擇消息攻擊下具有存在性不可偽造性(EUF-CMA安全)。
引入密鑰生成中心KGC,用戶利用其將文件加密后再上傳至Cloud,可防止Cloud泄露用戶數(shù)據(jù),比普通的云盤應用更安全;同時,KGC輔助用戶加密解密數(shù)據(jù),分擔了用戶的計算壓力。
實際應用中,KGC可由網(wǎng)絡運營商(如電信、聯(lián)通、移動等)提供,文獻[16]將其視為可信的,但網(wǎng)絡運營商同樣也會出于商業(yè)目的解密并泄露用戶數(shù)據(jù),所以將KGC視為半可信的更具實用性。本節(jié)使用的相關符號及含義見表1。

表1 符號及含義




圖2 UCDAC協(xié)議架構
(2)用戶Us收到好友Fr的請求后,若不同意則拒絕;若同意其下載文件,則用戶Us隨機選擇xKGC,xcl, 計算yKGC=gxKGC,ycl=gxcl
sigKGC=H(RKGC)sk+xKGC
(1)
sigcl=H(Rcl)sk+xcl
(2)
然后
,
這里EPK(·) 及DSK(·) 為IND-CCA安全的公鑰密碼算法。

(6)KGC判斷 (g,H(RKGC),yKGCpk,sigKGC) 是否為DH四元組。若不是,則拒絕請求。若是,授權驗證通過,則KGC利用私鑰di解密 (siri)ei, KGC將siri返回給Fr。Fr利用ri分解出si, 最終 {{Fi}si}si=Fi。
云端Cloud根據(jù)從用戶Us處得到的ycl,Rcl,pk,H(·), 以及從Fr處獲得sigcl, 計算
(g,H(Rcl),yclpk,sigcl)= (g,H(Rcl),gxclgsk,H(Rcl)sk+xcl)= (g,H(Rcl),gsk+xcl,H(Rcl)sk+xcl)
(3)
所以 (g,H(Rcl),yclpk,sigcl) 為DH四元組,授權sigcl為真。
密鑰生成中心KGC根據(jù)從用戶Us處得到的yKGC,RKGC,pk,H(·), 以及從Fr處獲得sigKGC計算
(g,H(RKGC),yKGCpk,sigKGC)= (g,H(RKGC),gxKGCgsk,H(RKGC)sk+xKGC)= (g,H(RKGC),gsk+xKGC,H(RKGC)sk+xKGC)
(4)
所以 (g,H(RKGC),yKGCpk,sigKGC) 為DH四元組,授權sigKGC為真。
定理1 在IF假設成立的條件下,對于A1類敵手的攻擊,本協(xié)議的文件加密算法是IND-CCA安全的。
證明:
A1類敵手即半可信的KGC,可能會通過攻擊Fr和Cloud之間的通信截獲Pi,(siri)ei,{Fi}si, 并嘗試解密得到用戶文件Fi; 也可能會通過攻擊Fr和Us之間的通信截獲EPK(ri), 并嘗試解密得到用戶的盲化因子ri。 下面將分別對這兩種可能的情形進行證明。
情形1:A1攻擊Fr和Cloud之間的通信
采用反證法,假設一個IND-CCA敵手A1(KGC)以不可忽略的優(yōu)勢ε攻破UCDAC協(xié)議中的加密算法,那么一定存在一個模擬器B1至少以不可忽略的優(yōu)勢2ε解決IF問題。
令C=(C1,C2)=((siri)ei,{Fi}si)
(ni,ei,di) 是已知的, (si,ri) 是未知的;
A1→(Fi0,Fi1);
β←{0,1},C*=((siri)ei,{Fiβ}si);
β′←A1(ni,ei,di,C*);
如果β′=β則返回1,否則返回0。

(5)
下面證明UCDAC協(xié)議可歸約為IF(大整數(shù)分解)問題。


(3)解密詢問




(6)


(7)
所以
(8)
即Pr[G]≥2ε。
情形2:A1攻擊Fr和Us之間的通信
由于EPK(·) 為IND-CCA安全的公鑰密碼算法,所以A1攻破加密算法的優(yōu)勢也是可忽略的。
綜上可得,UCDAC協(xié)議中的加密算法是IND-CCA安全的,定理證畢。
定理2 在IF問題困難的情況下,對于A2的攻擊,本協(xié)議的文件加密算法是IND-CCA安全的。
證明:由定理1可知在IF假設成立的條件下,對于半可信KGC(A1)的攻擊,本協(xié)議中的加密算法是IND-CCA安全的。
并且A2(即半可信Cloud)并不知道KGC的私鑰di, A2破解Fi的難度是大于A1的。
本定理剩余的證明過程與定理1的類似,不再贅述。
證畢。
定理3 設H是一個隨機預言機,如果G是一個GDH群,則本協(xié)議中的簽名(即授權)在適應性選擇消息攻擊下具有存在性不可偽造性(EUF-CMA安全)。
證明:
本協(xié)議中有兩個簽名sigKGC,sigcl, 但是它們的構造方法是一樣的,我們只需證明他們的簽名算法在適應性選擇消息攻擊下具有存在性不可偽造性即可,下面為了表示方便及更具普遍性,我們把協(xié)議中的xcl,xKGC,ycl,yKGC,Rcl,RKGC,sigcl,sigKGC去掉下標KGC和cl,將協(xié)議中的簽名算法按如下方式表示出來:pk=gsk,y=gx, 令h=H(R),sig=hsk+x。

模擬器B3已知 (g,u=ga+b,h), 以A3(攻擊簽名算法)作為子程序,目標是計算ha+b。
為了簡化,且不失一般性,假設:
(1)A3不會對隨機預言機發(fā)起兩次相同的詢問;
(2)如果A3請求消息R的一個簽名,則它之前已經詢問過H(R);
(3)如果A3輸出 (R,sig), 則它之前已經詢問過H(R)。
B3將u=ga+b看作其公開鑰,a+b為秘密鑰(B3其實不知道a+b),則ha+b為B3對某一消息的簽名,即sig=H(R)=ha+b, 其中 (R,sig) 由A3偽造產生。B3可將h作為某一消息RJ的哈希值,但B3并不知道A3對哪個消息偽造簽名,所以要猜測。
B3為了將問題 (g,u=ga+b,h) 隱藏起來,就選擇一個隨機數(shù)v∈Zq, 以u·gv作為公開要發(fā)送給A3。
歸約過程如下:
(1)B3將群G的生成元g及公開鑰u·gv∈G發(fā)送給A3,其中u·gv=ga+b+v對應的秘密鑰是a+b+v。 此外隨機選擇J∈{1,…,qH} 作為它的一個猜測值:A3這次的H詢問對應著A3最終的偽造結果。
(2)H詢問(最多進行qH次)。B3建立一個列表L3,初始為空,元素類型為四元組 (RI,wI,cI,tI)。 當A3發(fā)起第I次詢問(設詢問值為RI)時,B3回答如下:①如果L3中已有RI對應的項 (RI,wI,cI,tI), 則以wI應答;②否則,B3隨機選擇cI,tI∈Zq
如果I=J,則計算wI=hgcI+tI∈G;
否則,計算wI=gcI+tI∈G。
以wI作為對該詢問的應答,并在表中存儲 (RI,wI,cI,tI)。
(3)簽名詢問(最多進行qH次)。當A3請求消息R的一個授權時,設I滿足R=RI,RI表示第I次H詢問的詢問值。B3如下回答該詢問:①如果I≠J, 則L3中有一個四元組 (RI,wI,cI,tI), 計算sigI=(ugv)cI+tI應答A3。因為
(9)
所以sigI為以秘密鑰a+b+v對RI的簽名;②如果I=J,則模擬中斷。


(10)
如果B3的猜測是正確的,且A3輸出一個偽造,那么B3就在第(4)步解決了CDH問題。
B3成功由以下3個事件決定:①E1:B3在A3的簽名詢問中不中斷;②E2:A3產生一個有效的消息-簽名對 (R,sig); ③E3:E2發(fā)生且R對應的四元組 (RI,wI,cI,tI) 中下標I=J
(11)
(12)
所以

(13)

如表2所示,文獻[10-12]、文獻[16]和本協(xié)議將解密過程中計算量較大的運算外包出去,能有效減少用戶終端的計算開銷。

表2 訪問控制協(xié)議功能特征比較
文獻[16]利用HLPN、SMT-Lib及Z3解算器驗證了其協(xié)議的安全性,文獻[8-13]都基于相關困難問題假設,并在安全模型下給出形式化證明,證明所提出的協(xié)議是IND-CPA安全的,而本文基于IF問題困難假設,證明協(xié)議中的加密算法是IND-CCA安全的,比其它文獻的安全性更高。另外,本協(xié)議中的簽名算法也已證明在適應性選擇消息攻擊下具有存在性不可偽造性。
文獻[16]和ABE類協(xié)議[8-10]均假定權威機構KGC是完全可信的,過于理想化,不切實際;雖然多授權中心ABE類協(xié)議[11,12]及去中心化ABE類協(xié)議[13]假定權威機構是半可信的,但是它們卻無法防止多數(shù)或全部權威機構的合謀攻擊,仍不夠安全。
本文不存在上述問題,首先本協(xié)議視權威機構KGC為半可信的,更符合實際應用場景;其次,無論是在上傳階段的文件加密,還是在下載階段的文件解密,均需要用戶掌握的盲化因子ri, 未經用戶授權,任何實體(包括KGC)均無法獲取用戶的盲化因子ri, 即使實體間聯(lián)合發(fā)動合謀攻擊也不可行,更無法進一步解密用戶文件,且本協(xié)議的安全性已證明,所以本文更具安全性、實用性和應用前景。
我們對本協(xié)議進行了仿真實驗,用兩臺服務器分別充當云存儲和密鑰生成中心,部署在某大學里,用兩臺筆記本電腦分別充當用戶和好友,部署在兩個不同的家庭里。其中,云服務器的配置為:16核CPU,64 GB內存,8 TB存儲,IP地址為59.69.208.201;密鑰生成中心服務器性能參數(shù)為:32核CPU,128 GB內存,1 TB存儲,IP地址為59.69.208.202;這兩臺筆記本電腦硬件配置均為:英特爾酷睿i3-4030U處理器、4 GB內存、機械硬盤,用戶Us和好友Fr的家庭網(wǎng)絡帶寬均為15 M。本協(xié)議分別選用大小為1 KB、3 KB、10 KB、30 KB、100 KB、300 KB、1 MB、3 MB、10 MB的文件進行上傳和下載操作,圖3和圖4是用MATLAB做出的仿真。

圖3 用戶文件上傳階段各操作時間開銷

圖4 好友Fr文件下載階段各操作時間開銷
仿真圖3和圖4中,橫軸為文件大小,單位為KB,刻度值為100,101,102,103,104,105; 縱軸為時間開銷,單位為s,其中圖3的刻度值為10-2,10-1,100,101, 圖4的刻度值為10-2,10-1,100,101,102。
從圖3可以看出,在用戶文件上傳階段,隨著文件的增大,文件傳輸時間在不斷增大且逼近10 s,但密鑰傳輸和加密運算時間幾乎一直處于0.15 s以下,維持不變或變化較小。從圖4可以看出,在好友文件下載階段,隨著文件的增大,文件傳輸時間在不斷增大以致最后超過10 s,但生成授權時間、驗證授權時間、密鑰傳輸時間、解密運算時間幾乎一直處于0.15 s以下,維持不變或變化較小。
由仿真結果可知,本協(xié)議較現(xiàn)有云存儲應用增加的運算(如生成授權、驗證授權、密鑰傳輸、加/解密運算等)時間開銷很小,且隨著文件的增大變化較小,本協(xié)議主要的時間開銷就是文件傳輸時間(即現(xiàn)有云存儲應用運行的時間開銷),與現(xiàn)有云存儲應用相比較,用戶體驗相差無幾。
UCDAC是在現(xiàn)有云存儲應用(例如云盤)基礎上引入半可信KGC而提出的改進協(xié)議,較現(xiàn)有云存儲應用增加了一些密碼運算,可以更安全地實現(xiàn)用戶對其文件的訪問控制,從而提升了協(xié)議的安全性。因此,本協(xié)議具有很好的理論與應用價值,可為目前流行的云存儲應用升級服務提供有意義的參考。
云數(shù)據(jù)的安全問題影響著云技術應用的發(fā)展,合理有效的訪問控制方法能夠提高用戶對云存儲服務的信任。本文基于目前流行的云存儲技術(例如云盤)提出一種訪問控制協(xié)議,通過改進盲化因子的用法,有效地阻止了密鑰生成中心截獲并解密用戶數(shù)據(jù),并克服了ABE類協(xié)議因權威機構權力過大導致的密鑰濫用、隱私數(shù)據(jù)泄露、招致合謀攻擊等問題,尤其適合(個人或企業(yè))用戶存儲比較隱私的數(shù)據(jù),具有更強的安全性、實用性和可操作性,可以快速投入實際應用。