嚴(yán)新成 陳 越 巴 陽 賈洪勇 王仲輝
1(戰(zhàn)略支援部隊(duì)信息工程大學(xué) 鄭州 450001)2(鄭州大學(xué)軟件與應(yīng)用科技學(xué)院 鄭州 450001)3(西部戰(zhàn)區(qū)陸軍參謀部附屬單位 蘭州 730030)
云計(jì)算技術(shù)的大規(guī)模應(yīng)用使得存儲(chǔ)數(shù)據(jù)的隱私保護(hù)問題日益凸顯.隨著用戶對(duì)數(shù)據(jù)的安全性和訪問控制靈活性提出了更高要求,屬性加密技術(shù)在解決此類問題上發(fā)揮著越來越重要的作用.
在實(shí)際應(yīng)用中,由于用戶權(quán)限具有動(dòng)態(tài)變化的特性,用戶屬性發(fā)生變更或用戶退出系統(tǒng)時(shí),進(jìn)行用戶屬性撤銷或私鑰撤銷對(duì)于系統(tǒng)安全至關(guān)重要,這是屬性加密所必須解決的問題,也是研究的一個(gè)難點(diǎn).通常的解決方法是將訪問策略中包含被撤銷屬性的所有密文進(jìn)行更新,但存在計(jì)算及通信開銷較大的問題.比如,在系統(tǒng)運(yùn)行過程中當(dāng)出現(xiàn)大量用戶權(quán)限變更頻繁(如系統(tǒng)屬性撤銷、用戶屬性撤銷以及用戶退出、用戶私鑰泄露)時(shí),密文更新帶來的巨大計(jì)算量易造成系統(tǒng)瓶頸.因此需要考慮一種高效的更新方法,在保證密文安全性的同時(shí)能夠以較低計(jì)算開銷來應(yīng)對(duì)屬性撤銷或用戶私鑰撤銷.
近年來,許多學(xué)者已經(jīng)關(guān)注屬性基加密安全數(shù)據(jù)共享中屬性撤銷及用戶私鑰撤銷的需求,并在應(yīng)對(duì)高效屬性撤銷及密文更新的問題上做了大量研究工作.
密文策略屬性加密中的屬性撤銷問題首次在文獻(xiàn)[1]中提出,需要用戶與屬性授權(quán)中心多次交互;文獻(xiàn)[2]在文獻(xiàn)[1]的基礎(chǔ)上為每個(gè)用戶和屬性添加截止日期,解決了密鑰多次協(xié)商問題.但要求保持用戶和授權(quán)中心實(shí)時(shí)在線;文獻(xiàn)[3]提出的方案限制了用戶剩余屬性的解密權(quán)限,不符合數(shù)據(jù)屬主設(shè)置訪問策略的初衷;文獻(xiàn)[4]通過實(shí)現(xiàn)用戶私鑰及密文同步更新來達(dá)到用戶屬性撤銷的目的,但訪問結(jié)構(gòu)單一;文獻(xiàn)[5]未考慮系統(tǒng)屬性撤銷;文獻(xiàn)[6]在用戶屬性及用戶私鑰撤銷時(shí)均需要更新部分密文,計(jì)算開銷較大.
文獻(xiàn)[7]提出的屬性撤銷方案中公鑰參數(shù)與用戶數(shù)量線性相關(guān),易造成公鑰參數(shù)過長;文獻(xiàn)[8]在實(shí)現(xiàn)屬性撤銷時(shí)只需進(jìn)行密文密鑰部分更新,但用戶屬性撤銷實(shí)質(zhì)上是移除被撤銷屬性對(duì)應(yīng)的權(quán)限,剩余屬性權(quán)限應(yīng)保留,此時(shí)可以通過直接更新用戶私鑰的方式實(shí)現(xiàn);文獻(xiàn)[9]基于shamir秘密共享及訪問樹結(jié)構(gòu)提出了屬性撤銷方案,但在秘密共享的效率上低于線性秘密分享方案(linear secret sharing scheme, LSSS)[10];文獻(xiàn)[11]基于文獻(xiàn)[12]構(gòu)造免密鑰托管的密鑰產(chǎn)生協(xié)議,但要求用戶屬性撤銷后不具備任何訪問權(quán)限,這和實(shí)際情況不相符,且方案不能支持高效的系統(tǒng)屬性撤銷.
文獻(xiàn)[13]在撤銷屬性過程中采用懶惰重加密技術(shù)更新密文,計(jì)算及通信開銷較大;文獻(xiàn)[14]利用代理重加密技術(shù)將屬性撤銷實(shí)現(xiàn)系統(tǒng)屬性撤銷,但未給出用戶屬性撤銷及用戶私鑰撤銷算法;文獻(xiàn)[15]提出的方案在密鑰維護(hù)代價(jià)方面有待改進(jìn),需要考慮如何降低密鑰更新的工作量以及實(shí)現(xiàn)屬性直接撤銷;文獻(xiàn)[16]利用屬性組的概念有效地解決了屬性撤銷的問題,但組管理器需要更新其他用戶的密鑰;文獻(xiàn)[17]提出一種支持關(guān)鍵字搜索與屬性撤銷的屬性加密方案,可以在分布式多屬性授權(quán)中心下實(shí)現(xiàn)細(xì)粒度的搜索授權(quán);文獻(xiàn)[18]通過設(shè)置代理解密密鑰列表實(shí)現(xiàn)用戶私鑰撤銷,但未給出屬性撤銷的實(shí)現(xiàn)方法;文獻(xiàn)[19]能夠?qū)崿F(xiàn)屬性級(jí)用戶撤銷,但需要將被撤銷屬性對(duì)應(yīng)的密文進(jìn)行更新,若訪問策略涉及被撤銷屬性的密文數(shù)量較多時(shí),云端密文更新計(jì)算開銷過大.
文獻(xiàn)[20]中,中央控制在解密過程中通過直接拒絕為撤銷列表中的用戶返回中間密文達(dá)到撤銷用戶的目的.雖然所構(gòu)造方案利用安全兩方計(jì)算技術(shù)解決了密鑰托管問題,但此時(shí)密文的安全性過度依賴于中央控制的可靠性,被撤銷用戶若通過某種手段獲取密文后仍然具備密文解密能力,因此降低了存儲(chǔ)密文的安全性;文獻(xiàn)[21]通過對(duì)被撤銷屬性對(duì)應(yīng)的密文進(jìn)行更新實(shí)現(xiàn)用戶屬性撤銷;文獻(xiàn)[22]利用屬性撤銷加密原語和Merkle散列樹來實(shí)現(xiàn)細(xì)粒度的訪問控制和可驗(yàn)證的數(shù)據(jù)刪除;文獻(xiàn)[23]提出了LU-MA-ABE(large universe and multi-authority attribute-based encryption)方案,同時(shí)支持解密外包,屬性撤銷以及策略更新;文獻(xiàn)[24]在霧計(jì)算系統(tǒng)中提出基于多授權(quán)中心屬性簽密的數(shù)據(jù)訪問控制方案(data access control scheme based on multi-auth-ority attribute-based signcryption with computation outsourcing and attribute revocation, OMDAC-ABSC),支持匿名身份認(rèn)證,屬性撤銷以及公開驗(yàn)證.但上述文獻(xiàn)并未就系統(tǒng)屬性撤銷及用戶私鑰撤銷展開研究.
通過上述國內(nèi)外相關(guān)研究進(jìn)展分析,現(xiàn)階段實(shí)現(xiàn)支持間接屬性撤銷的用戶權(quán)限變更主要依賴于密文密鑰的更新.雖然基于屬性版本密鑰更新可以實(shí)現(xiàn)相關(guān)密文密鑰的同步演化,避免數(shù)據(jù)重加密的帶來的計(jì)算開銷,但對(duì)于用戶屬性撤銷而言,若數(shù)據(jù)中心包含大量涉及被撤銷屬性的密文,則計(jì)算代價(jià)過高.本文基于密文策略屬性加密展開研究,通過為用戶及屬性設(shè)置版本密鑰,設(shè)計(jì)支持高效用戶屬性撤銷、用戶私鑰撤銷及系統(tǒng)屬性撤銷的數(shù)據(jù)外包密文策略屬性加密方案,即SDCUR-UABE(updatable attribute-based encryption scheme supporting dynamic change of user rights),由此實(shí)現(xiàn)高效的用戶權(quán)限動(dòng)態(tài)變更,并利用密鑰分割技術(shù)將數(shù)據(jù)解密外包來降低用戶解密開銷.
假設(shè)G0,G1是2個(gè)階為大素?cái)?shù)p的乘法循環(huán)群,雙線性映射e:G0×G0→G1具有3個(gè)性質(zhì):
1) 雙線性性.對(duì)任意g1,g2∈G0以及a,b∈p,都有
2) 非退化性.存在g0∈G0,使得e(g0,g0)≠1.
3) 可計(jì)算性.對(duì)任意g1,g2∈G0,存在多項(xiàng)式時(shí)間算法計(jì)算e(g1,g2).
每一個(gè)單調(diào)的布爾表達(dá)式都可以轉(zhuǎn)化為一個(gè)等價(jià)的LSSS秘密共享方案[21],一個(gè)參與方集合Q上的LSSS秘密共享矩陣是p域上線性的,如果它具有2個(gè)性質(zhì):
2) 秘密共享方案存在一個(gè)共享生成矩陣Ml×m,對(duì)所有i=1,2,…,l,M的第i行Mi被標(biāo)識(shí)為參與方ρ(i)(ρ:{1,2,…,l}→Q),同時(shí)有列向量v=(s,r2,r3,…,rm)T,其中s∈p是將要共享的秘密值,而r2,r3,…,rm∈p是隨機(jī)數(shù).則向量M·v為秘密s的l個(gè)共享子秘密,且(M·v)i屬于ρ(i).
假定一個(gè)LSSS秘密共享方案的訪問結(jié)構(gòu)為Λ.令S∈Λ為一個(gè)授權(quán)屬性集合,定義I?{1,2,…,l}且I={i:ρ(i)∈S}.存在常量{ωi∈p}i∈I對(duì)任意合法共享秘密{λi},有其中ε=(1,0,…,0).這些常量值{ωi}可以在與共享生成矩陣M的大小相關(guān)的多項(xiàng)式時(shí)間內(nèi)計(jì)算出來,而對(duì)于未授權(quán)的集合,這些常量值不存在.
選擇一個(gè)階為大素?cái)?shù)p的群G0,其生成元為g.隨機(jī)選取a,s,b1,b2,…,bq∈p,給定敵手參數(shù):
y=(g,gs,ga,…,g(aq),g(aq+2),…,g(a2q),
?1≤j≤q:gs bj,gabj,…,g(aqbj),g(aq+2bj),…,
g(a2qbj),
?1≤j,k≤q,k≠j:ga s bkbj,ga2s bkbj,…,
g(aq s bkbj)),
對(duì)于敵手而言,區(qū)分e(g,g)aq+1s∈G1和G1中的某個(gè)隨機(jī)元素R是困難的.
本文提出的SDCUR-UABE方案系統(tǒng)模型如圖1所示.系統(tǒng)主要由屬性授權(quán)中心(attribute auth-ority, AA)、云存儲(chǔ)服務(wù)器(cloud storage server, CSS)、代理解密服務(wù)器(proxy decryption server, PDS)、數(shù)據(jù)屬主(data owner, DO)和數(shù)據(jù)用戶(data user, DU)5個(gè)部分組成,分別提供密鑰生成、密文存儲(chǔ)、代理解密、數(shù)據(jù)加密和數(shù)據(jù)解密服務(wù).DO可通過終端進(jìn)行數(shù)據(jù)加密并上傳至CSS,而DU可通過云端下載數(shù)據(jù)并解密.在數(shù)據(jù)解密時(shí),系統(tǒng)將計(jì)算開銷較大的部分運(yùn)算外包給代理解密服務(wù)器來降低DU計(jì)算開銷.由于代理解密服務(wù)器和云服務(wù)商是誠實(shí)并好奇的,它們既會(huì)誠實(shí)地按照指示正確地執(zhí)行步驟,也會(huì)出于好奇在工作過程中窺探用戶數(shù)據(jù)隱私.因此在方案設(shè)計(jì)中,代理服務(wù)器所持有的代理解密密鑰并不能將密文還原成明文,而用戶上傳的數(shù)據(jù)在云存儲(chǔ)服務(wù)器中也始終以密文形式存儲(chǔ).各參與方的職責(zé)在3.2節(jié)方案構(gòu)建中進(jìn)行具體描述.
Fig. 1 System model of SDCUR-UABE圖1 SDCUR-UABE方案系統(tǒng)模型
定義雙線性映射e:G0×G0→G1以及散列函數(shù)H1:{0,1}*→G0.其中,{0,1}*代表任意長度的二進(jìn)制串.本文方案包含5個(gè)階段:
1)Setup(λ,U)→(PK,MK,PKx).
初始化過程,由屬性授權(quán)中心執(zhí)行.輸入為安全參數(shù)及全局描述.為覆蓋最一般的情形,令U={0,1}*,隨機(jī)選擇α,a,β∈p,設(shè)置主私鑰MK=(β,gα),公開參數(shù)PK=(g,e(g,g)α,ga,H1).屬性授權(quán)中心為系統(tǒng)屬性集中的每個(gè)屬性x設(shè)置屬性版本Vx∈p(可以與時(shí)間相關(guān))以及公開屬性密鑰PKx=gVx.
2)KeyGen(MSK,S)→(SK,TK).
密鑰產(chǎn)生過程,由屬性授權(quán)中心執(zhí)行.選擇隨機(jī)的變量t,z∈首先設(shè)置轉(zhuǎn)換密鑰
TK=(PK,L=gβ t z,
{Kx}x∈S={(H1(x)×gVx)β t z}x∈S).
然后設(shè)置用戶版本密鑰VKu=gα βgat以及用戶私鑰SK=(z,TK).
3)Encrypt(PK,m∈{0,1}k,(M*,ρ))→CT.
數(shù)據(jù)加密階段,由數(shù)據(jù)屬主執(zhí)行.輸入為公開參數(shù)PK以及消息m.此外,輸入LSSS類型的訪問策略(M,ρ),函數(shù)ρ將矩陣M的每一行映射到一個(gè)屬性,其中M是一個(gè)l×n的矩陣.算法隨機(jī)選擇列向量v=(s,r2,r3,…,rn)∈用于共享秘密s.對(duì)于所有的i=1,2,…,l,有λi=(M·v)i,其中Mi是矩陣M的第i行.另外,算法隨機(jī)選擇變量r1,r2,…,rl∈p,產(chǎn)生密文CT=(C,C′,(Ci,Di)),其中:
C=m×e(g,g)αs,
(1)
C′=gβ s z,
(2)
(Ci,Di)=((C1=ga λ1×(H1(ρ(1))×gVρ(1))-r1,
D1=gr1),…,(Cl=ga λl×(H1(ρ(l))×gVρ(l))-rl,
Dl=grl))
(3)
以及對(duì)訪問矩陣的描述(M,ρ).
4)Transform(TK,CT)→parCT.
代理解密階段,由代理解密服務(wù)器運(yùn)行.算法輸入為某個(gè)屬性集合S對(duì)應(yīng)的TK=(PK,L,{Kx}x∈S),以及對(duì)應(yīng)于(M,ρ)的密文CT=(C,C′,(Ci,Di)).若屬性集合S不滿足設(shè)定的訪問結(jié)構(gòu),則輸出⊥.若滿足,則定義集合I={i:ρ(i)∈S},且滿足I?{1,2,…,l}.存在常量{ωi∈p}i∈I,對(duì)任意合法共享秘密份額{λi},都有成立.計(jì)算半解密密文為
(4)
5)UserVerandDec(C′,VKu,parCT)→CT′.
用戶驗(yàn)證階段,由屬性授權(quán)中心執(zhí)行,輸入為密文構(gòu)件C′,用戶版本密鑰VKu及半解密密文parCT并計(jì)算:
CT′=e(C′,VKu)parCT=
e(gβ s z,gα βga t)e(g,g)a t β s z=e(g,g)α s z.
(5)
6)Decrypt(SK,CT′)→m.
數(shù)據(jù)解密階段,客戶端執(zhí)行,輸入為用戶私鑰及半解密密文并計(jì)算:
m′=CCT′SKu=m×e(g,g)αs(e(g,g)αs z)z=m.
(6)
用戶權(quán)限變更包括用戶屬性撤銷、系統(tǒng)屬性撤銷以及用戶私鑰撤銷3種情況,相對(duì)應(yīng)的用戶權(quán)限的變化情況分析為:用戶某屬性因?yàn)榈狡诨蛘咂渌虮怀蜂N時(shí),不能影響該用戶剩余屬性集的解密能力以及擁有該屬性的其他用戶的解密權(quán)限;撤銷系統(tǒng)某屬性影響擁有該屬性的所有用戶的解密能力,同時(shí)需要對(duì)訪問策略涉及該屬性的所有密文進(jìn)行更新;用戶私鑰撤銷即撤銷該用戶的所有訪問權(quán)限(可以看做是用戶屬性撤銷的特殊情形,等價(jià)于撤銷該用戶所有屬性).
3.3.1 用戶屬性撤銷
TK′=(PK,L=gβ t z,{Kx}x∈S).
(7)
對(duì)于?x∈S,x≠att,有:
{Kx}x∈S={(H1(x)×gVx)β t z}x∈S;
(8)
對(duì)于x=att,有:
(9)
由于用戶屬性撤銷而非私鑰撤銷,因此用戶A剩余屬性集的解密能力以及擁有該屬性的其他用戶的解密權(quán)限不變,此時(shí)無需更新用戶版本密鑰.為保證密文的前向安全性,可以從3個(gè)方面討論方案正確性.
1) 撤銷att前可解密,撤銷之后亦可解密.
由代理解密過程知,在半解密密文parCT以及CT′=e(C′,VKu)parCT計(jì)算過程中,私鑰分量TK的更新只影響中的計(jì)算,即由LSSS秘密共享方案知,若剩余屬性集合仍滿足訪問結(jié)構(gòu)(即(M,ρ)),則存在常量{ωi∈p}i∈I使得即不影響后續(xù)解密.
2) 撤銷att前可解密,撤銷之后不可解密.
同理,若撤銷att前可解密,說明在上述過程中最后環(huán)節(jié)存在常量{ωi∈p}i∈I使得而撤銷屬性att后(可能是關(guān)鍵屬性),使得剩余屬性集合不滿足訪問矩陣,因此不存在常量{ωi∈p}i∈I來恢復(fù)共享秘密s.上述情形成立.
3) 撤銷att前不可解密,撤銷之后不可解密.
同理,若撤銷att前不可解密,說明在上述過程中最后環(huán)節(jié)不存在常量{ωi∈p}i∈I來恢復(fù)共享秘密s.由于訪問結(jié)構(gòu)的單調(diào)性,顯然撤銷屬性att后剩余屬性集合仍不滿足訪問矩陣,即無法完成解密.上述情形成立.
用戶屬性撤銷過程可由屬性授權(quán)中心獨(dú)立完成,只需對(duì)用戶私鑰的部分構(gòu)件進(jìn)行更新即可,無需對(duì)其他用戶私鑰對(duì)應(yīng)的轉(zhuǎn)換密鑰以及訪問策略涉及被撤銷屬性的密文進(jìn)行更新,能夠極大降低因用戶屬性撤銷引起的權(quán)限變更的相關(guān)計(jì)算開銷.
3.3.2 系統(tǒng)屬性撤銷
系統(tǒng)屬性撤銷和用戶屬性撤銷類似.由于系統(tǒng)屬性撤銷涉及包含該屬性的所有用戶,因此對(duì)相應(yīng)的用戶需要分發(fā)新的私鑰分量TK,同時(shí)對(duì)訪問矩陣中涉及被撤銷屬性的密文進(jìn)行更新.
需要說明的是系統(tǒng)屬性撤銷后,在訪問策略不變的情形下,包含被撤銷屬性的用戶解密權(quán)限降低,可能會(huì)背離數(shù)據(jù)屬主定義策略的初衷,但通過本節(jié)提出的屬性撤銷算法,能夠在保證已有密文的前向安全性基礎(chǔ)上保留數(shù)據(jù)屬主原有訪問策略的可解密用戶范圍,而非簡單地將撤銷屬性的部分構(gòu)件去掉.應(yīng)滿足:之前有屬性att且可不可訪問的,撤銷att后還能不可訪問;對(duì)于之前沒有att且可訪問不可訪問的用戶,在系統(tǒng)屬性att撤銷后仍能保持原有權(quán)限.此時(shí)用戶版本密鑰無需更新.
這里,通過對(duì)轉(zhuǎn)換密鑰和涉及被撤銷屬性的密文中屬性版本的更新,實(shí)現(xiàn)系統(tǒng)屬性撤銷,保證撤銷前密文的前向安全性.具體過程為:
撤銷系統(tǒng)某屬性att時(shí)(對(duì)應(yīng)屬性版本為Vatt),
TK′=(PK,L=gβ t z,{Kx}x∈S).
(10)
對(duì)于?x∈S,x≠att,有:
{Kx}x∈S={(H1(x)×gVx)β t z}x∈S;
(11)
對(duì)于x=att,有:
(12)
C=m×e(g,g)αs,C′=gβ s z.
(13)
?ρ(i)≠att,
(Ci,Di)=(Ci=ga λi×(H1(ρ(i))×
gVρ(i))-ri,Di=gri);
(14)
?ρ(i)=att,
(15)
系統(tǒng)屬性撤銷過程需要為擁有待撤銷屬性的用戶進(jìn)行代理解密密鑰部分更新,并為訪問策略中包含待撤銷屬性的密文進(jìn)行相應(yīng)更新.但通過本節(jié)提出的屬性撤銷算法,能夠在保證已有密文的前向安全性基礎(chǔ)上保留數(shù)據(jù)屬主原有訪問策略的可解密用戶范圍.為實(shí)現(xiàn)上述目標(biāo),可從4個(gè)方面討論方案正確性.
1) 用戶持有屬性att,撤銷前可解密,撤銷之后亦可解密.
撤銷系統(tǒng)屬性att之前,轉(zhuǎn)換密鑰TK為
TK=(PK,L=gβ t z,
{Kx}x∈S={(H1(x)×gVx)β t z)x∈S.
(16)
(17)
同時(shí)升級(jí)密文構(gòu)件,即?ρ(i)=att,
(18)
由于轉(zhuǎn)換密鑰和密文中涉及att的構(gòu)件是同步更新,因此保證了系統(tǒng)屬性att撤銷之后擁有屬性att且撤銷前可解密的用戶仍然能夠解密密文.
2) 用戶持有屬性att,撤銷前不可解密,撤銷之后亦不可解密.
同理,撤銷系統(tǒng)屬性att之后,上述情形用戶私鑰對(duì)應(yīng)的轉(zhuǎn)換密鑰中涉及att的構(gòu)件以及密文中包含att的構(gòu)件為同步更新,在系統(tǒng)屬性撤銷前該類型用戶不具備解密條件,撤銷之后仍然不具備解密條件.
3) 用戶屬性集不包含att,撤銷前可解密,撤銷之后亦可解密.
4) 用戶屬性集不包含att,撤銷前不可解密,撤銷之后亦不可解密.
同理可以說明,系統(tǒng)屬性att撤銷前后上述用戶解密權(quán)限不變.
3.3.3 用戶私鑰撤銷
當(dāng)系統(tǒng)中某些用戶被判定為“惡意用戶”或者某些用戶因其他原因退出系統(tǒng)時(shí),需要通過撤銷該用戶私鑰以保證該用戶可解密密文的安全性.
階段2.重復(fù)階段1的私鑰詢問過程,其中問詢的屬性集合Sq1+1,Sq1+2,…,Sq對(duì)應(yīng)的私鑰均不滿足要挑戰(zhàn)的訪問結(jié)構(gòu)M*.
|Pr[b′=b]-12|.
(19)
定義1.SDCUR-UABE方案是安全的,如果在多項(xiàng)式時(shí)間內(nèi)沒有敵手能夠以不可忽略的優(yōu)勢贏得上述游戲.
定理1.若判定性q-Parallel BDHE假設(shè)成立,那么沒有多項(xiàng)式時(shí)間的敵手能夠選擇性地攻破本文提出的SDCUR-UABE方案,其中挑戰(zhàn)矩陣為M*,大小為l*×n*,其中l(wèi)*,n*≤q.
(20)
如果X=?,則設(shè)置hx=gzx.由于zx是隨機(jī)選取的,因此上述參數(shù)是隨機(jī)分布的.
模擬器首先選擇一個(gè)隨機(jī)值r∈p,并找到一個(gè)向量ω=(ω1,ω2,…,ωn*)∈使得ω1=-1并且對(duì)于滿足ρ*(i)∈S所有的i,都有由LSSS定義知這樣一個(gè)向量必然存在.注意若這樣一個(gè)向量不存在,則向量(1,0,…,0)為屬性集S的長度.模擬器設(shè)置
(21)
即t=(r+ω1aq+ω2aq-1+…+ωn*aq-n*+1)β.通過對(duì)t進(jìn)行定義,可以看到gat包含代數(shù)式項(xiàng)g-aq+1β,在創(chuàng)建VKu的過程中可以通過與gα β=gα′β·gaq+1β進(jìn)行乘法運(yùn)算消去.
模擬器計(jì)算VKu:
(22)
對(duì)于?x∈S來計(jì)算Kx.如果不存在i滿足ρ*(i)=x,可令Kx=Lzx×LVx.對(duì)于x∈S且x在訪問結(jié)構(gòu)中出現(xiàn)的情形,必須保證gaq+1bi形式的項(xiàng)都能夠被模擬.此外,有因此這些項(xiàng)都能夠消去.
仍然令X是滿足ρ*(i)=x這一條件的i的集合,模擬器創(chuàng)建Kx:
(23)
(24)
(25)
(26)
證畢.
定理2.本文提出的SDCUR-UABE方案中設(shè)置的代理解密服務(wù)器不影響方案的安全性,且該方案能夠抵抗用戶與代理解密服務(wù)器之間的合謀攻擊.
證明. 首先,方案中設(shè)置的代理解密服務(wù)器所持有的代理解密密鑰TK為半解密密鑰,其密鑰構(gòu)件L=gβ t z及{Kx}x∈S={(H1(x)×gVx)β t z}x∈S與屬性授權(quán)中心執(zhí)行密鑰產(chǎn)生算法所選擇隨機(jī)的變量t,z∈有關(guān).進(jìn)行代理解密時(shí)生成的半解密密文e(g,g)at β s z對(duì)于非授權(quán)用戶而言仍以密文形式存儲(chǔ),因而在降低合法用戶解密開銷的同時(shí)保證了密文的安全性.
考慮多個(gè)用戶及代理解密服務(wù)器之間進(jìn)行合謀的場景.正常進(jìn)行代理解密計(jì)算過程為
(27)
(28)
由于用戶各自持有的私鑰為不同的隨機(jī)變量zi且變量t在用戶私鑰生成時(shí)隨機(jī)選取,此時(shí)無法將表達(dá)式e((H1(ρ(i))×gVρ(i)),g)βriωi(-t z+t′z′)消去,因此在計(jì)算過程中各自屬性集不滿足訪問策略的合謀用戶之間無法利用其他用戶私鑰對(duì)應(yīng)的TK密鑰(代理解密服務(wù)器持有)構(gòu)件完成代理解密過程,即合謀攻擊失敗.
證畢.
本節(jié)對(duì)SDCUR-UABE方案在數(shù)據(jù)加解密、用戶屬性撤銷、系統(tǒng)屬性撤銷以及用戶私鑰撤銷過程的計(jì)算開銷進(jìn)行分析.定義符號(hào)含義如表1所示:
Table 1 Symbols and Meanings表1 符號(hào)及含義
由于方案將大量的解密運(yùn)算外包給CSS,用戶解密時(shí)只需1次冪運(yùn)算即可.綜上,用戶加密計(jì)算開銷為(|Ap|+3)exp,解密過程計(jì)算開銷為exp.
若撤銷用戶A某屬性att,首先在用戶私鑰對(duì)應(yīng)的轉(zhuǎn)換密鑰的更新階段,授權(quán)中心AA首先更新屬性密鑰需要一次冪操作,代理解密服務(wù)器使用更新密鑰更新轉(zhuǎn)換密鑰只需要一次乘法操作即可完成.由3.3.1節(jié)分析可知,此時(shí)無需更新密文.
撤銷系統(tǒng)某屬性att時(shí),需要對(duì)所有訪問策略涉及att的密文進(jìn)行更新.本文系統(tǒng)屬性撤銷過程中AA更新屬性密鑰需要一次冪操作,然后為訪問策略里包含屬性att的密文生成一個(gè)升級(jí)密鑰CUK需要1次冪操作,此時(shí)AA計(jì)算開銷為2exp;接下來代理解密服務(wù)器使用更新密鑰為屬性集包含被撤銷屬性的所有用戶更新相應(yīng)的轉(zhuǎn)換密鑰(每次更新只需要一次乘法操作即可完成),計(jì)算開銷可記為|ASatt|×c;此外,在保證已有密文的前向安全性基礎(chǔ)上為保留數(shù)據(jù)屬主原有訪問策略的可解密用戶范圍,需要云存儲(chǔ)服務(wù)器對(duì)密文訪問結(jié)構(gòu)中涉及被撤銷屬性的所有用戶更新密文構(gòu)件(根據(jù)獲得的升級(jí)密鑰更新一次密文只需要一次乘法操作即可完成),計(jì)算開銷為|CTatt|×c.
Table 2 Comparison of Security and Computation Cost in User Attribute Revocation表2 安全性及用戶屬性撤銷過程計(jì)算開銷對(duì)比
Table 3 Comparison of Computation Cost in System Attribute Revocation and User Private Key Revocation表3 系統(tǒng)屬性撤銷及用戶私鑰撤銷過程計(jì)算開銷對(duì)比
由表2、表3的對(duì)比結(jié)果可知,文獻(xiàn)[4]缺乏解密外包機(jī)制導(dǎo)致用戶解密計(jì)算開銷較大,且在用戶屬性撤銷時(shí)需要將未被撤銷屬性的用戶私鑰和所有訪問策略涉及被撤銷屬性的密文進(jìn)行更新;類似地,文獻(xiàn)[5,8,11,13-15]均存在用戶解密開銷大的問題,一方面在用戶屬性撤銷時(shí)需要同時(shí)更新密文密鑰,另一方面沒有考慮到用戶權(quán)限變更中的系統(tǒng)屬性或者用戶私鑰撤銷情形.文獻(xiàn)[20]將解密運(yùn)算過程中復(fù)雜的雙線性配對(duì)運(yùn)算外包給云服務(wù)商來提高解密效率,但用戶屬性撤銷實(shí)質(zhì)是被撤銷屬性對(duì)應(yīng)權(quán)限的移除,剩余屬性權(quán)限應(yīng)當(dāng)保留,此時(shí)可以通過直接更新用戶私鑰的方式實(shí)現(xiàn),在計(jì)算開銷上優(yōu)于“通過計(jì)算更新密鑰對(duì)不包含被撤銷屬性的用戶密鑰與包含被撤銷屬性的密文進(jìn)行更新”實(shí)現(xiàn)的用戶屬性撤銷.
通過理論分析,本文在加解密功能實(shí)現(xiàn)和用戶權(quán)限變更的效率上具有較大優(yōu)勢.為了對(duì)方案的實(shí)際性能進(jìn)行評(píng)估,本節(jié)在密鑰生成、數(shù)據(jù)加密、代理解密以及用戶解密4個(gè)方面與VFO-CP-ABE(fully outsourced ciphertext-policy attribute-based encryp-tion with verifiability)方案[25]進(jìn)行計(jì)算時(shí)間的仿真實(shí)驗(yàn)測試對(duì)比.該方案是一種支持可驗(yàn)證的完全外包密文策略屬性基加密方案,能夠同時(shí)實(shí)現(xiàn)密鑰生成、數(shù)據(jù)加密以及解密階段的外包計(jì)算功能,解決上述各階段需要大量計(jì)算資源的問題,對(duì)于計(jì)算資源有限的用戶優(yōu)勢更為明顯.實(shí)驗(yàn)環(huán)境描述如下:
Fig. 2 Comparison of computation cost for key steps of SDCUR-UABE圖2 SDCUR-UABE方案中關(guān)鍵步驟計(jì)算開銷對(duì)比
Windows 64 b操作系統(tǒng)、Intel?CoreTMi7-4770 CPU (3.4 GHz)、內(nèi)存12 GB、基于JPBC(Java pairing-based cryptography)庫進(jìn)行實(shí)驗(yàn)代碼的編寫.
在參與對(duì)比方案的具體實(shí)現(xiàn)過程中使用(att1ANDatt2AND … ANDattn)形式的訪問策略進(jìn)行測試,其中atti代表屬性.參與測試的屬性數(shù)量每次以10遞增,選取從10~100共10種訪問策略.對(duì)于每種策略重復(fù)進(jìn)行多次獨(dú)立測試,去掉最高值與最低值后取剩余數(shù)據(jù)平均值作為本次測試對(duì)象的實(shí)驗(yàn)結(jié)果.
實(shí)驗(yàn)測試結(jié)果如圖2所示,圖2(a)~(d)分別展示了SDCUR-UABE方案與VFO-CP-ABE方案在密鑰生成、數(shù)據(jù)加密、代理解密以及用戶解密4個(gè)方面的計(jì)算開銷對(duì)比.由于VFO-CP-ABE方案中轉(zhuǎn)換密鑰TK和取回密鑰RK由解密用戶進(jìn)行KeyBlind(SK)運(yùn)算產(chǎn)生,而本文所提方案中轉(zhuǎn)換密鑰的產(chǎn)生由屬性授權(quán)中心產(chǎn)生,無需用戶參與.這里將KeyBlind(SK)過程開銷計(jì)入密鑰產(chǎn)生階段的總開銷.從實(shí)驗(yàn)結(jié)果來看,在密鑰生成階段本文提出的SDCUR-UABE與VFO-CP-ABE計(jì)算開銷相近;在加密階段SDCUR-UABE方案的開銷隨訪問策略中的屬性數(shù)量增加而增大,而VFO-CP-ABE進(jìn)行加密外包.解密過程包括代理服務(wù)器進(jìn)行部分解密和數(shù)據(jù)用戶解密2個(gè)階段.該過程中2個(gè)方案的計(jì)算開銷都較小,但從結(jié)果來看SDCUR-UABE方案更有優(yōu)勢.整體來說,本文提出的方案能夠滿足實(shí)際需求,且在解密運(yùn)算上具有較高的效率.
討論用戶屬性撤銷過程的計(jì)算開銷.這里主要對(duì)涉及相關(guān)運(yùn)算的屬性授權(quán)中心和云存儲(chǔ)服務(wù)器的計(jì)算開銷進(jìn)行測試.由表3分析結(jié)果可知,選取用于對(duì)比的LU-MA-ABE方案[23]和OMDAC-ABSC方案[24]均支持高效屬性撤銷.用戶屬性撤銷時(shí),LU-MA-ABE和OMDAC-ABSC方案中無需代理服務(wù)器參與運(yùn)算,而本文中分析代理服務(wù)器的開銷為常數(shù)(如乘法運(yùn)算等),計(jì)算量較小,在實(shí)驗(yàn)仿真中開銷可忽略.
需要說明的是LU-MA-ABE方案在每次進(jìn)行屬性撤銷時(shí)候需要對(duì)新選取的屬性組密鑰進(jìn)行被撤銷屬性的最小覆蓋集(minimum covering set, MCS)元素個(gè)數(shù)次的對(duì)稱加密.根據(jù)其定義的用于屬性組密鑰分發(fā)的二進(jìn)制狀態(tài)樹,最小覆蓋集元素個(gè)數(shù)NMCS為樹的高度h,即NMCS=h.在實(shí)驗(yàn)過程中選取的對(duì)稱加密密鑰長度為128 b,并基于sun.misc.BASE64Encoder和sun.misc.BASE64Decoder實(shí)現(xiàn)對(duì)屬性組密鑰的對(duì)稱加解密.LU-MA-ABE和OMDAC-ABSC方案中屬性授權(quán)中心的計(jì)算開銷分別依賴于二進(jìn)制狀態(tài)樹的高度和門限值的大小,這里選取從1~10共10種不同的變化(遞增值為1);而云存儲(chǔ)服務(wù)器進(jìn)行密文更新過程計(jì)算開銷分別依賴于訪問結(jié)構(gòu)中涉及的屬性數(shù)量以及訪問結(jié)構(gòu)中涉及被撤銷屬性的密文數(shù)量,這里選取從10~100共10種不同的變化(遞增值為10).
用戶屬性撤銷過程中AA的計(jì)算開銷實(shí)驗(yàn)對(duì)比結(jié)果如圖3(a)所示.由于LU-MA-ABE方案需要對(duì)屬性組密鑰進(jìn)行加密,計(jì)算開銷較大,且隨著狀態(tài)樹的高度增加呈線性增長;OMDAC-ABSC方案中AA主要進(jìn)行冪運(yùn)算,相對(duì)LU-MA-ABE方案開銷較小,但也隨著門限值的增加而增大.而本文中用戶屬性撤銷時(shí)AA只需要進(jìn)行固定次數(shù)的冪運(yùn)算,因此計(jì)算開銷較小.從實(shí)驗(yàn)結(jié)果來看,測試的相關(guān)參與方的計(jì)算開銷和理論分析一致.圖3(b)展示了該過程中云存儲(chǔ)服務(wù)器CSS的計(jì)算開銷對(duì)比,其中本文提出的SDCUR-UABE方案無需對(duì)密文進(jìn)行更新,因此在用戶屬性撤銷中更為高效.
Fig. 3 Comparison of computation overhead in user attribute revocation圖3 用戶屬性撤銷過程計(jì)算開銷對(duì)比
Fig. 4 Computation overhead in system attribute revocation圖4 系統(tǒng)屬性撤銷過程計(jì)算開銷
圖4和圖5分別展示了SDCUR-UABE方案在系統(tǒng)屬性撤銷和用戶私鑰撤銷時(shí)的計(jì)算開銷的仿真實(shí)驗(yàn)結(jié)果.由于大部分方案并未在用戶屬性撤銷的同時(shí)對(duì)系統(tǒng)屬性撤銷和用戶私鑰撤銷展開討論,因此這里只是對(duì)本文提出的方案在系統(tǒng)屬性撤銷和用戶私鑰撤銷過程的性能進(jìn)行測試和說明.從表3的理論分析可以看出,在這2個(gè)階段中,AA均只需要進(jìn)行固定次數(shù)的冪運(yùn)算,計(jì)算開銷較??;而代理服務(wù)器和云存儲(chǔ)服務(wù)器在用戶私鑰撤銷時(shí)無需參與運(yùn)算,在系統(tǒng)屬性撤銷時(shí)候只需要進(jìn)行固定次數(shù)的乘法運(yùn)算,計(jì)算開銷可以忽略.從仿真實(shí)驗(yàn)結(jié)果來看,SDCUR-UABE方案在計(jì)算性能上能夠滿足系統(tǒng)屬性撤銷和用戶私鑰撤銷的實(shí)際需求,且具有較高的效率,能夠有效應(yīng)對(duì)加密云存儲(chǔ)中頻繁的用戶權(quán)限變更的情形.
Fig. 5 Computation overhead in user private key revocation圖5 用戶私鑰撤銷過程計(jì)算開銷
針對(duì)云存儲(chǔ)系統(tǒng)中因用戶權(quán)限動(dòng)態(tài)變更帶來的密文密鑰更新計(jì)算開銷過大等問題,本文在密文策略屬性加密的基礎(chǔ)上通過構(gòu)造屬性版本密鑰和用戶版本密鑰設(shè)計(jì)了SDCUR-UABE方案.撤銷用戶屬性時(shí),無需對(duì)其他用戶私鑰及訪問策略中涉及被撤銷屬性的密文進(jìn)行更新,有效降低了密鑰授權(quán)中心與云存儲(chǔ)服務(wù)器的計(jì)算開銷;撤銷系統(tǒng)屬性時(shí),通過更新屬性版本密鑰并生成轉(zhuǎn)換密鑰及密文更新所需要的更新密鑰,實(shí)現(xiàn)對(duì)密文密鑰關(guān)鍵構(gòu)件的可替換更新,有效解決了通用方法中基于密鑰分發(fā)和重加密實(shí)現(xiàn)密文密鑰更新帶來的計(jì)算開銷大的問題以及未能保證密文前向安全性問題;撤銷用戶私鑰時(shí),只需要將用戶版本密鑰進(jìn)行更新,無需更新密文,避免了存儲(chǔ)密文重加密帶來的巨大計(jì)算及通信開銷.此外,方案在設(shè)計(jì)過程中將解密運(yùn)算開銷較大的部分外包給代理解密服務(wù)器,在保證數(shù)據(jù)安全性的前提下降低了客戶端的解密運(yùn)算開銷.理論分析及實(shí)驗(yàn)驗(yàn)證表明,本文提出的SDCUR-UABE方案能夠?qū)崿F(xiàn)用戶屬性、系統(tǒng)屬性以及用戶私鑰的高效撤銷,同時(shí)保證密文的前后向安全性和用戶解密的高效性,從而有效解決了屬性基加密云存儲(chǔ)系統(tǒng)中因用戶權(quán)限動(dòng)態(tài)變更所導(dǎo)致的密文密鑰更新計(jì)算開銷過大等問題.