張玉磊,,,
(西北師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,蘭州 730070)
云計(jì)算平臺(tái)可以將計(jì)算資源動(dòng)態(tài)地提供給用戶,數(shù)據(jù)擁有者能夠?qū)⒆约旱臄?shù)據(jù)存儲(chǔ)在云存儲(chǔ)服務(wù)器中。但存儲(chǔ)到云端的數(shù)據(jù)可能包含數(shù)據(jù)擁有者的敏感信息,因此,數(shù)據(jù)擁有者無法像管理本地?cái)?shù)據(jù)一樣保護(hù)數(shù)據(jù)的隱私和安全。傳統(tǒng)公鑰密碼系統(tǒng)僅支持“一對(duì)一”加密形式,缺乏靈活的訪問控制策略。2005年,文獻(xiàn)[1]提出了一種新的公鑰加密體制,即屬性基加密(Attribute-based Encrytion,ABE)體制。屬性基加密可以實(shí)現(xiàn)“一對(duì)多”的數(shù)據(jù)加密和高效的細(xì)粒度信息共享,因此,被認(rèn)為是云存儲(chǔ)平臺(tái)中靈活實(shí)現(xiàn)訪問控制的方法之一[2-3]?,F(xiàn)有的以密文策略為基礎(chǔ)的屬性基加密方案[4-6]僅適用于用戶屬性和密鑰的分發(fā)屬于同一機(jī)構(gòu),然而用戶屬性可能保存在不同的云存儲(chǔ)服務(wù)器。在實(shí)際應(yīng)用環(huán)境中,可能會(huì)發(fā)生屬性撤銷、用戶權(quán)限變更等操作,所以在多個(gè)服務(wù)器上實(shí)現(xiàn)數(shù)據(jù)安全共享并實(shí)現(xiàn)屬性撤銷成為亟待解決的問題。
對(duì)于單一授權(quán)機(jī)構(gòu)的可撤銷屬性基加密體制[7-8],中央授權(quán)機(jī)構(gòu)(Central Authority,CA)需管理所有用戶屬性和密鑰分發(fā),在計(jì)算規(guī)模較大的云存儲(chǔ)環(huán)境中,即使將加解密操作外包給第三方服務(wù)器,CA還是容易不堪重負(fù)造成運(yùn)行效率低和數(shù)據(jù)安全威脅等問題。2007年,文獻(xiàn)[9]提出了一個(gè)將私鑰和用戶身份標(biāo)記(GID)組合的屬性基加密方案。由于CA知道用戶私鑰和系統(tǒng)主密鑰,若CA遭到攻擊,那么所有的數(shù)據(jù)將被泄露,同時(shí),該方案沒有考慮屬性撤銷功能。2014年,文獻(xiàn)[10]提出一個(gè)無CA且屬性授權(quán)機(jī)構(gòu)(Attribute Authority,AA)之間不需要協(xié)同的方案,但該方案不能較好地實(shí)現(xiàn)身份隱藏。文獻(xiàn)[11]利用CA發(fā)布具有時(shí)間閾值期的密鑰實(shí)現(xiàn)屬性的撤銷問題,但該方案提出的這種撤銷方式不滿足前向和后向安全性。2015年,文獻(xiàn)[12]通過密鑰更新機(jī)制實(shí)現(xiàn)用戶撤銷,同時(shí)通過重加密操作保護(hù)云端的數(shù)據(jù)安全,但該方案未能實(shí)現(xiàn)屬性撤銷功能。2016年,文獻(xiàn)[13]提出了一個(gè)支持多授權(quán)方可撤銷屬性的屬性基加密方案,該方案滿足前向安全性和后向安全性,將時(shí)間期限加入到密文和解密密鑰中,實(shí)現(xiàn)屬性撤銷功能。本文提出一個(gè)多屬性授權(quán)機(jī)構(gòu)環(huán)境下基于CP-ABE的屬性撤銷加密方案。該方案結(jié)合代理重加密和密文策略屬性基加密技術(shù)實(shí)現(xiàn)屬性撤銷,使用多個(gè)屬性授權(quán)機(jī)構(gòu),可降低單個(gè)屬性授權(quán)機(jī)構(gòu)所帶來的安全威脅。用戶的私鑰由數(shù)據(jù)擁有者和多個(gè)屬性授權(quán)機(jī)構(gòu)共同產(chǎn)生,以抵御多個(gè)屬性授權(quán)機(jī)構(gòu)的共謀攻擊。
背景知識(shí)定義如下:
1)雙線性映射。設(shè)置2個(gè)階為素?cái)?shù)p的乘法循環(huán)群G和GT,存在一個(gè)雙線性映射e:G×G→GT能夠滿足如下性質(zhì):
(1)雙線性:?g,h∈G,?a,b∈Zp,滿足e(ga,hb)=e(g,h)ab。
(2)非退化性:?g∈G,滿足e(g,g)≠1,1是GT的單位元。
(3)可計(jì)算性:對(duì)P,Q∈G,能夠有效地計(jì)算e(P,Q)。
2)訪問結(jié)構(gòu)[14]。設(shè)參與者的集合P={P1,P2,…,Pn},授權(quán)參與者的子集合Γc=2{P1,P2,…,Pn},非授權(quán)參與者的子集合Γc=2{P1,P2,…,Pn}Γ。若B∈Γ且B?C,B、C的子集表示為{P1,P2,…,Pn},則C∈Γ,那么就稱Γ?2P單調(diào)。
Pr[B(ga,gb,gc,e(g,g)z)=1]|
系統(tǒng)主要包括數(shù)據(jù)擁有者(Data Owner,DO)、數(shù)據(jù)用戶(Data User,DU)、N個(gè)屬性授權(quán)中心(Attribute Authority,AA)和云存儲(chǔ)服務(wù)器(Cloud Storage Server,CSS)4個(gè)主體。可撤銷ABE系統(tǒng)架構(gòu)如圖1所示。
圖1 可撤銷ABE系統(tǒng)架構(gòu)系統(tǒng)結(jié)構(gòu)
1)數(shù)據(jù)擁有者:數(shù)據(jù)的擁有者為數(shù)據(jù)定制訪問結(jié)構(gòu)W并生成隨機(jī)數(shù)用于用戶解密,并對(duì)數(shù)據(jù)進(jìn)行加密操作上傳密文CT至云存儲(chǔ)服務(wù)器。
2)云存儲(chǔ)服務(wù)器:存儲(chǔ)DO上傳的密文CT,當(dāng)屬性授權(quán)中心AA通知需要更新密文時(shí),對(duì)DO上傳的密文進(jìn)行重加密操作。
3)屬性授權(quán)中心:系統(tǒng)中有N個(gè)AA,主要負(fù)責(zé)生成系統(tǒng)參數(shù)和主密鑰,管理DO的不同屬性集,為用戶生成、分發(fā)部分私鑰,要求AA被用戶完全信任。
4)用戶:數(shù)據(jù)的使用者。當(dāng)版本號(hào)驗(yàn)證成功并且屬性滿足密文相對(duì)應(yīng)的訪問結(jié)構(gòu)時(shí)可以解密密文。
多授權(quán)機(jī)構(gòu)的可撤銷屬性基加密方案包括以下算法:
1)Setup:多個(gè)屬性授權(quán)中心運(yùn)行該算法,首先生成一個(gè)屬性集合U,每個(gè)AA管理一個(gè)不同的屬性集合Ui,然后生成系統(tǒng)參數(shù)和系統(tǒng)主密鑰。
3)Encrypt:該算法由DO執(zhí)行。輸入消息m,指定訪問結(jié)構(gòu)W,輸出密文CT。
5)Decrypt:數(shù)據(jù)用戶收到密文后,首先檢查私鑰版本號(hào),若一致則進(jìn)行解密操作,否則更新密鑰并準(zhǔn)備執(zhí)行ReEncrypt算法;算法輸入SKL和L,輸出明文消息m。
6)Rekey Gen:當(dāng)系統(tǒng)中的用戶需要撤銷時(shí),屬性授權(quán)中心將新的版本號(hào)ux通過安全信道發(fā)送給用戶,輸出代理重加密密鑰Rsk。
7)ReEncrypt:該算法由CSS執(zhí)行。輸入密文CT和重加密密鑰Rsk,輸出重加密后的密文CT′。
下面將給出多屬性授權(quán)機(jī)構(gòu)環(huán)境下支持撤銷的CP-ABE方案在選擇明文攻擊下的不可區(qū)分性的安全模型。在這種安全模型中,敵手A需要選擇自己要挑戰(zhàn)的訪問結(jié)構(gòu)發(fā)送給挑戰(zhàn)者B,同時(shí)A能夠從B中獲得滿足自己訪問結(jié)構(gòu)的屬性集相應(yīng)的私鑰。通過敵手和挑戰(zhàn)者的游戲來構(gòu)建安全模型,模型為選擇明文安全。
1)初始化(Init)
2)系統(tǒng)建立(Setup)
B運(yùn)行Setup算法,將產(chǎn)生的系統(tǒng)參數(shù)params發(fā)送給A。
3)查詢階段1(Phase1)
A將自己的屬性集提交給B,B運(yùn)行密鑰生成算法生成相應(yīng)的私鑰發(fā)送給A。
4)挑戰(zhàn)階段(Challenge)
A向B提交2個(gè)消息長(zhǎng)度相等的明文M0和M1,B進(jìn)行拋硬幣實(shí)驗(yàn)隨機(jī)得b∈{0,1},然后運(yùn)行加密算法,將加密后的密文發(fā)給A。
5)查詢階段2(Phase2)
A進(jìn)行與Phase1一致的操作。
6)猜測(cè)(Guess)
A對(duì)b進(jìn)行猜測(cè),若猜測(cè)的b′=b,則B贏得了游戲。B進(jìn)行游戲獲得成功的公式為:
密文策略屬性基加密方案如下:
1)Setup
2)KenGen(msk,L)
3)Encrypt(params,m,W)
5)Decrypt(CT,SKL,params)
6)Rekeygen(U,params)
7)ReEncrypt(CT,Rsk)
云存儲(chǔ)服務(wù)器收到密文CT和重加密密鑰Rsk后,執(zhí)行以下計(jì)算:
輸出重加密密文:
8)Rekey(SKL,Rsk)
方案的正確性分析過程如下:
1)用戶從云存儲(chǔ)服務(wù)器獲得的合法密文CT可以被正確解密。
D=e(C0,d1)=e(gs,gr)=e(g,g)sr
2)密鑰更新后的重加密密文可以被正確解密。
本文提出的加密方案支持多屬性授權(quán)機(jī)構(gòu)環(huán)境下屬性撤銷,下文將給出方案選擇明文攻擊下密文不可區(qū)分性IND-CPA證明過程。當(dāng)用戶屬性撤銷操作發(fā)生時(shí),云服務(wù)器會(huì)重新計(jì)算密文,并更新版本號(hào)獲得新的密鑰。當(dāng)新用戶加入系統(tǒng)時(shí),密鑰中由DO生成的隨機(jī)數(shù)已經(jīng)改變,即使用戶獲得密鑰前已經(jīng)了解以前的密文并且滿足訪問結(jié)構(gòu),也不能解密出使用以前密鑰所加密的密文。
定理若DBDH困難問題在群(G0,G1)上成立,則方案具有IND-CPA安全。
挑戰(zhàn)者B隨機(jī)選擇a,b,c,z∈Zp,設(shè)G是乘法循環(huán)群,其階為素?cái)?shù)p,生成元是g;令e:G0×G0→G1是雙線性映射。挑戰(zhàn)者B隨機(jī)拋硬幣得到隨機(jī)值μ∈{0,1},若μ=0,令Z=e(g,g)abc,即(g,A,B,C,Z)=(g,ga,gb,gc,gabc),否則令Z=e(g,g)z,即(g,A,B,C,Z)=(g,ga,gb,gc,gz)。然后挑戰(zhàn)者B將所得結(jié)果發(fā)送給模擬者X,此時(shí)模擬者X在DBDH游戲中充當(dāng)挑戰(zhàn)者的角色。
1)初始化(Init)
2)系統(tǒng)建立(Setup)
3)查詢階段1(Phase1)
4)挑戰(zhàn)階段(Challenge)
5)查詢階段2(Phase2)
與查詢階段1一致。
6)猜測(cè)(Guess)
本節(jié)對(duì)文獻(xiàn)[6,13,16]的方案和本文方案的有無CA、單授權(quán)機(jī)構(gòu)/多授權(quán)機(jī)構(gòu)、屬性撤銷等方面進(jìn)行分析比較。
與文獻(xiàn)[6,16]的方案相比,本文方案支持屬性撤銷、無須CA、多屬性授權(quán)機(jī)構(gòu),具有更多的功能和更好的靈活性。當(dāng)發(fā)生用戶屬性撤銷時(shí),授權(quán)機(jī)構(gòu)就會(huì)更新密鑰中所包含的版本號(hào),利用云服務(wù)器重加密技術(shù)計(jì)算新的解密密鑰,因此,在用戶屬性撤銷發(fā)生時(shí),不會(huì)給DO和未被撤銷的DU增加額外的計(jì)算開銷。不同方案功能對(duì)比如表1所示,其中,√表示有,×表示無。
表1 不同方案功能對(duì)比
與文獻(xiàn)[13]方案相比,兩者均能實(shí)現(xiàn)多屬性授權(quán)機(jī)構(gòu)的屬性撤銷。通過理論數(shù)值分析,對(duì)本文方案和文獻(xiàn)[13]方案的計(jì)算開銷進(jìn)行比較。P表示為雙線性對(duì)運(yùn)算、E表示為指數(shù)運(yùn)算、M表示為點(diǎn)乘運(yùn)算,這3種運(yùn)算是開銷對(duì)比過程中主要考慮的運(yùn)算,其中雙線性對(duì)運(yùn)算的計(jì)算代價(jià)高。如表2所示,本文方案的加密過程對(duì)這3種運(yùn)算的使用比文獻(xiàn)[13]方案少;在解密過程中,本文方案比文獻(xiàn)[13]方案的指數(shù)運(yùn)算和雙線性對(duì)運(yùn)算也有明顯減少。因此,與文獻(xiàn)[13]方案相比,本文方案降低了加解密的計(jì)算開銷,具有較高的運(yùn)行效率。
表2 計(jì)算開銷表
本文構(gòu)造一個(gè)多屬性授權(quán)機(jī)構(gòu)環(huán)境下基于CP-ABE的屬性撤銷加密方案,該方案在DBDH困難問題假設(shè)下實(shí)現(xiàn)IND-CPA安全。通過版本號(hào)標(biāo)記法實(shí)現(xiàn)用戶屬性撤銷,建立訪問樹結(jié)構(gòu)管理不同屬性授權(quán)機(jī)構(gòu)所頒發(fā)的屬性,能夠抵抗多個(gè)屬性授權(quán)機(jī)構(gòu)的聯(lián)合攻擊,有效保護(hù)數(shù)據(jù)用戶的隱私,實(shí)現(xiàn)用戶的細(xì)粒度訪問。與文獻(xiàn)[6,13,16]方案相比,本文方案對(duì)消息加解密的效率更高。同時(shí),云存儲(chǔ)平臺(tái)和代理重加密技術(shù)可減少屬性授權(quán)機(jī)構(gòu)的工作量,降低用戶的計(jì)算消耗。