趙志遠(yuǎn) 王建華, 徐開勇 郭松輝
1(中國人民解放軍信息工程大學(xué) 鄭州 450001)2 (空軍電子技術(shù)研究所 北京 100195)
云存儲是基于云計算建立起來的一種新型的網(wǎng)絡(luò)存儲技術(shù),其可以為數(shù)據(jù)用戶提供“無限”的存儲空間[1].當(dāng)用戶將數(shù)據(jù)資源上傳至云存儲系統(tǒng)后,其將失去對數(shù)據(jù)的實(shí)際控制,尤其對于敏感的數(shù)據(jù)資源,數(shù)據(jù)擁有者應(yīng)該能夠控制數(shù)據(jù)的訪問權(quán)限.因此,將數(shù)據(jù)加密處理并設(shè)計靈活細(xì)粒度的訪問控制機(jī)制對于保護(hù)云存儲系統(tǒng)中數(shù)據(jù)資源的安全至關(guān)重要.屬性基加密(attribute based encryption, ABE)[2]作為一種公鑰密碼原語,可以為云存儲系統(tǒng)提供靈活細(xì)粒度的訪問控制,對于保護(hù)云中數(shù)據(jù)資源安全發(fā)揮重要作用.依據(jù)訪問策略位置的不同,可以將ABE分為密鑰策略屬性基加密(key-policy ABE,KP-ABE)方案[3]和密文策略屬性基加密(ciphertext-policy ABE, CP-ABE)方案[4].ABE概念提出后,相關(guān)學(xué)者提出大量研究工作[5-7].
隨著移動互聯(lián)網(wǎng)和移動智能終端的快速發(fā)展,使用移動終端訪問云存儲系統(tǒng)中的數(shù)據(jù)成為一種趨勢,而移動智能終端受限的計算資源和電量資源致使其不能承載過大的計算負(fù)擔(dān)和通信負(fù)擔(dān).傳統(tǒng)的屬性基加密在私鑰生成、數(shù)據(jù)加密和解密階段往往需要大量的計算,且計算量與屬性集合或訪問策略復(fù)雜度呈線性增長關(guān)系,這將給屬性授權(quán)機(jī)構(gòu)和移動終端帶來嚴(yán)重的計算負(fù)擔(dān)和電量損耗.為解決該問題,相關(guān)學(xué)者提出外包ABE方案[8-10].即,在保證數(shù)據(jù)機(jī)密性的情況下將部分計算外包給云服務(wù)商,而屬性授權(quán)機(jī)構(gòu)和移動終端只需要少量的計算即可.
Green等人[11]提出一種解密運(yùn)算外包ABE方案,該方案在解密過程中首先將密文傳送給解密外包服務(wù)器,解密外包服務(wù)器對密文進(jìn)行一次密文轉(zhuǎn)換獲得中間密文再傳送給用戶,達(dá)到降低本地解密計算量的目的.王皓等人[12]在給出外包ABE方案的形式化定義后,構(gòu)造了一個具體的外包CP-ABE方案.該方案在標(biāo)準(zhǔn)模型下基于雙系統(tǒng)加密技術(shù)證明了方案是自適應(yīng)安全,但該方案效率較低.Lai等人[13]所提方案在實(shí)現(xiàn)外包解密的同時,支持了外包計算的正確性驗(yàn)證.Li等人[14]通過MapReduce實(shí)現(xiàn)了ABE數(shù)據(jù)加密的外包計算,且該方案支持樹形訪問策略,具有豐富的表達(dá)能力,但該方案沒有考慮外包解密計算.
Li等人[15]提出一種支持私鑰生成和解密計算外包的ABE方案,但該方案不能驗(yàn)證外包計算結(jié)果的正確性.Zhou等人[16]提出一種同時支持加密和解密計算外包ABE方案.該方案將訪問策略分成“AND”門連接的2部分子訪問策略,然后將一部分訪問策略的加密任務(wù)外包給加密服務(wù)提供商,用戶只需完成一個屬性的加密任務(wù),通過該方法隱藏隨機(jī)盲化因子s.但該方案只支持根節(jié)點(diǎn)為“AND”門的訪問策略樹;另外,該方案支持解密計算外包.Li等人[17]提出一個支持私鑰生成和解密外包的ABE方案.該方案雇傭2個密鑰生成服務(wù)提供商,共同幫助屬性授權(quán)機(jī)構(gòu)完成私鑰生成工作.Fan等人[18]提出一種可驗(yàn)證外包的多授權(quán)訪問控制方案.該方案將大部分加密和解密計算任務(wù)外包給霧節(jié)點(diǎn),以減輕用戶的計算負(fù)擔(dān).同時該方案能夠驗(yàn)證外包計算結(jié)果的正確性.Li等人[19]提出一種新奇的可驗(yàn)證外包解密ABE方案.該方案的密文長度與訪問策略復(fù)雜度無關(guān),但該方案只支持解密計算外包,且訪問策略的表達(dá)能力有限.
上述方案都沒有實(shí)現(xiàn)完全外包,即將私鑰生成、加密和解密計算同時外包給第三方.Zhang等人[20]提出一種完全外包CP-ABE方案,即將密鑰產(chǎn)生、加密和解密都外包給云服務(wù)商,并且完成了方案的安全性證明.但該方案無法驗(yàn)證外包計算結(jié)果的正確性,而可驗(yàn)證性對于云存儲系統(tǒng)應(yīng)用至關(guān)重要.
針對上述問題,本文提出一種支持可驗(yàn)證的完全外包CP-ABE方案.該方案可以同時實(shí)現(xiàn)密鑰生成、加密和解密的計算外包,并且其能夠驗(yàn)證外包計算結(jié)果的正確性.具體來說,屬性授權(quán)機(jī)構(gòu)雇傭2個不能合謀的密鑰生成云服務(wù)商生成中間私鑰ISKx,其中x={1,2}.然后屬性授權(quán)機(jī)構(gòu)根據(jù)ISKx只需簡單計算便可完成私鑰生成工作;本文引入一個缺省屬性ξ重新構(gòu)造訪問策略完成加密外包工作;通過私鑰SK重新構(gòu)造轉(zhuǎn)換密鑰TK和取回密鑰RK,然后解密云服務(wù)商通過TK完成密文的部分解密工作;另外,通過2個雜湊函數(shù)完成外包計算結(jié)果的正確性驗(yàn)證.該方案可以有效減輕屬性授權(quán)機(jī)構(gòu)和用戶的計算負(fù)擔(dān).本文基于決策性q-BDHE(q-bilinear Diffie-Hellman exponent)假設(shè)在隨機(jī)預(yù)言機(jī)模型下證明了所提方案的選擇明文攻擊的不可區(qū)分安全性,提供了所提方案的可驗(yàn)證性證明.最后,理論分析與實(shí)驗(yàn)驗(yàn)證表明所提方案在功能性和效率方面具有優(yōu)勢,更加適合實(shí)際應(yīng)用情況.
本節(jié)主要介紹文中所需的相關(guān)技術(shù),包括雙線性群、線性秘密共享方案和決策性q-BDHE假設(shè).
雙線性群是密碼系統(tǒng)中重要的關(guān)鍵技術(shù).令ψ是一個群生成算法,其以安全參數(shù)λ作為輸入,輸出(p,G,GT,e).其中p是由安全參數(shù)λ決定的素數(shù),G和GT是階為素數(shù)p的循環(huán)群.雙線性映射e:G×G→GT滿足下列性質(zhì):
1) 雙線性.對于?u,v∈G,a,b∈p,有e(ua,vb)=e(u,v)ab.
2) 非退化性.存在g∈G,使得e(g,g)在GT中的階是p.
3) 可計算性.對于?u,v∈G,可以有效計算e(u,v).
線性秘密共享方案(linear secret sharing scheme, LSSS)的定義是參與者集合P上的一個密鑰共享方案Π如果滿足下列2個條件,則被稱為p上的線性秘密共享方案.
2) 對于每個秘密共享方案Π,存在一個生成矩陣M(l×n),對于矩陣M中的每一行i=1,2,…,l,映射ρ:{1,2,…,l}→P把M的每一行映射到參與者ρ(i),ρ為單射函數(shù).考慮向量v=(s,y2,…,yn),s∈p是共享密鑰,y2,…,yn∈p隨機(jī)選擇用來隱藏s,Mv是l個秘密份額形成的向量,其中λi=(Mv)i表示參與者ρ(i)所持有的秘密份額.
LSSS方案具有線性重構(gòu)特性.假設(shè)Π是訪問策略的一個線性秘密共享,設(shè)S∈是一個訪問授權(quán)集合,定義為I={i:ρ(i)∈S}.如果{λi}是對秘密s的有效共享份額,那么可以在多項(xiàng)式時間內(nèi)找到一組常數(shù){wi∈p}i∈I,使等式λi=s成立.
令G表示階為素數(shù)p的雙線性群,g和h為群G的2個獨(dú)立生成元,選取隨機(jī)值α∈,然后定義yg,α,l=(g1,g2,…,gl,gl+2,…,g2l)∈G2l-1,其中g(shù)i=g(αi).算法通過輸出值z∈{0,1}進(jìn)行猜測,若|Pr[B(g,h,yg,α,l,e(gl+1,h))=0]-Pr[B(g,h,yg,α,l,Z)=0]|≥ε,則定義其擁有優(yōu)勢ε來解決群G和GT下的決策性q-BDHE問題.若無多項(xiàng)式時間算法以不可忽略的優(yōu)勢來解決決策性q-BDHE問題,那么我們就說決策性q-BDHE假設(shè)在群G和GT中是成立的.
本文基于Waters的CP-ABE方案[21]提出支持可驗(yàn)證的完全外包CP-ABE方案,方案中的用戶私鑰與屬性集合S相關(guān)聯(lián),密文與訪問策略(M,ρ)相關(guān)聯(lián).為了確保在外包加密過程中數(shù)據(jù)的機(jī)密性,本文建立了一個混合訪問策略Str=(M,ρ)∧{ξ},其中∧代表“AND”門,(M,ρ)代表原訪問策略,ξ代表缺省屬性.也就是說,在任意一個指定的訪問策略(M,ρ)中,本文通過“AND”門在原訪問策略(M,ρ)中引入缺省屬性ξ來構(gòu)造混合訪問策略Str=(M,ρ)∧{ξ}.本文通過這種巧妙的構(gòu)造,使得原訪問策略可以是任意形式.在加密過程中,數(shù)據(jù)擁有者完成ξ的加密,E-CSP完成(M,ρ)的加密,且不會泄露明文信息.
本文所用相關(guān)名詞及其縮寫如表1所示:
Table 1 Related Terms and Their Acronyms表1 相關(guān)名詞及其縮寫
Fig. 1 System model of fully outsourced ABE圖1 完全外包屬性基加密系統(tǒng)模型
本文所提方案的系統(tǒng)模型如圖1所示.其中,密鑰生成云服務(wù)商(KG-CSP)、加密云服務(wù)商(E-CSP)、解密云服務(wù)商(D-CSP)和存儲云服務(wù)商(S-CSP)是該系統(tǒng)模型實(shí)現(xiàn)完全外包功能的核心組件.它們分別提供私鑰生成服務(wù)、數(shù)據(jù)加密服務(wù)、數(shù)據(jù)解密服務(wù)和數(shù)據(jù)存儲服務(wù).但在服務(wù)過程中,它們不能知道用戶私鑰和數(shù)據(jù)明文.本文方案中,數(shù)據(jù)擁有者(DO)可以使用移動計算終端加密明文信息并存儲到云端;數(shù)據(jù)用戶(DU)可以使用移動計算終端從云端下載密文信息并解密,且移動計算終端可以承受這種計算負(fù)載.
本文假設(shè)屬性授權(quán)機(jī)構(gòu)(AA)是一個完全可信的密鑰分發(fā)機(jī)構(gòu);云服務(wù)商是誠實(shí)但好奇的(honest but curious)[22],即云服務(wù)商會誠實(shí)地按照正確的步驟執(zhí)行,但是由于好奇心,其會在工作過程中窺探數(shù)據(jù)中的隱私.2個KG-CSP不能互相合謀共享數(shù)據(jù),因此最終獲得的ISK對于2個KG-CSP是信息隱藏的.
本文所提VFO-CP-ABE方案(fully outsourced CP-ABE with verifiability)包含9個多項(xiàng)式時間算法.
Setup(1λ):該算法由AA運(yùn)行,其以安全參數(shù)λ作為輸入,輸出系統(tǒng)公鑰PK和主私鑰MSK.
KeyGeninit(PK,N):該算法由KG-CSPx運(yùn)行,其以系統(tǒng)公鑰PK和系統(tǒng)屬性集合N(系統(tǒng)屬性總數(shù)量)作為輸入,輸出中間私鑰ISKx,其中x={1,2}.
KeyGenpackage(MSK,S,ISK1,ISK2):該算法由AA運(yùn)行,其以系統(tǒng)主私鑰MSK、用戶屬性集合S和中間私鑰ISKx(x={1,2})作為輸入,輸出用戶私鑰SK.
KeyBlind(SK):該算法由DU運(yùn)行,其以用戶私鑰SK作為輸入,輸出轉(zhuǎn)換密鑰TK和取回密鑰RK.
Encryptinit(m):該算法由DO運(yùn)行,其以明文消息m∈M作為輸入,輸出加密密鑰對(EKE-CSP,EKDO).
EncryptE-CSP(PK,(M,ρ),EKE-CSP):該算法由E-CSP運(yùn)行,其以系統(tǒng)公鑰PK、訪問策略(M,ρ)和加密密鑰EKE-CSP作為輸入,輸出中間密文CTE-CSP.
EncryptDO(PK,(M,ρ),EKDO,CTE-CSP,m):該算法由DO運(yùn)行,其以系統(tǒng)公鑰PK、訪問策略(M,ρ)、加密密鑰EKDO、中間密文CTE-CSP和明文消息m∈M作為輸入,輸出密文CT和驗(yàn)證標(biāo)志VKm.最后,DO將CT和VKm發(fā)送給S-CSP.
DecryptD-CSP(TK,CT):該算法由D-CSP運(yùn)行,其以轉(zhuǎn)換密鑰TK和密文CT作為輸入,輸出轉(zhuǎn)換密文TC.
DecryptDU(TC,VKm,RK):該算法由DU運(yùn)行,其以轉(zhuǎn)換密鑰TC、驗(yàn)證標(biāo)志VKm和取回密鑰RK作為輸入,輸出明文消息m或者中止符⊥.
本文考慮這樣一個敵手:敵手A是一些惡意用戶并且能夠與KG-CSPx(x只能為1或者只能為2),E-CSP,D-CSP,S-CSP進(jìn)行合謀,其能夠獲取惡意用戶的私鑰,KG-CSPx的ISKx(x只能為1或者只能為2),E-CSP的加密密鑰EKE-CSP和中間密文CTE-CSP,D-CSP的轉(zhuǎn)換密鑰TK,S-CSP的密文CT.不失一般性,本文假設(shè)x=1,然后A試圖去解密其他正常用戶的密文.
選擇明文攻擊安全游戲.本文針對提出的VFO-CP-ABE方案描述了選擇性選擇明文攻擊(chosen plaintext attack, CPA)安全游戲.具體描述如下.
系統(tǒng)初始化:敵手A將要挑戰(zhàn)的訪問策略(M*,ρ*)傳送給仿真者B.
系統(tǒng)建立:B執(zhí)行Setup算法,然后將PK發(fā)送給敵手A.
查詢階段1:仿真者B初始化空表T0,空集合E和整數(shù)j=0.敵手A可以對屬性集合S重復(fù)進(jìn)行以下任何查詢.
1)Create(S):仿真者B設(shè)置jj+1,運(yùn)行2次KenGeninit算法獲得中間私鑰ISK1和ISK2,運(yùn)行KenGenpackage獲得關(guān)聯(lián)屬性集合S的私鑰SK,運(yùn)行KeyBlind算法獲得轉(zhuǎn)換密鑰TK和取回密鑰RK.最后將(j,S,SK,TK,RK,ISK1)存儲于表T0中.
注意:敵手可以重復(fù)詢問相同的屬性集合S.其中,f((M*,ρ*),S)≠1.但A能夠提交滿足(M*,ρ*)的屬性集合S′進(jìn)行CorruptISK1詢問.
2) CorruptSK(i):B驗(yàn)證第i個實(shí)體(i,S,SK)是否存在于表T0中.如果存在,設(shè)置EE∪{S}并且返回SK;否則返回終止符⊥.
3) CorruptISK1(i):仿真者B驗(yàn)證第i個實(shí)體(i,S,ISK1)是否存在于表T0中.如果存在,返回ISK1;否則返回終止符⊥.
4) CorruptTK(i):B驗(yàn)證第i個實(shí)體(i,S,TK)是否存在于表T0中.如果存在,返回TK;否則返回終止符⊥.
猜測階段:敵手A輸出一個值b′∈{0,1}作為對b的猜測.如果b′=b,我們稱敵手A贏得了該游戲.敵手A在該游戲中的優(yōu)勢定義為:
定義1. 若無多項(xiàng)式時間敵手以不可忽略的優(yōu)勢來攻破上述安全模型,那么我們就說本文提出的VFO-CP-ABE方案是選擇明文安全.
可驗(yàn)證性游戲.可驗(yàn)證性可以確保轉(zhuǎn)換階段是否被正確執(zhí)行,通過仿真者B和敵手A之間的博弈游戲描述VFO-CP-ABE方案的可驗(yàn)證性,具體過程如下.
系統(tǒng)建立:仿真者B執(zhí)行Setup算法,然后將PK發(fā)送給敵手A,自己保留主私鑰MSK.
查詢階段1:B按照方案私鑰生成方式響應(yīng)敵手A的詢問.因?yàn)锽知道MSK,所以其能回答所有私鑰詢問.
查詢階段2:B按照查詢階段1方式響應(yīng)敵手A的詢問,但是敵手A不能詢問滿足訪問策略(M*,ρ*)的屬性集合S.
For the saturated regime, as shown in Fig. 3, the distribution of the depletion layer was made in five regions, and therefore:
定義2. 若無多項(xiàng)式時間敵手以不可忽略的優(yōu)勢來攻破上述安全模型,那么我們就說本文提出的VFO-CP-ABE方案具有可驗(yàn)證性.
本節(jié)給出VFO-CP-ABE方案的詳細(xì)構(gòu)造過程,及方案的選擇性CPA安全證明和可驗(yàn)證性證明.
VFO-CP-ABE方案包含9個多項(xiàng)式時間算法.每個算法詳細(xì)敘述如下.
Setup(1λ):該算法選擇一個階為素數(shù)p的雙線性群G,g為群G的生成元,hξ,h1,…,hU∈G為隨機(jī)群元素.另外,隨機(jī)選擇指數(shù)α,β∈p并計算g1=gβ.選擇雜湊函數(shù)H0:{0,1}2λ→{0,1}*,H1:{0,1}*→p,H2:{0,1}*→{0,1}λ.最后,輸出系統(tǒng)主私鑰MSK=gα和系統(tǒng)公鑰PK=G,g,g1,e(g,g)α,hξ,h1,…,hU,H0,H1,H2.
KeyBlind(SK):該算法選擇一個隨機(jī)值δ∈p,然后計算,.對于j∈S∪{ξ},計算.最后,輸出取回密鑰RK=δ和轉(zhuǎn)換密鑰TK=,,.
Encryptinit(m):該算法隨機(jī)選擇R∈GT,并計算s=H1(R,m).然后,其隨機(jī)指定一個一次多項(xiàng)式q(·),其中q(0)=s.進(jìn)一步設(shè)置s1=q(1),s2=q(2).最后,輸出加密密鑰EKE-CSP={s1}和EKDO={s,s2,R}.
EncryptE-CSP(PK,(M,ρ),EKE-CSP):該算法輸入PK,(M,ρ),EKE-CSP.其中,M是一個l×n矩陣;函數(shù)ρ是一個單射函數(shù),其將M的每一行映射到一個屬性.該算法隨機(jī)選擇向量v=(s1,y2,…,yn)∈p,其用于共享加密指數(shù)s1.對于i=1到l,計算λi=(vM)i,其中Mi是矩陣M的第i行.最后,輸出中間密文為CTE-CSP=C′=gs1,{Ci=gβ λi}1≤i≤l.
最后,DO輸出密文CT=CTDO,CTE-CSP,然后將VKm和CT發(fā)送給S-CSP.
DecryptD-CSP(TK,CT):假設(shè)用戶私鑰關(guān)聯(lián)的屬性集合S∪{ξ}滿足密文CT關(guān)聯(lián)的混合訪問策略Str=(M,ρ)∧{ξ}.參與者下標(biāo)集合I?{1,2,…,l}被定義為I={i:ρ(i)∈S},如果{λi}是對秘密s1的有效共享份額,那么可以在多項(xiàng)式時間內(nèi)找到一組常數(shù){wi∈p}i∈I使得λi=s1.我們注意到,可能有幾種不同的方法來選擇wi來滿足上述公式.另外,解密算法只需要知道M和I就能確定這些常數(shù).DU將TK發(fā)送到D-CSP,D-CSP按下列公式計算:
(1)
(2)
然后我們能夠計算獲得T=e(g,g)αsδ.輸出轉(zhuǎn)換密文TC=C,C″,T.最后,D-CSP將轉(zhuǎn)換密文TC發(fā)送給DU.
DecryptDU(TC,VKm,RK):DU接收到TC后,計算R=C(T),t=H2(R).若H0(t‖C″)≠VKm,則輸出終止符⊥;否則計算m=C″⊕t和s=H1(R,m).若C=R·e(g,g)α s,T=e(g,g)α s δ,輸出m;否則輸出終止符⊥.
定理1. 假設(shè)決策性q-BDHE假設(shè)在群G和GT中成立,那么本文所提VFO-CP-ABE方案是隨機(jī)預(yù)言機(jī)模型下選擇性CPA安全.
證明. 假設(shè)存在一個多項(xiàng)式時間敵手A能夠以不可忽略的優(yōu)勢ε在選擇性CPA安全模型下攻破本文方案,那么我們能夠構(gòu)建一個仿真者B以不可忽略的優(yōu)勢解決決策性q-BDHE困難問題.敵手A是一些惡意用戶并且能夠與KG-CSPx(x只能為1或者只能為2)、E-CSP、D-CSP、S-CSP進(jìn)行合謀.本文假設(shè)2個KG-CSP不能互相合謀共享數(shù)據(jù),而ISK是由ISK1和ISK2計算獲得,所以在敵手A的視角里ISK是信息隱藏的.不失一般性,本文假設(shè)x=1,然后敵手A試圖去解密其他正常用戶的密文.因此,敵手A能夠提交滿足(M*,ρ*)的屬性集合S′進(jìn)行ISK1詢問,而其不能獲取任何關(guān)于ISK的有用的信息.
B輸入決策性q-BDHE挑戰(zhàn)元組(g,h,yg,α,l,Z),其中,Z是群GT中的隨機(jī)元素或者是e(gl+1,h),yg,α,l=(g1,g2,…,gl,gl+2,…,g2l)∈G2l-1.
系統(tǒng)初始化:敵手A選擇一個需要挑戰(zhàn)的訪問策略T*=(M*,ρ*)并發(fā)送給仿真者B.
系統(tǒng)建立:B按照Waters方案[21]中挑戰(zhàn)者C的方式計算PK=G,g,g1=ga,e(g,g)α,h1,…,hU,hξ,然后仿真者B將公鑰PK發(fā)送給敵手A.
查詢階段1:B初始化空表T0,T1,T2,空集合E和整數(shù)j=0.敵手A可以對屬性集合重復(fù)進(jìn)行以下任何查詢.
1) Random Oracle HashH1(R,m):若表T1中存在實(shí)體(R,m,s),則返回s;否則,選擇一個隨機(jī)值s∈p,并在表T1中記錄(R,m,s),返回s.
2) Random Oracle HashH2(R):若表T2中存在實(shí)體(R,t),則返回t;否則,選擇一個隨機(jī)值t∈{0,1}λ,在表T2中記錄(R,t),返回t.
3) Creat(S):B從敵手A處接收到屬性集合S的私鑰詢問后,在屬性集合中增加缺省屬性ξ,即私鑰詢問集合為S∪{ξ}.然后,B設(shè)置jj+1,并按照Waters方案[21]中挑戰(zhàn)者C的方式計算獲得SK=D,L,{Dj}j∈S∪{ξ}.B運(yùn)行KenGeninit獲得ISK1,運(yùn)行KeyBlind獲得轉(zhuǎn)換密鑰TK和取回密鑰RK.最后將(j,S,SK,TK,RK,ISK1)存儲于表T0中.
注意:A可以重復(fù)詢問相同的屬性集合S,其中S滿足f((M*,ρ*),S)≠1.但A能夠提交滿足(M*,ρ*)的屬性集合S′進(jìn)行ISK1詢問.
4) CorruptSK(i):B驗(yàn)證第i個實(shí)體(i,S,SK)是否存在于表T0中.如果存在,設(shè)置EE∪{S}并且返回SK;否則返回終止符⊥.
5) CorruptISK1(i):仿真者B驗(yàn)證第i個實(shí)體(i,S,ISK1)是否存在于表T0中.如果存在,返回ISK1;否則返回終止符⊥.
6) CorruptTK(i):B驗(yàn)證第i個實(shí)體(i,S,TK)是否存在于表T0中.如果存在,返回TK;否則返回終止符⊥.
查詢階段2:類似查詢階段1,敵手A繼續(xù)向B提交一系列屬性列表.
猜測階段:敵手A輸出一個值b′∈{0,1}作為對b的猜測.如果b′=b,B輸出0表示猜測Z=e(gn+1,h);否則輸出1表示猜測Z為群GT中的隨機(jī)元素.當(dāng)Z=e(gn+1,h)時,仿真者B能夠提供一個有效的仿真.因此得出:Pr[B(g,h,yg,α,l,e(gl+1,h))=0]=12+AdvA;當(dāng)Z為GT中的隨機(jī)元素時,mb對于A來說是完全隨機(jī)的,因此得出:Pr[B(g,h,yg,α,l,Z)=0]=12.因此,B能以不可忽略的優(yōu)勢攻破決策性q-BDHE假設(shè).
證畢.
定理2. 假設(shè)H0和H2是抵抗合謀攻擊的雜湊函數(shù),那么VFO-CP-ABE方案具有可驗(yàn)證性.
查詢階段1:B按照方案算法適應(yīng)性回答敵手A的詢問.
查詢階段2:B按照查詢階段1方式響應(yīng)敵手A的詢問,但是敵手A不能詢問滿足訪問策略(M*,ρ*)的屬性集合S.
猜測階段:A輸出屬性集合S*(f((M*,ρ*),S)=1)和轉(zhuǎn)換密文TC=〈C,C″,T〉.
通過上述分析完成定理2的安全證明.
證畢.
為評估本文所提VFO-CP-ABE方案的計算效率,本節(jié)從理論層面分析了私鑰生成、加密和解密階段的計算開銷,將本文方案與文獻(xiàn)[12,18-21]中相關(guān)ABE方案在計算效率方面進(jìn)行對比分析.對比過程中,|U|表示系統(tǒng)所有屬性數(shù)量;|S|表示DU所擁有的屬性數(shù)量;s和l分別表示滿足解密需求的屬性集合和LSSS中矩陣M的行數(shù).另外,EG和EGT分別表示G和GT中的模指數(shù)運(yùn)算;P表示雙線性對運(yùn)算.為對比公平,假設(shè)文獻(xiàn)[18]只有一個AA.表2給出了原理方面的效率對比.文獻(xiàn)[12]加密階段采用離線在線技術(shù),為便于比較,將其與其他方案外包技術(shù)等同對比.
Table 2 Comparison of Efficiency and Outsourcing Capability表2 效率及外包能力對比分析
各方案效率及外包能力對比如表2所示.其中文獻(xiàn)[21]是一個基本CP-ABE方案,本文基于文獻(xiàn)[21]提出VFO-CP-ABE方案.本文方案實(shí)現(xiàn)了可驗(yàn)證的完全外包功能.這種方法能夠減少AA,DO,DU的計算量,極大緩解計算資源受限終端的計算負(fù)擔(dān).在原始文獻(xiàn)[21]中,屬性授權(quán)機(jī)構(gòu)、數(shù)據(jù)用戶和數(shù)據(jù)擁有者都需要計算大量的對運(yùn)算和指數(shù)運(yùn)算.文獻(xiàn)[19]僅支持外包解密計算,可以驗(yàn)證計算結(jié)果的正確性.文獻(xiàn)[19]雖然不支持密鑰生成和加密的外包計算功能,但是其實(shí)現(xiàn)了密文長度恒定,在密鑰生成和加密階段只需較少的計算,其不足之處是僅支持“AND”門訪問策略,表達(dá)能力有限.文獻(xiàn)[12]支持離線在線加密和解密計算外包功能,但該方案不支持外包解密正確性驗(yàn)證,且AA需要計算大量的指數(shù)運(yùn)算.文獻(xiàn)[18]支持加密和解密計算外包功能,并且可以驗(yàn)證計算結(jié)果的正確性,但是其AA需要計算大量的指數(shù)運(yùn)算.文獻(xiàn)[20]和本文方案同時實(shí)現(xiàn)了密鑰生成、加密和解密計算外包功能.但文獻(xiàn)[20]不支持可驗(yàn)證性,不能保證計算結(jié)果的正確性.
綜合分析,只有本文方案實(shí)現(xiàn)了密鑰生成、加密和解密的外包計算功能,減少了終端的計算量,支持可驗(yàn)證性.外包計算對于電量和計算資源有限的移動設(shè)備具有重要意義.本文所提方案是有效且實(shí)際的.
通過理論分析,本文方案在功能和效率方面具有優(yōu)勢.為了進(jìn)一步評估本文方案的實(shí)際性能,本節(jié)通過以下實(shí)驗(yàn)環(huán)境測試了文獻(xiàn)[20]和本文方案在私鑰生成、數(shù)據(jù)加密和數(shù)據(jù)解密方面的計算時間.
實(shí)驗(yàn)環(huán)境:64 b Ubuntu 14.04操作系統(tǒng)、Intel?CoreTMi5-6200U(2.3 GHz)、內(nèi)存4 GB,實(shí)驗(yàn)代碼基于PBC-0.5.14 (pairing-based cryptography library)與CPABE-0.11進(jìn)行修改與編寫,并且使用224 b MNT的橢圓曲線.
實(shí)驗(yàn)設(shè)置:在CP-ABE方案中,訪問策略的復(fù)雜度影響加密和解密時間.為了說明這一點(diǎn),本文用(S1ANDS2AND…ANDSn)形式的訪問策略模擬最復(fù)雜的情況,其中每個Si都是一個屬性.這種方法保證了所有密文組件都參與解密計算.本文以這種形式每次遞增10,從10增加到100產(chǎn)生10種不同的訪問策略.對于每個訪問策略,重復(fù)20次實(shí)驗(yàn)且每次實(shí)驗(yàn)完全獨(dú)立,然后取平均值作為實(shí)驗(yàn)結(jié)果.
屬性基加密一般與對稱加密相互配合實(shí)現(xiàn)明文數(shù)據(jù)的加密,即首先用對稱密鑰加密明文,然后用屬性基加密封裝對稱密鑰.因此,本文為獲得基準(zhǔn)結(jié)果,基于上述訪問策略封裝了一個128 b對稱密鑰.測試實(shí)驗(yàn)結(jié)果如圖2所示.
Fig. 2 Comparison of simulation time圖2 仿真時間對比
圖2有6個子圖.每個子圖給出本文方案與文獻(xiàn)[20]方案的執(zhí)行時間對比情況.
圖2(a)和圖2(d)說明KG-CSP承擔(dān)大部分密鑰生成工作,且密鑰生成時間與屬性數(shù)量呈線性增長關(guān)系.屬性授權(quán)機(jī)構(gòu)只需承擔(dān)少量計算即可完成密鑰生成工作.在4.1節(jié)中,本文分析AA的計算量為0,這是因?yàn)楸疚暮雎粤顺朔ㄟ\(yùn)算、雜湊運(yùn)算等計算量小的運(yùn)算,它們是次要的因素.圖2(b)和圖2(e)說明E-CSP承擔(dān)大部分的加密工作,且加密時間與訪問策略的復(fù)雜度呈線性增長關(guān)系.數(shù)據(jù)擁有者只需恒定的計算量即可完成加密工作.圖2(c)和圖2(f)說明D-CSP承擔(dān)大部分的解密工作,密文轉(zhuǎn)換時間與訪問策略的復(fù)雜度呈線性增長關(guān)系.用戶解密只需要常量計算即可完成解密工作,與訪問策略的復(fù)雜性無關(guān).
圖2(a)、圖2(b)和圖2(c)說明密鑰生成時間、加密時間和解密時間隨屬性集合或訪問策略復(fù)雜度的增加而增加.同時,通過2種方案對比發(fā)現(xiàn),本文方案在云端的計算花費(fèi)小于文獻(xiàn)[20],這種優(yōu)勢隨著屬性數(shù)量或訪問策略復(fù)雜度的增加而變得更加明顯.圖2(d)說明文獻(xiàn)[20]和本文方案的AA都只需較少計算量即可完成密鑰生成工作,且效率相當(dāng).圖2(e)和圖2(f)說明文獻(xiàn)[20]的DO和DU較本文方案需要更少的計算,但是這種差距是非常小的,且不會隨著屬性數(shù)量或訪問策略復(fù)雜度的增加而變化.
綜上所述,本文方案在云端的計算小于文獻(xiàn)[20]方案,且隨著屬性數(shù)量或訪問策略復(fù)雜度的增加而變得更加明顯,這有助于AA和用戶租用較少的云計算資源,節(jié)約成本.本文方案在本地計算量略高于文獻(xiàn)[20]方案,但這種差距非常小且不隨著屬性數(shù)量或訪問策略復(fù)雜度的增加而變化.另外,本文方案支持解密外包可驗(yàn)證性,文獻(xiàn)[20]不具備該能力.
為提高CP-ABE方案效率,本文提出一種支持可驗(yàn)證的完全外包CP-ABE方案VFO-CP-ABE.該方案可以同時實(shí)現(xiàn)密鑰生成、加密和解密計算外包功能,并且能夠驗(yàn)證外包計算結(jié)果的正確性.該方案可以有效緩解屬性授權(quán)機(jī)構(gòu)、數(shù)據(jù)擁有者和數(shù)據(jù)用戶的計算負(fù)擔(dān),尤其面向具有大量用戶的云存儲系統(tǒng)和資源有限的用戶,優(yōu)勢更加明顯.然后,在隨機(jī)預(yù)言機(jī)模型下證明了所提方案的選擇明文攻擊的不可區(qū)分安全性,提供了所提方案的可驗(yàn)證性證明.最后,理論分析與實(shí)驗(yàn)驗(yàn)證結(jié)果表明所提方案在功能性和效率方面具有優(yōu)勢,更加適合實(shí)際應(yīng)用情況.