孫 力, 韓金倉
(蘭州財(cái)經(jīng)大學(xué) a. 隴橋?qū)W院, b. 信息工程學(xué)院, 蘭州 730101)
云存儲(chǔ)服務(wù)隨著云計(jì)算的快速發(fā)展已被越來越多的用戶應(yīng)用,由于在此存儲(chǔ)形式下的數(shù)據(jù)管理者即云服務(wù)提供商并不是完全可信的[1],因此要建立相應(yīng)的機(jī)制以確保外包數(shù)據(jù)的隱私.數(shù)據(jù)擁有者的云外包數(shù)據(jù)一般情況下會(huì)被多人協(xié)作共享且共享權(quán)限存在細(xì)粒度需求[2],所以云外包數(shù)據(jù)的安全共享問題也至關(guān)重要.通常情況下外包數(shù)據(jù)的共享可以看做是等級訪問控制問題,故本文研究設(shè)計(jì)了一種基于線性幾何等級密鑰管理的云外包數(shù)據(jù)共享技術(shù).
運(yùn)用一個(gè)偏序集(V,≤)表示等級訪問控制中的等級框架,其中V={V1,V2,…,Vn}為用戶群組集合,Vi為一個(gè)單獨(dú)用戶或多個(gè)擁有同等訪問權(quán)限的用戶組成的訪問群組,通常狀況下稱作類.二元關(guān)系“≤”為集合V中元素的等級關(guān)系,如Vi≤Vj表示類Vj中的用戶可以訪問類Vi對應(yīng)的數(shù)據(jù)資源,即類Vj訪問等級比類Vi高.
任何一個(gè)(V,≤)均可表示成一個(gè)有向圖G=(V,E)[3],若Vi,Vj∈V同時(shí)Vi≤Vj,則在G中擁有一個(gè)從Vj至Vi的有向邊.為便于表示,定義兩個(gè)集合:Anc(Vi,G)及Des(Vi,G),若G中有一條從Vi至Vj的路徑,則Vi∈Anc(Vj,G)且Vj∈Des(Vi,G),其代表等級結(jié)構(gòu)中一個(gè)訪問群組對應(yīng)的訪問權(quán)限分別高于及低于其他訪問群組集合,故稱其分別是Vi的高等及低等級類集.
設(shè)Γ表示一個(gè)等級訪問系統(tǒng)對應(yīng)的訪問圖集合,一個(gè)等級密鑰管理方案包含的兩個(gè)算法如下:
1) 系統(tǒng)建立算法Gen(lκ,G)[4].其性質(zhì)是概率性的,輸入是安全參數(shù)κ及一個(gè)等級結(jié)構(gòu)對應(yīng)的訪問圖G=(V,E)∈Γ,輸出是系統(tǒng)公開參數(shù)pub以及每一個(gè)類Vi∈V對應(yīng)的(pi,ki),其中,pi及ki分別為類Vi相應(yīng)的私有信息以及對稱加密密鑰.
2) 密鑰派生算法Der(pub,Vi,Vj,pi,ki)[5].其性質(zhì)是確定性的,輸入是系統(tǒng)公開參數(shù)pub、兩個(gè)類Vi和Vj以及類Vi對應(yīng)的(pi,ki),如果輸出Vj≤Vi,則輸出類Vj對應(yīng)的對稱加密密鑰.
運(yùn)用線性幾何的等級密鑰管理方案框架如圖1所示.
圖1 基于等級密鑰管理的云外包數(shù)據(jù)安全共享框架
Fig.1Cloudoutsourcedshareddatasecuritysharingframeworkbasedonhierarchicalkeymanagement
根據(jù)圖1可知,該方案包括可信第三方、數(shù)據(jù)擁有者、用戶以及云服務(wù)提供商.運(yùn)用等級密鑰管理處理云外包數(shù)據(jù)的安全共享問題時(shí),數(shù)據(jù)擁有者為該方案中的授權(quán)中心角色,加密共享數(shù)據(jù)同時(shí)把加密后的密文傳輸至云服務(wù)提供商的服務(wù)器上.另外數(shù)據(jù)擁有者定義共享群組的等級結(jié)構(gòu),同時(shí)完成用戶對外包數(shù)據(jù)的共享請求.所有用戶均能夠向云服務(wù)提供商提出訪問請求,唯有取得私有信息以及對稱加密密鑰的用戶才可解密其共享權(quán)限相對應(yīng)的密文.
偽隨機(jī)函數(shù)F[6]定義為:K×D→RG.其中,K為F的密鑰集合,D及RG表示F的域及區(qū)間.對k∈K,F(xiàn)k(x)=F(k,x)代表F的一個(gè)實(shí)例,設(shè)Rand={g|g∶D→RG}為從D至RG上全部的函數(shù)集合,hF為一個(gè)多項(xiàng)式時(shí)間敵手.對于Rand或F中的函數(shù)g∶D→RG,敵手hF能夠訪問預(yù)言機(jī).
設(shè)定訪問群組Vi,Vj∈V,則Vi至Vj的間接密鑰為
(1)
式中:ki,i及kj,j分別為訪問群組Vi及Vj對應(yīng)的對稱加密密鑰;wi,1及wi,2分別為經(jīng)過偽隨機(jī)函數(shù)F作用于訪問群組Vi的私有信息.
方案構(gòu)建規(guī)則如下:
Gen(lκ,G)算法的構(gòu)建步驟如下:
1) 對類Vi隨機(jī)擇取非零向量Yi=(yi,1,yi,2)及Zi=(zi,1,zi,2),當(dāng)做其私有信息.
2) 把全部私有向量Yi經(jīng)過偽隨機(jī)函數(shù)F映射至一個(gè)新的向量Wi,具體過程為:
① 在有限域內(nèi)隨機(jī)擇取一個(gè)公開參數(shù)r,隨之運(yùn)算wi,1=Fyi,1(r)及wi,2=Fyi,2(r),i=1,2,…,n;
② 若wi,2=0,則重新選取參數(shù)r,然后返回至步驟①重新操作.
把Zi轉(zhuǎn)換成一個(gè)n維向量Xi,當(dāng)i=1,2時(shí),令xi,1=zi,1、xi,2=zi,2、xi,3=xi,4、…、xi,n=0;當(dāng)i=3,4,…,n時(shí),令xi,1=zi,1、xi,2=zi,2,對于j≠1,均有xi,j=0,則向量X可表示為
(2)
3) 檢測X1,X2,…,Xn是否線性獨(dú)立,若線性無關(guān),執(zhí)行步驟4);否則返回至步驟1).
4) 針對每個(gè)類擇取一個(gè)對稱加密密鑰并運(yùn)算公開矩陣A,其計(jì)算步驟如下:
① 對G中的每個(gè)類Vi,在有限域內(nèi)隨機(jī)擇取其對稱加密密鑰ki,i,運(yùn)用式(1)計(jì)算中間密鑰ki,j;
② 依照式(1)得到一個(gè)關(guān)于公開矩陣A的線性方程組,并設(shè)定Kj=(kj,1,kj,2,…,kj,n)及K=[K1,K2,…,Kn]T,則X×A=K;
③ 求解步驟②中的方程組,獲得A=X-1×K.
5) 經(jīng)過安全信道把((Yi,Zi),ki,i)發(fā)送至Vi中的每個(gè)用戶,把F、r及A發(fā)送至云服務(wù)提供商.
若Vi中的用戶要得到低等級訪問群組Vj對應(yīng)的共享數(shù)據(jù),且Vi∈Anc(Vj,G),則可以通過如下兩個(gè)步驟獲得Vj對應(yīng)的對稱加密密鑰:
1) 運(yùn)用規(guī)則2)運(yùn)算中間密鑰ki,j;
2) 經(jīng)過求解方程kj,j=wi,1ki,i+wi,2ki,j,訪問群組Vj中的用戶便能夠獲得其相對應(yīng)的對稱加密密鑰.
2.3.1 插入新節(jié)點(diǎn)
對Vi,Vj∈V且Vi
2.3.2 刪除一個(gè)節(jié)點(diǎn)
若等級結(jié)構(gòu)中包含n+1個(gè)群組,數(shù)據(jù)擁有者要從中刪除一個(gè)群組,并設(shè)定刪除的訪問群組是Vl,則務(wù)必要對全部訪問權(quán)限低于Vl的訪問群組進(jìn)行更新以獲得其新對稱加密密鑰,并根據(jù)系統(tǒng)構(gòu)建算法的步驟重新計(jì)算獲得公開矩陣A.隨之完成對相關(guān)數(shù)據(jù)的重新加密,同時(shí)傳送至云服務(wù)提供商.
為了驗(yàn)證算法計(jì)算性能,對其開銷(存儲(chǔ)開銷[11]與計(jì)算開銷[12])進(jìn)行實(shí)驗(yàn)分析.設(shè)定有限域內(nèi)一個(gè)元素的大小及系統(tǒng)中訪問群組數(shù)量分別為L及n,各訪問群組對應(yīng)的低等級類集中元素個(gè)數(shù)平均值是c.
各訪問群組要保存其私有信息Yi及Zi,因?yàn)檫@兩個(gè)向量都包含兩個(gè)元素,所以各訪問群組中用戶的存儲(chǔ)開銷為4L,數(shù)據(jù)擁有者務(wù)必保存全部訪問群組對應(yīng)的私有信息,故其存儲(chǔ)開銷等于4nL.
設(shè)H為偽隨機(jī)函數(shù)F的一次計(jì)算代價(jià),a、m及v分別為有限域上完成加法、乘法以及逆運(yùn)算的計(jì)算代價(jià).要得到訪問群組相應(yīng)的對稱加密密鑰,各群組成員需在有限域上運(yùn)算兩次乘法以及一次加法;要獲得一個(gè)訪問權(quán)限低的群組相應(yīng)的對稱加密密鑰,高等級類中的用戶要運(yùn)算2次F,同時(shí)還要完成4次乘法以及2次加法[15],故其總計(jì)算開銷等于2H+(4c+2)m+(2c+1)a.
數(shù)據(jù)擁有者要運(yùn)算各群組相應(yīng)Yi的偽隨機(jī)函數(shù)F值,其計(jì)算開銷為2nH;隨后運(yùn)算中間密鑰ki,j,要完成2cn次乘法以及n次求逆運(yùn)算;還要運(yùn)算公開矩陣A,要完成不超過3n2+2n+6次的乘法以及n次求逆運(yùn)算,故數(shù)據(jù)擁有者在系統(tǒng)密鑰構(gòu)建歷程中總計(jì)算開銷等于2nH+(3n2+(2c+2)n+6)m+(3n2+(c+2)n+2)a+2nv.
設(shè)定L=160,擇取數(shù)據(jù)擁有者及云服務(wù)提供商的運(yùn)行平臺是DellT5610的工作站,用戶的運(yùn)轉(zhuǎn)平臺為HPXW4600工作站.數(shù)據(jù)擁有者完成系統(tǒng)密鑰構(gòu)建、密鑰派生以及密鑰管理的時(shí)間開銷分別如圖2~4所示.
圖2 完成系統(tǒng)密鑰構(gòu)建的時(shí)間開銷Fig.2 Overhead time of completed establishment of system key
根據(jù)圖2及圖3可知,系統(tǒng)密鑰構(gòu)建以及密鑰派生時(shí)間開銷依著訪問群組數(shù)目n及參數(shù)c的逐漸升高而逐步升高.另外實(shí)驗(yàn)中各用戶得到任何低等級訪問群組對應(yīng)的對稱加密密鑰的時(shí)間是0.001 9 ms.在確定低等級訪問群組集合的前提下,當(dāng)c=5及c=10時(shí)用戶得到全部低等級訪問群組對應(yīng)的對稱加密密鑰時(shí)間分別是0.050 8 ms及0.068 9 ms.任何一個(gè)訪問群組中的用戶在密鑰派生時(shí),首先經(jīng)過檢測中間密鑰值是否等于0,然后再運(yùn)算全部低等級訪問群組對應(yīng)的對稱加密密鑰的時(shí)間開銷.
圖3 密鑰派生的時(shí)間開銷Fig.3 Overhead time of key derivation
圖4 動(dòng)態(tài)密鑰管理的時(shí)間開銷Fig.4 Overhead time of dynamic key management
根據(jù)圖2及圖4對比可知,動(dòng)態(tài)密鑰管理的計(jì)算時(shí)間要稍微高一點(diǎn),其主要原因是在密鑰動(dòng)態(tài)管理時(shí),數(shù)據(jù)擁有者需要搜索訪問圖G以獲得哪些是需要更新的節(jié)點(diǎn),然后重新?lián)袢ΨQ加密密鑰及與運(yùn)算相關(guān)的中間密鑰.
本文設(shè)計(jì)了基于線性幾何的等級密鑰管理云外包數(shù)據(jù)安全共享方案,詳細(xì)闡述了系統(tǒng)構(gòu)建算法、密鑰派生算法以及動(dòng)態(tài)密鑰管理等3條規(guī)則.數(shù)據(jù)擁有者為各訪問群組公開一個(gè)向量,每個(gè)訪問群組的私有向量與其公開向量的內(nèi)積作為其對稱加密密鑰.運(yùn)用間接密鑰,高等級訪問群組中的用戶能夠得到低等級訪問群組的對稱加密密鑰.在解決動(dòng)態(tài)共享權(quán)限密鑰管理過程中,數(shù)據(jù)擁有者僅需更新系統(tǒng)中的公開矩陣即可.根據(jù)實(shí)驗(yàn)結(jié)果分析可知,該方案是安全且相對非常有效的.