李 莉,楊鴻飛,董秀則
(1.北京電子科技學(xué)院電子與通信工程系,北京 100070;2.西安電子科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,西安 710071)
隨著現(xiàn)代社會(huì)信息化和云計(jì)算服務(wù)的發(fā)展,用戶將工作和生活中產(chǎn)生的大量電子文件遠(yuǎn)程存儲(chǔ)到云端并共享給其他用戶,然而云計(jì)算在為用戶提供方便的同時(shí)也帶來(lái)安全隱患[1]。首先,云計(jì)算環(huán)境是不完全可信的,為保護(hù)數(shù)據(jù)隱私,用戶需要將文件加密后存儲(chǔ),并通過(guò)解密密鑰實(shí)現(xiàn)密文訪問(wèn)。其次,身份認(rèn)證是保證云服務(wù)安全的前提,云服務(wù)提供方需要對(duì)用戶進(jìn)行身份認(rèn)證,以確保用戶身份的正確性和合法性。最后,數(shù)據(jù)訪問(wèn)控制是云服務(wù)安全的核心,利用云平臺(tái)對(duì)數(shù)據(jù)的訪問(wèn)控制,用戶可以安全地將文件存儲(chǔ)到云平臺(tái),并按權(quán)限對(duì)文件進(jìn)行訪問(wèn)。
傳統(tǒng)公鑰加密體制需要用到證書(shū)管理機(jī)構(gòu)(Certificate Authority,CA)對(duì)用戶進(jìn)行身份認(rèn)證,CA 需要維護(hù)大量的用戶數(shù)字證書(shū)。Shamir[2]提出了基于身份加密(Identity-Based Encryption,IBE)的思想。在IBE中,用戶身份信息是公鑰,用戶私鑰是由私鑰生成器(Private Key Generator,PKG)利用用戶身份信息產(chǎn)生的。當(dāng)用戶Alice 想要將文件File 共享給用戶Bob時(shí),Alice 可以利用其私鑰對(duì)文件File 進(jìn)行簽名,并利用Bob 的身份信息對(duì)文件File 進(jìn)行加密,然后將密文上傳到云端。用戶Bob 從云端獲取Alice 的密文,利用Bob 的私鑰解密文件,利用Alice的身份信息對(duì)簽名進(jìn)行驗(yàn)證。因此,IBE不需要將用戶身份的驗(yàn)證交于第三方。假如用戶Charlie 也想要獲取文件File,Alice 必須利用Charlie 的身份信息重新加密文件File,再上傳到云端,這造成了用戶負(fù)擔(dān)加重和資源浪費(fèi)。Blaze 等[3]提出了代理重加密(Proxy Re-Encryption,PRE)的概念,PRE 允許一個(gè)半可信的代理利用一個(gè)重加密密鑰將用戶Alice 公鑰加密的密文轉(zhuǎn)換為用戶Bob 公鑰加密的密文,轉(zhuǎn)換前后密文所對(duì)應(yīng)的明文保持不變,并且代理也無(wú)法獲取關(guān)于明文的任何信息。PRE中定義了多個(gè)重要屬性[4]:
1)非交互性。是指被授權(quán)者和代理不參與重加密密鑰的生成,其生成僅由授權(quán)者參與。
2)單向性。是指代理使用重加密密鑰只能對(duì)密文進(jìn)行單向轉(zhuǎn)換,即密文可以從授權(quán)者轉(zhuǎn)化到被授權(quán)者,而不能從被授權(quán)者轉(zhuǎn)化到授權(quán)者。與單向性對(duì)應(yīng)的是雙向性,雙向性是指重加密密鑰可以將A 和B 兩個(gè)用戶的密文相互轉(zhuǎn)換。雙向重加密密鑰可以由兩個(gè)單向重加密密鑰構(gòu)造,因此單向的方案更具有一般性。
3)抗共謀攻擊。是指即使被授權(quán)者和代理共謀,也不能獲得授權(quán)者的私鑰。
Green 等[5]將IBE 和PRE 進(jìn)行結(jié)合,設(shè)計(jì)了第一個(gè)基于身份的代理重加密(Identity-Based PRE,IBPRE)方案,代理可以直接將用戶Alice 身份信息加密的密文轉(zhuǎn)換為用戶Bob 身份信息加密的密文,并且滿足PRE 的特性,即轉(zhuǎn)換前后密文對(duì)應(yīng)的明文保持不變,代理無(wú)法獲得關(guān)于明文的任何信息。用戶利用IBPRE 技術(shù)在云服務(wù)平臺(tái)進(jìn)行文件共享時(shí),不需要將文件下載并解密,再重新加密上傳,只需要生成重加密密鑰交給云服務(wù)器,由云服務(wù)器進(jìn)行密文轉(zhuǎn)換即可。這一技術(shù)極大地減少了用戶的計(jì)算開(kāi)銷,同時(shí)也減少了用戶與云服務(wù)器、用戶與用戶之間的交互。隨后,Shao 等[6]提出了一種基于身份的條件代理重加密(Identity-Based Conditional PRE,IBCPRE)方案,代理可以使用與條件ε相關(guān)的重加密密鑰把在一個(gè)身份和條件ε下加密的密文轉(zhuǎn)換為具有相同明文的另一身份下加密的密文。
在傳統(tǒng)IBCPRE 中,數(shù)據(jù)擁有者生成條件重加密密鑰來(lái)限制代理服務(wù)器的重加密行為,而沒(méi)有限制用戶的訪問(wèn)權(quán)限。在實(shí)際場(chǎng)景中,用戶將大量文件密態(tài)托管到云平臺(tái)后,由于不同文件有不同的訪問(wèn)群體,文件存在不同的訪問(wèn)級(jí)別,云平臺(tái)需要對(duì)文件進(jìn)行分類存儲(chǔ)。在2020 年7 月發(fā)布的《數(shù)據(jù)安全法》草案中,也要求健全數(shù)據(jù)分級(jí)分類規(guī)則,實(shí)現(xiàn)分級(jí)分類管理。當(dāng)用戶訪問(wèn)云平臺(tái)上分級(jí)文件時(shí),云平臺(tái)需要首先確認(rèn)用戶訪問(wèn)權(quán)限,只有滿足權(quán)限的用戶才可以解密相應(yīng)密文。用戶的訪問(wèn)權(quán)限由第三方權(quán)威機(jī)構(gòu)確認(rèn),這樣一方面減輕數(shù)據(jù)擁有者的負(fù)擔(dān),另一方可以使云平臺(tái)方便管理用戶權(quán)限。本文針對(duì)文件分級(jí)管理的應(yīng)用需求,提出了一種基于身份多條件代理重加密(Identity-Based Multi-Conditional PRE,IBMCPRE)的文件分級(jí)訪問(wèn)控制方案,主要工作如下:1)引入可信分級(jí)管理單元,確定用戶等級(jí)并生成用戶重加密密鑰;2)重加密密鑰中嵌入代表用戶訪問(wèn)權(quán)限的條件集;3)密文中嵌入文件等級(jí)條件,若密文條件在重加密密鑰條件集內(nèi),則代理可以對(duì)密文進(jìn)行重加密;4)用戶上傳文件之后,文件所有權(quán)不再僅屬于用戶自身,而是屬于對(duì)文件有訪問(wèn)權(quán)限的所有用戶;5)代理服務(wù)器和分級(jí)管理單元合作可以撤銷用戶對(duì)某一級(jí)別文件的訪問(wèn)權(quán)限;6)用戶向服務(wù)器上傳文件時(shí)不需公開(kāi)自己身份。
基于密文策略屬性的加密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE)常用于加密數(shù)據(jù)的訪問(wèn)控制。在CP-ABE中,若用戶私鑰內(nèi)的屬性與密文內(nèi)的訪問(wèn)結(jié)構(gòu)匹配成功,即可解密得到明文。在實(shí)際應(yīng)用中,CP-ABE 不可避免地面臨用戶權(quán)限的更換。目前,支持用戶屬性更新的CP-ABE方案[7-8]在更新用戶屬性時(shí),需要更新用戶私鑰和初始密文,增加了計(jì)算開(kāi)銷和對(duì)用戶的影響。因此,可以借助CP-ABE實(shí)現(xiàn)條件代理重加密(Conditional PRE,CPRE)算法,使用戶屬性與重加密密鑰相關(guān),在更新用戶屬性時(shí),只需更新與用戶相關(guān)的重加密密鑰。
在現(xiàn)有的條件代理重加密中,文獻(xiàn)[9]首次利用條件來(lái)限制代理重加密權(quán)限,但是此方案需要額外的算法利用用戶私鑰生成條件私鑰;文獻(xiàn)[6]將CPRE 和IBPRE 結(jié)合起來(lái),提出了第一個(gè)IBCPRE 方案,文獻(xiàn)[10]提出安全性滿足選擇密文安全的IBCPRE 方案,這兩個(gè)方案中,代理在擁有嵌入相同條件的密文和重加密密鑰時(shí)才能完成重加密,但是這兩個(gè)方案都不能實(shí)現(xiàn)對(duì)訪問(wèn)權(quán)限的細(xì)粒度控制。文獻(xiàn)[11]將訪問(wèn)結(jié)構(gòu)當(dāng)作條件,首次實(shí)現(xiàn)了細(xì)粒度的CPRE 方案,文獻(xiàn)[12]在文獻(xiàn)[11]的基礎(chǔ)上,提出了細(xì)粒度的IBCPRE 方案,在原始密文內(nèi)嵌入條件集W,在重加密密鑰中嵌入訪問(wèn)控制策略Γ,只有在條件集W滿足訪問(wèn)控制策略Γ時(shí),代理才可以完成正確的重加密,但是在這種方案中,重加密密鑰一旦生成就不可更改,不能實(shí)現(xiàn)對(duì)用戶訪問(wèn)權(quán)限的更新和撤銷。近幾年,還出現(xiàn)了各種不同的條件代理重加密方案。文獻(xiàn)[13]提出了一種新的細(xì)粒度IBCPRE 算法,可以將原始密文重加密為擁有相同屬性的一組用戶可以解密的密文;文獻(xiàn)[14]提出了一種多條件的廣播代理重加密方案,在重加密密鑰和原始密文中嵌入兩個(gè)不同的條件集,若兩個(gè)條件集內(nèi)相同元素的數(shù)量大于門(mén)限值,則代理可以完成正確的重加密,但是這兩個(gè)方案都沒(méi)有考慮接收方解密權(quán)限的撤銷問(wèn)題。文獻(xiàn)[15]提出了一種可以進(jìn)行密文演變的條件代理重加密方案,在用戶私鑰泄露后更新私鑰,還需要更新密文以適應(yīng)新的私鑰。在這些條件代理重加密中,為了實(shí)現(xiàn)共享,數(shù)據(jù)擁有者需要為每個(gè)接收方生成重加密密鑰,每個(gè)用戶也會(huì)擁有多個(gè)指向自己的重加密密鑰。相較于CP-ABE,直接利用這些條件代理重加密方案實(shí)現(xiàn)文件分級(jí)訪問(wèn)控制,只會(huì)加重用戶負(fù)擔(dān)。
針對(duì)現(xiàn)有訪問(wèn)控制方案中用戶訪問(wèn)權(quán)限更新復(fù)雜的問(wèn)題,本文考慮設(shè)計(jì)了一種方案,使系統(tǒng)內(nèi)每個(gè)用戶擁有唯一一個(gè)指向自己的重加密密鑰,此重加密密鑰與用戶的訪問(wèn)權(quán)限相關(guān)聯(lián)。本文方案基于IBCPRE 思想,并引入可信分級(jí)管理單元,分級(jí)管理單元首先對(duì)系統(tǒng)內(nèi)用戶進(jìn)行分級(jí),同一等級(jí)用戶具有相同的訪問(wèn)權(quán)限,接著為每個(gè)用戶生成重加密密鑰,并在用戶等級(jí)發(fā)生變化時(shí),及時(shí)更新用戶重加密密鑰。最終,本文方案實(shí)現(xiàn)了既保留條件限制代理的重加密權(quán)限,又可以對(duì)用戶進(jìn)行分級(jí)訪問(wèn)控制。
在本文所提方案中,需要對(duì)用戶和文件進(jìn)行分級(jí)[16],且用戶等級(jí)和文件等級(jí)一一對(duì)應(yīng)。用戶和文件的分級(jí)管理闡述如下:
1)用戶分級(jí)管理。用戶級(jí)別由其所在實(shí)際場(chǎng)景決定,由分級(jí)管理單元確定用戶等級(jí)。在此假設(shè)用戶分為A、B、C、D四個(gè)等級(jí),A等級(jí)最高,D等級(jí)最低。
2)文件分級(jí)管理。文件等級(jí)與用戶等級(jí)一一對(duì)應(yīng),也分為A、B、C、D 四個(gè)等級(jí)。用戶只能生成并上傳與自身等級(jí)相一致的文件,例如,B 等級(jí)用戶只能上傳B 等級(jí)文件。用戶可以訪問(wèn)自身等級(jí)以下的文件,A 等級(jí)用戶可以訪問(wèn)A、B、C、D四個(gè)等級(jí)的文件,B 等級(jí)用戶可以訪問(wèn)B、C、D 三個(gè)等級(jí)的文件,C 等級(jí)的用戶能訪問(wèn)C、D 等級(jí)的文件,D 等級(jí)用戶只能訪問(wèn)D 等級(jí)文件。當(dāng)用戶訪問(wèn)并修改文件后,此文件等級(jí)就轉(zhuǎn)變?yōu)橛脩舻牡燃?jí)。
訪問(wèn)控制策略用來(lái)實(shí)現(xiàn)上述分級(jí)管理。用戶在加密文件時(shí),將自身等級(jí)S嵌入密文CT,即Encrypt(P,M,S) →CT,其中,P為分級(jí)管理單元身份公鑰,M為明文文件。分級(jí)管理單元將用戶訪問(wèn)條件集Γ嵌入重加密密鑰RKID,Γ,訪問(wèn)條件集Γ表示用戶可訪問(wèn)的密文等級(jí)集合。
假設(shè)用戶重加密密鑰RKID,Γ內(nèi)的條件集為Γ={Γ1,Γ2,…,Γm},密文CT嵌入條件S。若S∈Γ,則代理服務(wù)器可以利用RKID,Γ對(duì)CT進(jìn)行重加密;否則,代理無(wú)法完成重加密操作。
圖1 為本文方案總體架構(gòu),主要包含分級(jí)管理單元(Hierarchical Management Unit,HMU)、代理服務(wù)器(Proxy Serve,PS)、密碼卡(Password Card,PC)、數(shù)據(jù)擁有者(Data Owner,DO)、用戶(Users)五個(gè)部分,各部分的主要功能如下。
圖1 所提方案總體架構(gòu)Fig.1 Overall architecture of proposed scheme
1)分級(jí)管理單元(HMU)。
HMU 是可信的權(quán)威機(jī)構(gòu),用戶上傳身份信息ID到HMU進(jìn)行注冊(cè)。HMU 首先根據(jù)用戶身份信息ID生成用戶私鑰SKID,并將私鑰SKID和等級(jí)信息S返回給用戶,接著生成嵌入用戶訪問(wèn)條件集Γ的重加密密鑰RKID,Γ,最終將用戶信息{ID,RKID,Γ}上傳到代理服務(wù)器。HMU 實(shí)時(shí)監(jiān)測(cè)系統(tǒng)內(nèi)已注冊(cè)用戶的等級(jí)信息,一旦用戶等級(jí)發(fā)生改變,HMU 需要及時(shí)對(duì)用戶信息進(jìn)行更新。
2)數(shù)據(jù)擁有者(DO)。
DO 利用HMU 身份公鑰P對(duì)文件進(jìn)行加密,并在密文CT中嵌入自己的等級(jí)條件S,然后將密文CT上傳到PS。
3)用戶(Users)。
Users 可向PS 發(fā)送訪問(wèn)某一文件的請(qǐng)求,若Users 有權(quán)限訪問(wèn)此文件,則可獲得重加密密文CTID,利用自己的私鑰SKID可以解密CTID。
4)代理服務(wù)器(PS)。
PS 是半可信機(jī)構(gòu),文件在PS 上是密態(tài)存儲(chǔ)的。PS 負(fù)責(zé)維護(hù)用戶列表(User List,UL)和文件列表(File List,F(xiàn)L),UL包含用戶身份信息、用戶重加密密鑰,F(xiàn)L包含密文和文件等級(jí)。當(dāng)Users 想要訪問(wèn)某一文件時(shí),PS 查詢UL確認(rèn)用戶重加密密鑰,查詢FL確認(rèn)文件等級(jí)S,若S∈Γ,則Users 就有權(quán)訪問(wèn)此文件,接著PS 就將用戶重加密密鑰和密文CT上傳到密碼卡。
5)密碼卡(PC)。
PC負(fù)責(zé)幫助PS完成密文轉(zhuǎn)換,得到重加密密文CTID。
在本文方案中,分級(jí)管理單元利用用戶身份ID和用戶訪問(wèn)條件集Γ生成用戶重加密密鑰RKID,Γ,并將RKID,Γ上傳到代理服務(wù)器PS。假設(shè)Alice 利用分級(jí)管理單元公鑰P加密明文文件得到密文CT,并將CT上傳到PS,CT中嵌入了Alice 的等級(jí)條件S。當(dāng)Bob 向服務(wù)器發(fā)出下載密文CT的請(qǐng)求時(shí),服務(wù)器需要判斷密文CT 的條件S是否在Bob 訪問(wèn)條件集Γ內(nèi),若在,則利用Bob 的重加密密鑰對(duì)CT進(jìn)行重加密得到內(nèi)不再包含等級(jí)條件,并且只能由Bob 的私鑰解密。
在傳統(tǒng)代理重加密方案中,重加密密鑰由DO 生成并上傳到PS,本文方案引入完全可信的HMU,一方面生成用戶私鑰,另一方面生成針對(duì)用戶的重加密密鑰。這樣,既降低了DO 的計(jì)算開(kāi)銷,同時(shí)又可以利用HMU 生成的重加密密鑰對(duì)用戶的訪問(wèn)權(quán)限進(jìn)行管理。在CP-ABE 中,由于用戶訪問(wèn)權(quán)限與用戶私鑰相關(guān)聯(lián),所以更新用戶訪問(wèn)權(quán)限時(shí),需要對(duì)用戶的私鑰進(jìn)行更換,此外,還需要更新與用戶原私鑰相關(guān)的密文,否則用戶仍然可以利用原私鑰解密此密文。與CP-ABE相比,本文方案在撤銷用戶訪問(wèn)權(quán)限時(shí),不更新用戶私鑰,也不需要用戶參與,只需由HMU 重新生成用戶重加密密鑰并上傳到PS,這樣減少了對(duì)用戶的直接影響,并且不需要改變?cè)济芪模瑴p輕了計(jì)算負(fù)擔(dān)。
3.2.1 初始化算法
Setup(1λ) →(mpk,msk):此算法由分級(jí)管理單元運(yùn)行。
1)輸入安全參數(shù)λ,選取長(zhǎng)度為λ的素?cái)?shù)q,階為q乘法循環(huán) 群G1,G2,g是G1的生成元,定義雙線性映 射e:G1×G1→G2,令={1,2,…,q-1}。
2)隨機(jī)選擇α∈,令g1=gα。
4)定義偽隨機(jī)函數(shù)(Pseudo Random Function,PRF):PRF:G1×G2→{0,1}λ1,其中λ1是PRF的安全參數(shù),令λ1>λ。
5)定義抗碰撞哈希函數(shù)H:G2→G1。
6)定義強(qiáng)不可偽造一次簽名(One Time Signature,OTS)算法:(Ks,Kv) ←Sign.KeyGen(1λ),生成簽名密鑰Ks,驗(yàn)證密鑰Kv。σ←Sign(Ks,M),利用Ks對(duì)文件M進(jìn)行簽名得到σ。1/0 ←Verify(Kv,σ,M),利用Kv驗(yàn)證簽名σ,若是有效簽名則輸出1,否則輸出0。
7)輸出主密鑰msk=,主公鑰mpk=(λ,λ1,g,g1,g2,,u3,0,U1,U2,U3,PRF,H,OTS)。
3.2.2 密鑰生成算法
Extract(mpk,msk,ID) →SKID:此算法由分級(jí)管理單元運(yùn)行。
1)隨機(jī)選擇r∈,利用用戶身份ID∈{0,1}n和主密鑰msk=,生成用戶私鑰:
其中VID是用戶身份ID中二進(jìn)制位為1的所有位置i的集合。
2)定義分級(jí)管理單元身份為P∈{0,1}n,其對(duì)應(yīng)私鑰為:
其中VP是分級(jí)管理單元身份P中二進(jìn)制位為1 的所有位置i的集合。
3.2.3 加密算法
Encrypt(mpk,P,M,S) →CT:此算法由數(shù)據(jù)擁有者運(yùn)行,其中S為條件。
1)運(yùn)行(Ks,Kv) ←Sign.KeyGen(1λ)。
2)隨機(jī)選擇t∈,σ∈G2,文件M∈{0,1}λ,計(jì)算部分密文C0,C1,C2,C3,C4,C5,C6,其中ξS、χKv、VP分別是S、Kv、P中二進(jìn)制位為1的所有位置i的集合。
輸出密文CT=(S,Kv,C0,C1,C2,C3,C4,C5,C6)。
3.2.4 重加密密鑰生成算法
ReKeyGen(mpk,SKP,IDu,Γ) →RKIDu,Γ:此算法由分級(jí)管理單元運(yùn)行。
3.2.5 重加密算法
1)驗(yàn)證密文CT內(nèi)的條件S是否在重加密密鑰的訪問(wèn)策略Γ內(nèi),若不在,則停止重加密;否則記錄S在Γ中的位置j。
2)計(jì)算式(1)~(4)來(lái)驗(yàn)證密文的有效性和完整性。
若式(1)~(4)任意一個(gè)不成立,則停止以下步驟。
3)計(jì)算:
4)輸出重加密密文:
3.2.6 解密算法
Decrypt(mpk,SKIDu,CTIDu)→M:此算法由數(shù)據(jù)訪問(wèn)者運(yùn)行。
1)驗(yàn)證式(5)~(7)。
3.2.7 用戶訪問(wèn)權(quán)限更新算法
3.2.8 用戶訪問(wèn)權(quán)限撤銷算法
Revoke(IDu,UL) →UL:此算法由HMU 和PS 合作運(yùn)行。HMU 將被撤銷用戶身份IDu上傳到PS,PS 輸出更新后的用戶信息列表UL=UL} 。
用戶需要與分級(jí)管理單元交互,獲取自身私鑰和等級(jí)信息。分級(jí)管理單元確定用戶訪問(wèn)權(quán)限并生成用戶重加密密鑰。用戶注冊(cè)流程如下:
1)用戶上傳自己的身份信息ID到分級(jí)管理單元。
2)分級(jí)管理單元驗(yàn)證用戶身份,確認(rèn)用戶等級(jí)并生成用戶私鑰,將等級(jí)信息和私鑰返回給用戶。
3)分級(jí)管理單元運(yùn)行ReKeyGen(mpk,SKP,IDu,Γ)算法生成用戶重加密密鑰,接著將上傳到代理服務(wù)器。
5)用戶注冊(cè)完成。
用戶注冊(cè)完成后,就可以上傳與自身等級(jí)相同的等級(jí)文件,文件在上傳過(guò)程中處于密態(tài)。文件上傳流程如下:
1)DO 利用Encrypt(mpk,P,M,S) →CT算法加密文件M,得到密文CT。
2)DO將密文CT上傳到代理服務(wù)器。
3)代理服務(wù)器驗(yàn)證式(1)~(2),若不成立,則放棄此密文;否則,進(jìn)行步驟4)。
4)代理服務(wù)器將密文CT和文件等級(jí)S保存在FL中。文件等級(jí)與DO等級(jí)保持一致。
5)文件上傳完成。
用戶注冊(cè)完成后,可以訪問(wèn)其權(quán)限內(nèi)的密文文件。文件訪問(wèn)流程如下:
當(dāng)用戶等級(jí)發(fā)生變化時(shí),分級(jí)管理單元需要更新用戶的訪問(wèn)權(quán)限,用戶權(quán)限更新流程如下:
1)分級(jí)管理單元對(duì)用戶等級(jí)進(jìn)行實(shí)時(shí)監(jiān)測(cè),若用戶的等級(jí)發(fā)生變化,則運(yùn)行ReKeyGen(mpk,SKP,IDu,Γ)算法為其生成新的重加密密鑰。
4)用戶權(quán)限更新完成。
當(dāng)用戶注銷時(shí),分級(jí)管理單元需要及時(shí)撤銷用戶訪問(wèn)權(quán)限,用戶權(quán)限撤銷流程如下:
1)若用戶離開(kāi)系統(tǒng),需對(duì)用戶進(jìn)行注銷,分級(jí)管理單元向代理服務(wù)器上傳撤銷權(quán)限的用戶ID。
2)代理服務(wù)器運(yùn)行Revoke(IDu,UL)算法,刪除UL中此用戶的信息。
3)用戶權(quán)限撤銷完成。
5.1.1 CCA安全性
文獻(xiàn)[12]中IBCPRE 算法已證明為標(biāo)準(zhǔn)模型下選擇密文攻擊(Chosen Ciphertext Attack,CCA)安全,但是進(jìn)行重加密計(jì)算時(shí),將原密文C2與訪問(wèn)樹(shù)根節(jié)點(diǎn)值相乘得到了重加密密文,在解密時(shí),利用σ=得到秘密值σ,進(jìn)一步可以得到明文,其中Fr用來(lái)限制代理的重加密權(quán)限。若代理服務(wù)器在進(jìn)行重加密操作時(shí),與數(shù)據(jù)訪問(wèn)者共謀,得到重加密密文C'2=σ·e(C4,H2(θ2)),那么在無(wú)需Fr的情況下,數(shù)據(jù)訪問(wèn)者也能夠解密得到明文。這樣就不能限制代理的重加密權(quán)限,也就不能實(shí)現(xiàn)對(duì)文件的訪問(wèn)控制。
本文方案僅對(duì)文獻(xiàn)[12]的IBCPRE 算法的重加密密鑰和重加密密文的計(jì)算方法進(jìn)行了修改,修改后,若代理不進(jìn)行完整的重加密,則用戶就不能對(duì)重加密密文進(jìn)行正確解密?;谖墨I(xiàn)[12]算法的構(gòu)造和理論,本文的算法基于DBDH(Decisional Bilinear Diffie-Hellman)的困難性,在標(biāo)準(zhǔn)模型下達(dá)到CCA安全。
5.1.2 數(shù)據(jù)機(jī)密性
5.1.3 抗共謀攻擊
在本文的文件分級(jí)訪問(wèn)控制模型中,用戶只需要進(jìn)行加解密操作,數(shù)據(jù)擁有者需要進(jìn)行一次加密,并將密文上傳到代理服務(wù)器,數(shù)據(jù)訪問(wèn)者需要從代理服務(wù)器下載重加密密文并進(jìn)行一次解密即可獲得相應(yīng)明文。假設(shè)t1為群內(nèi)指數(shù)運(yùn)算的時(shí)間,t2為雙線性對(duì)運(yùn)算的時(shí)間,用戶在加密時(shí)所需時(shí)間為5t1+t2,在解密時(shí)所需時(shí)間為3t2。不同于傳統(tǒng)代理重加密,用戶不需要參與重加密密鑰的生成,在增加額外計(jì)算量的前提下,降低了用戶的計(jì)算負(fù)擔(dān)。與文獻(xiàn)[7]的CP-ABE 方案相比,本文方案在屬性撤銷階段,HMU 只需要將用戶重加密密鑰內(nèi)相應(yīng)的屬性值刪除,再重新上傳重加密密鑰即可,無(wú)需進(jìn)行用戶密鑰和初始密文的更新。并且只有當(dāng)用戶申請(qǐng)?jiān)L問(wèn)某一密文時(shí),代理服務(wù)器才對(duì)相應(yīng)的密文進(jìn)行重加密,整個(gè)重加密操作可以由密碼卡進(jìn)行,代理服務(wù)器只需進(jìn)行密文的存儲(chǔ)與傳輸。
將本文的方案與其他方案在訪問(wèn)結(jié)構(gòu)、訪問(wèn)策略控制者、訪問(wèn)權(quán)限是否可更新、上傳者是否匿名等方面進(jìn)行對(duì)比分析,結(jié)果如表1所示。
表1 本文方案與現(xiàn)有訪問(wèn)控制方案特點(diǎn)對(duì)比Tab.1 Characteristic comparison of proposed scheme and existing access control schemes
文獻(xiàn)[17]提出了一種云存儲(chǔ)加密數(shù)據(jù)共享方案,數(shù)據(jù)所有者利用對(duì)稱加密算法加密明文文件,并利用嵌入訪問(wèn)樹(shù)結(jié)構(gòu)的密文策略屬性基加密算法加密對(duì)稱密鑰,該算法由數(shù)據(jù)擁有者控制用戶訪問(wèn)權(quán)限,但是不能實(shí)現(xiàn)訪問(wèn)權(quán)限的撤銷。文獻(xiàn)[18]提出了數(shù)據(jù)共享方案利用對(duì)稱密鑰加密密文,利用屬性基加密算法加密對(duì)稱密鑰,并引入可信第三方來(lái)管理用戶訪問(wèn)權(quán)限,可以實(shí)現(xiàn)屬性撤銷,但是需要第三方可信機(jī)構(gòu)更新被撤銷屬性的用戶私鑰,還需要更新與被撤銷屬性相關(guān)的所有密文。文獻(xiàn)[19]提出了一種基于多要素訪問(wèn)控制條件的代理重加密算法,該算法中重加密密鑰是由重加密密鑰管理服務(wù)器基于用戶的客觀訪問(wèn)條件生成的,重加密密鑰管理服務(wù)器在判斷數(shù)據(jù)訪問(wèn)者為合法用戶時(shí)才生成重加密密鑰,而用戶的訪問(wèn)權(quán)限是由數(shù)據(jù)所有者確定的。在本文方案中,HMU 首先利用Extract 算法生成用戶私鑰,接著利用ReKeyGen 算法生成用戶重加密密鑰,最后利用Replace 和Revoke 算法對(duì)用戶的權(quán)限進(jìn)行更新和撤銷,解決了CP-ABE中撤銷屬性需要更新用戶私鑰和原始密文以及傳統(tǒng)IBCPRE不適用于文件訪問(wèn)控制等問(wèn)題。這樣,在不影響DO 和其他用戶的前提下,實(shí)現(xiàn)了對(duì)系統(tǒng)內(nèi)加密文件的分級(jí)訪問(wèn)控制,用戶可以利用其私鑰解密所有滿足其訪問(wèn)權(quán)限的密文。此外,DO 向PS 上傳密文時(shí),無(wú)需表明自己身份,密文是由分級(jí)管理單元公鑰加密得到的,保證了DO的身份隱私。
針對(duì)現(xiàn)有訪問(wèn)控制方案存在用戶權(quán)限更新復(fù)雜等問(wèn)題,本文提出了一種基于身份多條件代理重加密的共享文件分級(jí)訪問(wèn)控制方案,考慮到對(duì)用戶訪問(wèn)權(quán)限的控制、更新和撤銷,引入可信的分級(jí)管理單元來(lái)管理用戶的訪問(wèn)權(quán)限,有效減輕了用戶負(fù)擔(dān)。在此基礎(chǔ)上,提出了適用于此方案的IBMCPRE 算法,該算法在保證安全性的前提下,在重加密密鑰中加入分級(jí)權(quán)限條件集,限制用戶的訪問(wèn)權(quán)限。因此,本文方案在不更新用戶私鑰和原始密文的前提下,就可以對(duì)用戶訪問(wèn)權(quán)限更新和撤銷,但本文方案的訪問(wèn)結(jié)構(gòu)為多條件,所以,后續(xù)將著重研究細(xì)粒度訪問(wèn)結(jié)構(gòu)的文件分級(jí)訪問(wèn)控制方案。