張文芳,陳 楨,劉旭東,王小敏
1(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都 611756)
2(信息安全與國(guó)家計(jì)算網(wǎng)格實(shí)驗(yàn)室(西南交通大學(xué)),四川 成都 611756)
通訊作者:王小敏,E-mail:xmwang@swjtu.edu.cn
隨著分布式存儲(chǔ)與計(jì)算技術(shù)(如云存儲(chǔ)和云計(jì)算)的迅速發(fā)展與成熟,研究具備匿名性特點(diǎn)的密碼機(jī)制變得尤為重要.Sahai 和Waters[1]將基于身份的加密算法加以擴(kuò)展和改進(jìn),提出了基于模糊身份的加密方案.該方案首次引入屬性的概念,用屬性集合表示用戶,以實(shí)現(xiàn)對(duì)其的匿名性保護(hù);同時(shí),基于特定的訪問(wèn)結(jié)構(gòu)對(duì)數(shù)據(jù)進(jìn)行加密,只有用戶屬性滿足訪問(wèn)結(jié)構(gòu)時(shí),才能成功解密密文.在此基礎(chǔ)上,相關(guān)學(xué)者展開(kāi)了一系列基于屬性的密碼機(jī)制研究[2-4],并根據(jù)訪問(wèn)策略嵌入位置的不同,將屬性基加密算法分為密文策略和密鑰策略兩類(lèi):密鑰策略的屬性基加密方案(key-policy attribute-based encryption,簡(jiǎn)稱(chēng)KP-ABE)[2]將解密策略與用戶的私鑰綁定,密文策略的屬性基加密方案(ciphertext-policy attribute-based encryption,簡(jiǎn)稱(chēng)CP-ABE)[3]則將密文與解密策略綁定.
屬性基加密方案使用屬性集合來(lái)描述用戶,然而在實(shí)際應(yīng)用中,不同的用戶往往具有部分相同的屬性,而且這些屬性存在屬性到期、密鑰泄露、屬性變更等問(wèn)題.因此,屬性撤銷(xiāo)成為屬性基加密方案中亟需解決的問(wèn)題,即:在用戶屬性變更時(shí),如何及時(shí)更新用戶權(quán)限,確保用戶不能使用舊密鑰解密密文.其中研究的難點(diǎn)在于在對(duì)某一用戶的屬性進(jìn)行撤銷(xiāo)時(shí),不影響系統(tǒng)中擁有該屬性的其他用戶.此前,大多數(shù)的ABE 方案[5-8]主要關(guān)注訪問(wèn)策略的表達(dá)能力,并未著重考慮屬性撤銷(xiāo)問(wèn)題.2009 年,Attrapadung 等人[9,10]在已有ABE 方案的基礎(chǔ)上,結(jié)合基于身份的組播加密技術(shù)[11]與線性秘密共享(LSSS)技術(shù)[12],提出了ABE 方案的兩種撤銷(xiāo)模式:間接撤銷(xiāo)和直接撤銷(xiāo).
· 間接撤銷(xiāo)由授權(quán)機(jī)構(gòu)執(zhí)行,采用半可信仲裁者方式或在密鑰中加入時(shí)間信息,通過(guò)周期性地更換密鑰實(shí)現(xiàn)屬性撤銷(xiāo).目前的大多數(shù)方案都采用間接撤銷(xiāo)[13-15],其優(yōu)勢(shì)在于加密時(shí)不需要獲取撤銷(xiāo)列表,使用比較靈活.但間接撤銷(xiāo)的撤銷(xiāo)代價(jià)比較大,且需要授權(quán)中心進(jìn)行密鑰更新,容易形成系統(tǒng)瓶頸;
· 在直接撤銷(xiāo)模式下,發(fā)送方將撤銷(xiāo)列表直接嵌入到密文中完成用戶屬性的撤銷(xiāo),因此不影響其他用戶,但存在撤銷(xiāo)粒度較粗的問(wèn)題.而方案[10,16-18]只能解決用戶撤銷(xiāo)問(wèn)題,即撤銷(xiāo)某用戶的所有權(quán)限,但不能針對(duì)部分權(quán)限進(jìn)行修改,因此同樣無(wú)法實(shí)現(xiàn)細(xì)粒度的屬性撤銷(xiāo).
為了實(shí)現(xiàn)細(xì)粒度的屬性直接撤銷(xiāo),學(xué)者們先后提出了一系列改進(jìn)方案[19-24].Hur[19]采用二叉樹(shù)方法,提出了一種支持屬性直接撤銷(xiāo)的CP-ABE 方案.然而,該方案缺乏嚴(yán)格的安全模型和安全性證明,并且無(wú)法抵抗合謀攻擊.王鵬翩等人[20]通過(guò)為用戶分配兩個(gè)訪問(wèn)樹(shù)的方法實(shí)現(xiàn)了屬性的細(xì)粒度撤銷(xiāo),但該方案只能在密文中嵌入一個(gè)屬性的撤銷(xiāo)信息,無(wú)法滿足屬性變化頻繁的實(shí)際應(yīng)用需求.文獻(xiàn)[21]中,Ibraimi 等人通過(guò)半可信第三方持有部分密鑰與撤銷(xiāo)列表的方式實(shí)現(xiàn)屬性的即時(shí)撤銷(xiāo),但需要確保第三方的高度可信與實(shí)時(shí)在線.上述所有支持撤銷(xiāo)的屬性基加密方案不僅在屬性撤銷(xiāo)上存在或多或少的不足,更普遍存在一個(gè)安全隱患:屬性授權(quán)中心掌握所有用戶的私鑰,因此可以偽裝成任意一名用戶解密密文[25].一旦授權(quán)中心被攻破,用戶存儲(chǔ)在云端的加密信息即可被非法獲取并使用.
本文針對(duì)現(xiàn)有方案的不足,提出一種抗不可信授權(quán)中心破譯攻擊的支持細(xì)粒度屬性直接撤銷(xiāo)的CP-ABE方案.該方案采用訪問(wèn)樹(shù)結(jié)構(gòu)實(shí)現(xiàn)訪問(wèn)策略,當(dāng)用戶屬性滿足訪問(wèn)樹(shù)判別條件時(shí),即可解密密文.針對(duì)不可信授權(quán)中心的問(wèn)題,本方案中用于生成用戶私鑰的秘密參數(shù)β和tj分別由系統(tǒng)中心SA(system authority)和屬性授權(quán)機(jī)構(gòu)AA(attribute of authority)產(chǎn)生,從而約束了不可信授權(quán)中心的攻擊能力,有效避免了密文破譯攻擊.在屬性撤銷(xiāo)方面,本方案采用屬性授權(quán)中心實(shí)時(shí)更新屬性撤銷(xiāo)名單,并結(jié)合密文重加密的方式,可以對(duì)任意用戶的任意屬性單獨(dú)進(jìn)行撤銷(xiāo),而不影響其他用戶,以確保屬性的細(xì)粒度撤銷(xiāo).同時(shí),通過(guò)在密文中嵌入與用戶撤銷(xiāo)屬性相關(guān)的秘密信息,產(chǎn)生與屬性撤銷(xiāo)名單一一對(duì)應(yīng)的密文,保證密文只能夠被有效用戶解密.與Attrapadung 方案[10]相比,本文方案能夠?qū)崿F(xiàn)細(xì)粒度的屬性直接撤銷(xiāo).本文對(duì)屬性可直接撤銷(xiāo)的CP-ABE 方案進(jìn)行了嚴(yán)格的形式化安全定義,并在隨機(jī)預(yù)言機(jī)模型下證明所提方案在適應(yīng)性選擇密文攻擊下具備密文不可區(qū)分性,并能抵抗不可信授權(quán)中心的破譯攻擊.性能分析表明:本文方案在保證更細(xì)的撤銷(xiāo)粒度和系統(tǒng)安全性前提下,算法效率也具有一定的優(yōu)勢(shì).
本文第1 節(jié)介紹相關(guān)的預(yù)備知識(shí).第2 節(jié)給出屬性可直接撤銷(xiāo)的CP-ABE 方案及其安全性的形式化定義.第3 節(jié)提出支持細(xì)粒度屬性直接撤銷(xiāo)的CP-ABE 方案.第4 節(jié)從正確性、安全性、效率等3 個(gè)方面對(duì)所提方案進(jìn)行證明和分析.最后對(duì)全文進(jìn)行總結(jié).
本節(jié)給出基于屬性加密方案的相關(guān)定義與困難問(wèn)題假設(shè).
若已知f(x)在互不相同的d處的函數(shù)值,即函數(shù)過(guò)d個(gè)已知的點(diǎn),那么能夠構(gòu)造出d-1 階的x的多項(xiàng)式函數(shù)f(x),且此f(x)是存在且唯一確定的,其求解方法如下:
稱(chēng)公式(1)為拉格朗日插值多項(xiàng)式.
訪問(wèn)樹(shù)是訪問(wèn)結(jié)構(gòu)的一種表達(dá)形式,不僅支持門(mén)限方式的訪問(wèn)策略,也支持表達(dá)“與”、“或”等邏輯運(yùn)算.為方便表述,對(duì)于訪問(wèn)樹(shù)中的任意節(jié)點(diǎn)x,有如下定義.
·Parent(x):節(jié)點(diǎn)x的父節(jié)點(diǎn),對(duì)根節(jié)點(diǎn)root外的所有節(jié)點(diǎn)有效;
·Children(x):節(jié)點(diǎn)x的子節(jié)點(diǎn)集合;
·Num(x):節(jié)點(diǎn)x的子節(jié)點(diǎn)個(gè)數(shù);
·index(x):節(jié)點(diǎn)x在同一層次節(jié)點(diǎn)中的序號(hào),即為其父節(jié)點(diǎn)的子節(jié)點(diǎn)集合中的編號(hào);
·attr(x):節(jié)點(diǎn)x表征的屬性,當(dāng)且僅當(dāng)x為葉子節(jié)點(diǎn)時(shí)有效.
訪問(wèn)樹(shù)中的每一個(gè)非葉子節(jié)點(diǎn)都表征一個(gè)門(mén)限,門(mén)限值nx滿足1≤nx≤Mum(x).“或”門(mén)的門(mén)限值nx=1,“與”門(mén)的門(mén)限值nx=Num(x).
定義2(訪問(wèn)結(jié)構(gòu)(access structure)).令參與方集合為P={P1,P2,…,Pn},訪問(wèn)結(jié)構(gòu)A是2P的一個(gè)非空集合.訪問(wèn)結(jié)構(gòu)A中的集合稱(chēng)為授權(quán)集合,不在訪問(wèn)結(jié)構(gòu)A中的集合稱(chēng)為非授權(quán)集合.
定義3(判定性q-BDHE 假設(shè)(decision q bilinear Diffie-Hellman exponent assumption)).設(shè)群G1,G2是p階循環(huán)群,雙線性映射e:G1×G1→G2,給定隨機(jī)生成元g,隨機(jī)數(shù)s,a∈Zp,計(jì)算:
給定隨機(jī)數(shù)V∈RG2,若不存在有效算法C能夠在多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢(shì)區(qū)分V與,則假設(shè)成立.
定義4(DDH 問(wèn)題假設(shè)(decision Diffie-Hellman problem)).設(shè)群G1,G2是p階循環(huán)群,雙線性映射e:G1×G1→G2,隨機(jī)生成元為g,隨機(jī)數(shù)x,y,z∈Zp,給定元組〈g,gx,gy,gxy〉和〈g,gx,gy,gz〉,若不存在有效算法C能夠在多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢(shì)判斷z是否等于xymodp,則假設(shè)成立.
本節(jié)給出可撤銷(xiāo)的密文策略屬性基加密方案的形式化定義.CP-ABE 方案中,密文與斷言(Γ,term)相關(guān)聯(lián),其中,Γ代表屬性集合,Φ代表滿足term的Γ的非空子集.假設(shè)ω為解密者的屬性集合,只有存在ω′∈Φ使得ω′?ω,解密者才能成功解密密文.
直接可撤銷(xiāo)的密文策略的基于屬性加密(CP-ABE)方案涉及3 個(gè)實(shí)體:系統(tǒng)中心、屬性授權(quán)機(jī)構(gòu)、用戶,由以下6 個(gè)算法構(gòu)成.
(1)初始化算法Setup(1λ)→(PK,MK):由系統(tǒng)中心運(yùn)行的概率性隨機(jī)算法,輸入安全參數(shù)1λ,系統(tǒng)中心輸出公開(kāi)參數(shù)PK和系統(tǒng)主密鑰MK;
(2)密鑰生成算法KeyGen(ID,ω,MK)→SKID,ω:由屬性授權(quán)機(jī)構(gòu)運(yùn)行的概率性隨機(jī)算法,輸入MK、用戶的身份ID及其屬性集合ω,屬性授權(quán)機(jī)構(gòu)輸出用戶的私鑰SKID,ω;
(3)加密算法Encrypt(,M,R,PK)→CT:由數(shù)據(jù)擁有者運(yùn)行的一個(gè)概率性隨機(jī)算法,輸入系統(tǒng)公開(kāi)參數(shù)PK、明文消息M、訪問(wèn)策略和屬性撤銷(xiāo)信息R,輸出密文CT;
(4)重加密算法ReEncrypt(,M,R,PK)→CT:由系統(tǒng)中心運(yùn)行的概率性隨機(jī)算法,輸入系統(tǒng)公開(kāi)參數(shù)PK、密文CT、訪問(wèn)策略和屬性撤銷(xiāo)信息R,輸出新密文CT;
(5)解密算法Decrypt(,SKID,ω,CT,R)→M:由解密者運(yùn)行的一個(gè)確定性算法,輸入私鑰SKID,ω、與訪問(wèn)策略對(duì)應(yīng)的密文CT和屬性撤銷(xiāo)信息R,如果,且SKID,ω不涉及R中的撤銷(xiāo)事件時(shí),則輸出明文消息M,否則輸出錯(cuò)誤符號(hào)⊥;
(6)撤銷(xiāo)算法Revocation(MK,IDk,λk,attr(j))→R:由屬性授權(quán)機(jī)構(gòu)運(yùn)行的確定性算法,輸入待撤銷(xiāo)屬性attr(j)及用戶IDk,輸出屬性撤銷(xiāo)信息R.
在此給出適用于本文算法的安全特性的形式化定義.
定義5.一個(gè)基于屬性的加密方案Π=(Set,KGen,Rev,Enc,ReE,Dec)在選擇密文攻擊下是不可區(qū)分的,如果沒(méi)有概率多項(xiàng)式時(shí)間的敵手A以一個(gè)不可忽略的優(yōu)勢(shì)ε在以下游戲中獲勝.
(1)初始化:挑戰(zhàn)者C運(yùn)行初始化算法,利用系統(tǒng)安全參數(shù)產(chǎn)生公共參數(shù)PK和主密鑰MK.如果敵手A為惡意系統(tǒng)中心SA,C將PK和秘密參數(shù)〈α,β,λi〉發(fā)送給A,MK保密;如果敵手A為惡意屬性授權(quán)機(jī)構(gòu)AAk,C將PK,MK和秘密參數(shù)α發(fā)送給A,秘密參數(shù)〈β,λi〉保密.敵手A輸出挑戰(zhàn)訪問(wèn)策略和屬性撤銷(xiāo)列表R;
(2)階段 1:敵手A適應(yīng)性地執(zhí)行一系列預(yù)言機(jī)詢問(wèn).
a)私鑰解析詢問(wèn):選擇用戶IDi及其屬性集ωi,向C詢問(wèn)對(duì)應(yīng)用戶的私鑰,要求IDi∈R或ωi不滿足訪問(wèn)策略,C運(yùn)行KeyGen算法產(chǎn)生私鑰,并將發(fā)送給A;
b)密文解析詢問(wèn):選擇密文CT,向C詢問(wèn)在訪問(wèn)策略下CT對(duì)應(yīng)的明文M,C運(yùn)行Decrypt算法恢復(fù)出明文M,并發(fā)送給A;
(3)挑戰(zhàn):敵手A選擇兩條長(zhǎng)度相等的明文M0,M1發(fā)送給挑戰(zhàn)者.挑戰(zhàn)者C隨機(jī)選取b∈{0,1},運(yùn)行Encrypt(,Mb,R,PK)算法,生成消息Mb在訪問(wèn)策略下的詢問(wèn)密文CT*,并返回結(jié)果給A;
(4)階段2:如階段1 所示,A繼續(xù)執(zhí)行私鑰解析詢問(wèn)和密文解析詢問(wèn);
(5)猜測(cè):敵手A輸出對(duì)b的猜測(cè)b′.如果滿足以下條件,則敵手A在游戲中獲勝.
i)b′=b;
ii)A未對(duì)(,CT*,R)進(jìn)行密文解析詢問(wèn).
定義6.一個(gè)基于屬性的加密方案Π=(Set,KGen,Rev,Enc,ReE,Dec)能夠抵抗不可信授權(quán)中心的破譯攻擊,如果沒(méi)有概率多項(xiàng)式時(shí)間的敵手A以一個(gè)不可忽略的優(yōu)勢(shì)ε在以下游戲中獲勝.
(1)初始化:挑戰(zhàn)者C運(yùn)行初始化算法,利用系統(tǒng)安全參數(shù)產(chǎn)生公共參數(shù)PK和主密鑰MK.如果敵手A為惡意系統(tǒng)中心SA,C將PK和秘密參數(shù)〈α,β,λi〉發(fā)送給A,MK保密;如果敵手A為惡意屬性授權(quán)機(jī)構(gòu)AAk,C將PK,MK和秘密參數(shù)α發(fā)送給A,秘密參數(shù)〈β,λi〉保密.敵手A輸出挑戰(zhàn)訪問(wèn)策略和屬性撤銷(xiāo)列表R;
(2)階段1:敵手A適應(yīng)性地執(zhí)行一系列預(yù)言機(jī)詢問(wèn).
a)私鑰解析詢問(wèn):選擇用戶IDi及其屬性集ωi,向C詢問(wèn)對(duì)應(yīng)用戶的私鑰,要求IDi∈R或ωi不滿足訪問(wèn)策略,C運(yùn)行KeyGen算法產(chǎn)生私鑰,并將發(fā)送給A;
b)密文解析詢問(wèn):選擇密文CT,向C詢問(wèn)在訪問(wèn)策略下CT對(duì)應(yīng)的明文M,C運(yùn)行Decrypt算法恢復(fù)出明文M,并發(fā)送給A;
(3)挑戰(zhàn):C運(yùn)行Encrypt(,M*,R,PK)算法生成消息M*在訪問(wèn)策略下的密文CT*,并返回結(jié)果給A;
(4)階段2:如階段1 所示,A繼續(xù)執(zhí)行私鑰解析詢問(wèn)與密文解析詢問(wèn);
(5)攻擊:游戲最后,A輸出消息M′,如果滿足以下條件,則A在游戲中獲勝.
i)M′=M*;
ii)A未對(duì)(,CT*,R)進(jìn)行密文解析詢問(wèn).
本文在Attrapadung 等人方案[10]的基礎(chǔ)上,提出一種屬性可直接撤銷(xiāo)的CP-ABE 方案,所提CP-ABE 方案支持加密方定制訪問(wèn)樹(shù)結(jié)構(gòu).方案由初始化、密鑰生成、屬性撤銷(xiāo)、加密、重加密、解密這6 個(gè)階段組成.
系統(tǒng)中心SA(system authority)選擇一個(gè)雙線性映射e:G1×G1→G2,其中,G1,G2是兩個(gè)q階循環(huán)群.然后,選取生成元g,h,v∈G1,隨機(jī)數(shù)α,β∈Zq,并且計(jì)算Z=e(g,g)β,vβ.最后輸出系統(tǒng)公開(kāi)參數(shù)PK=〈g,vβ,e,Z,q〉.對(duì)于系統(tǒng)中的每一名認(rèn)證用戶IDi,SA 選取唯一的秘密參數(shù)λi∈Zq,通過(guò)安全信道發(fā)送λi,β至用戶,發(fā)送α,h至各個(gè)屬性授權(quán)機(jī)構(gòu)AAk,其中,k∈{1,...,n}為各屬性屬權(quán)機(jī)構(gòu)的編號(hào),n為系統(tǒng)中屬性授權(quán)機(jī)構(gòu)的數(shù)量.
定義屬性域U,U中的元素為屬性映射的整數(shù)(modq).對(duì)于任意屬性j∈U,若屬性授權(quán)機(jī)構(gòu)AAk擁有其密鑰分發(fā)權(quán)限,即j∈AAk,則AAk選擇秘密隨機(jī)數(shù),計(jì)算.最后輸出屬性公鑰、屬性私鑰.
具有屬性集ω的用戶IDi向?qū)傩允跈?quán)機(jī)構(gòu)AAk發(fā)送λi并申請(qǐng)對(duì)應(yīng)私鑰,AAk針對(duì)任意屬性j∈ω∩AAk,計(jì)算:
用戶IDi收到Si,j,Wi后,計(jì)算.最終用戶IDi的私鑰為.
在此過(guò)程中,由于各屬性授權(quán)機(jī)構(gòu)AAk無(wú)法得到秘密參數(shù)β,而系統(tǒng)中心SA 無(wú)法獲取屬性私鑰tj的信息,因此可以確保不可信的屬性授權(quán)機(jī)構(gòu)和系統(tǒng)中心均無(wú)法解密用戶密文.
各屬性授權(quán)中心AAk公開(kāi)維護(hù)一個(gè)用戶屬性撤銷(xiāo)列表Rk.
當(dāng)用戶IDrev的屬性attr(j)被撤銷(xiāo)時(shí),將λrev加入屬性attr(j)的撤銷(xiāo)列表Listattr(j)中并計(jì)算,最終將屬性attr(j)的相關(guān)撤銷(xiāo)信息加入Rk.
· 若用戶IDrev被撤銷(xiāo),則計(jì)算該用戶所有屬性的Lattr(j),rev,并添加至Rk.
獲取所有屬性授權(quán)機(jī)構(gòu)AAk最新的屬性撤銷(xiāo)列表.加密方選擇隨機(jī)數(shù),計(jì)算C0=M·Zsr,C*=gsr.
· 根節(jié)點(diǎn)root:qroot(0)=s,其余nroot-1 個(gè)系數(shù)隨機(jī)選取;
· 內(nèi)部節(jié)點(diǎn)x:qx(0)=qparent(index(x));
· 對(duì)于任意屬性j∈ω*,Listj=?,計(jì)算;
· 對(duì)于任意屬性j∈ω*,Listj≠?,遍歷j的撤銷(xiāo)列表Listj,選擇|Listj|個(gè)隨機(jī)數(shù),滿足,計(jì)算;
· 若撤銷(xiāo)前,屬性j∈ω*,Listj=?,則選擇隨機(jī)數(shù),計(jì)算重加密密文:·,替換原有密文即可;
· 若撤銷(xiāo)前,屬性j∈ω*,Listj≠?,則選擇隨機(jī)數(shù),計(jì)算重加密密文,,替換原有密文即可.
· 若該屬性無(wú)相關(guān)撤銷(xiāo)信息,即j∈ω∩ω*,Listj=?,計(jì)算:
· 若該屬性具有撤銷(xiāo)信息,即j∈ω∩ω*,Listj≠?,計(jì)算:
當(dāng)且僅當(dāng)用戶ID所擁有的屬性集ω滿足,用戶才能遞歸計(jì)算出.
最后,通過(guò)如下計(jì)算恢復(fù)明文M:
用戶能夠成功解密的條件是用戶的屬性集ω滿足訪問(wèn)樹(shù)結(jié)構(gòu),且用戶用于解密的屬性不在撤銷(xiāo)名單中.利用拉格朗日插值定理,可以遞歸地恢復(fù)出s,進(jìn)而解密出明文,具體推導(dǎo)過(guò)程如下:
定理1.在隨機(jī)預(yù)言機(jī)模型及q-BDHE 問(wèn)題假設(shè)下,本文提出的基于屬性的加密方案在適應(yīng)性選擇密文攻擊下是密文不可區(qū)分的.
證明:假設(shè)存在敵手A以不可忽略的優(yōu)勢(shì)ε攻破上述方案的密文不可區(qū)分性,則可以構(gòu)造一個(gè)有效的算法C,以不可忽略的優(yōu)勢(shì)解決q-BDHE 問(wèn)題.記攻擊者A訪問(wèn)私鑰解析預(yù)言機(jī)、密文解析預(yù)言機(jī)的次數(shù)分別為qk,qD.
假定給算法C一個(gè)q-BDHE 問(wèn)題的實(shí)例:給定與隨機(jī)數(shù)V∈RG2,C的目標(biāo)是調(diào)用A為子程序,區(qū)分出隨機(jī)數(shù)V與.C仿真如下.
(1)初始化:挑戰(zhàn)者C隨機(jī)選擇元素s,a,計(jì)算.然后,挑戰(zhàn)者C運(yùn)行Setup(1λ)算法,拋擲一枚公平的二元隨機(jī)硬幣μ∈{0,1}:若μ=0,令β=an+1,計(jì)算,其中,n表示屬性個(gè)數(shù);否則,隨機(jī)選擇元素V∈G2.挑戰(zhàn)者將Y=(Y′,V)發(fā)送給A.令tj=aj,j∈[1,n),產(chǎn)生公鑰PK=〈g,vβ,e,Z,q,{Tj}j∈U〉與系統(tǒng)主密鑰MK,將公鑰發(fā)送給敵手A,敵手A輸出挑戰(zhàn)身份、挑戰(zhàn)訪問(wèn)策略和屬性撤銷(xiāo)列表R;
(2)階段1:敵手A進(jìn)行多項(xiàng)式界次數(shù)的預(yù)言機(jī)詢問(wèn).
a)私鑰解析詢問(wèn):C維護(hù)一個(gè)含有數(shù)組的列表keylist.當(dāng)A選擇用戶IDi及其屬性集ωi,向C詢問(wèn)對(duì)應(yīng)用戶的私鑰時(shí),C檢查列表keylist中是否有對(duì)應(yīng)的詢問(wèn)結(jié)果:如果有,則返回對(duì)應(yīng)值;否則,C操作如下.
b)密文解析詢問(wèn):C維護(hù)一個(gè)含有數(shù)組的列表Declist.當(dāng)A在訪問(wèn)結(jié)構(gòu)下發(fā)送一個(gè)挑戰(zhàn)用戶λi、一個(gè)屬性集合ωi與密文CTk給挑戰(zhàn)者C進(jìn)行密文解析詢問(wèn)時(shí),C檢查列表Declist中是否有對(duì)應(yīng)的詢問(wèn)結(jié)果:如果有,則返回對(duì)應(yīng)明文Mk;否則,C操作如下.
? 否則,C停止并輸出“FAILURE”(該事件用E2表示);
(3)挑戰(zhàn):敵手A挑戰(zhàn)方案的不可區(qū)分性:A分別選擇兩條長(zhǎng)度相等的明文M0,M1.挑戰(zhàn)者C隨機(jī)選取b∈{0,1},運(yùn)行Encrypt(,Mb,R,PK)算法,生成消息Mb在訪問(wèn)策略下的密文CT*,并返回結(jié)果給A;若μ=0,則令r=1,,C*=gsr=gs;若μ=1,則令C0=Vsr,C*=gsr;
(4)階段2:如階段1 所示,A繼續(xù)執(zhí)行多項(xiàng)式界次數(shù)的私鑰解析和密文解析詢問(wèn);
(5)猜測(cè):敵手A輸出對(duì)b的猜測(cè)b′.
若b=b′,C輸出對(duì)μ的猜測(cè)μ′=0;否則,輸出對(duì)μ的猜測(cè)μ′=1.所以,C成功輸出作為對(duì)q-BDHE 問(wèn)題的一個(gè)實(shí)例的解答.
分析C在這個(gè)游戲中的優(yōu)勢(shì):
i)預(yù)言機(jī)的回答是有效的,除非事件E1,E2發(fā)生;
ii)如果A能夠區(qū)分密文與密文間的不同,則C能解決q-BDHE 問(wèn)題的一個(gè)實(shí)例.
總而言之,如果事件E1,E2都沒(méi)有發(fā)生,則A能攻破所提方案的不可區(qū)分性.現(xiàn)在計(jì)算C能解決q-BDHE 問(wèn)題的優(yōu)勢(shì):當(dāng)μ=0 時(shí),是一條合法密文,攻擊者可以發(fā)揮全部攻擊優(yōu)勢(shì)ε=Pr[b=b′]-
1/2,則μ=0 時(shí),C獲勝的概率為Pr[b=b′|μ=0]=Pr[b=b′]=ε+1/2;當(dāng)μ=1 時(shí),C0=MbVsr相當(dāng)于G2上隨機(jī)選取的元素,不包含明文Mb的任何信息,因此攻擊者失去攻擊優(yōu)勢(shì),則μ=1 時(shí),C獲勝的概率為Pr[b=b′|μ=1]=Pr[b≠b′]=1/2.綜上所述,C能解決q-BDHE 問(wèn)題的優(yōu)勢(shì)為
定理2.在隨機(jī)預(yù)言機(jī)模型及DDH 問(wèn)題假設(shè)下,本文提出的基于屬性的加密方案能夠抵抗不可信授權(quán)中心的破譯攻擊.
證明:假設(shè)存在敵手A以不可忽略的優(yōu)勢(shì)ε攻破上述方案,則可以構(gòu)造一個(gè)有效的算法C,以ε′≈ε/2 的優(yōu)勢(shì)解決DDH 問(wèn)題.記攻擊者A訪問(wèn)私鑰解析預(yù)言機(jī)、密文解析預(yù)言機(jī)的次數(shù)分別為qk,qD.
假定給算法C一個(gè)DDH 問(wèn)題的實(shí)例:輸入gx,gy,gz∈G1,挑戰(zhàn)者C的目標(biāo)是以A作為子程序,判斷z=xymodq是否成立.C仿真過(guò)程如下所示.
(1)初始化:挑戰(zhàn)者C運(yùn)行Setup(1λ)算法,產(chǎn)生公鑰PK=〈g,vβ,e,Z,q,{Tj}j∈U〉與系統(tǒng)主密鑰MK.C拋擲一枚公平的二元隨機(jī)硬幣μ∈{0,1}:若μ=0,令z=β,計(jì)算Z=e(g,g)z;否則,隨機(jī)選擇x,y∈Zq,計(jì)算Z=e(g,g)xy.若敵手A為惡意系統(tǒng)中心SA,C將PK和秘密參數(shù)〈α,β,λi〉發(fā)送給A,MK保密;若敵手A為惡意屬性授權(quán)機(jī)構(gòu)AAk,C將PK,MK和秘密參數(shù)α發(fā)送給A,秘密參數(shù)〈β,λi〉保密.敵手A輸出挑戰(zhàn)訪問(wèn)策略和屬性撤銷(xiāo)列表R;
(2)階段1:敵手A進(jìn)行多項(xiàng)式界次數(shù)的預(yù)言機(jī)詢問(wèn).
b)密文解析詢問(wèn):C維護(hù)一個(gè)含有數(shù)組的列表Declist.當(dāng)A在訪問(wèn)結(jié)構(gòu)下發(fā)送一個(gè)挑戰(zhàn)用戶λi、一個(gè)屬性集合ωi與密文CTk給挑戰(zhàn)者C進(jìn)行密文解析詢問(wèn)時(shí),C檢查列表Declist中是否有對(duì)應(yīng)的詢問(wèn)結(jié)果:如果有,則返回對(duì)應(yīng)明文Mk;否則,C操作如下.
? 否則,C停止并輸出“FAILURE”(該事件用E2表示);
(3)挑戰(zhàn):A分別選擇兩條長(zhǎng)度相等的明文M0,M1.挑戰(zhàn)者C隨機(jī)選取b∈{0,1},運(yùn)行Encrypt(,Mb,R,PK)算法,生成消息Mb在訪問(wèn)策略下的密文CT*,將CT*發(fā)送給A;
(4)階段2:如階段1,攻擊者進(jìn)行多項(xiàng)式次預(yù)言機(jī)詢問(wèn);
(5)猜測(cè):攻擊者A輸出對(duì)b的猜測(cè)b′,若b=b′則A贏得游戲,則C成功輸出μ=μ′作為對(duì)DDH 問(wèn)題的一個(gè)實(shí)例的解答,即該方案無(wú)法抵抗不可信授權(quán)中心的破譯攻擊.
分析C 在這個(gè)游戲中的優(yōu)勢(shì).
i)只要事件E1,E2不發(fā)生,則預(yù)言機(jī)返回的的結(jié)果是正確的;
ii)若A贏得游戲,則C能夠解決給定DDH 問(wèn)題的實(shí)例.
總而言之,如果事件E1,E2都沒(méi)有發(fā)生,則A能攻破所提方案的不可區(qū)分性.現(xiàn)在計(jì)算C能解決DDH 問(wèn)題的優(yōu)勢(shì):當(dāng)μ=0 時(shí),C0=Mb·Zsr=Mb·e(g,g)zsr是一條合法密文,攻擊者可以發(fā)揮全部攻擊優(yōu)勢(shì)ε=Pr[b=b′]-1/2,則μ=0 時(shí),C獲勝的概率為Pr[b=b′|μ=0]=Pr[b=b′]=ε+1/2;當(dāng)μ=1 時(shí),C0=Mb·e(g,g)xysr相當(dāng)于G2上隨機(jī)選取的元素,因此攻擊者失去攻擊優(yōu)勢(shì),則μ=1 時(shí),C獲勝的概率為Pr[b=b′|μ=1]=Pr[b≠b′]=1/2.綜上所述,C能解決DDH 問(wèn)題的優(yōu)勢(shì)為
若所提方案無(wú)法抵抗不可信授權(quán)中心的破譯攻擊,則該方案是適應(yīng)性選擇密文攻擊下的不可展性不安全的.因?yàn)槿魯呈忠砸环N可控的方式,通過(guò)修改密文來(lái)修改相應(yīng)的明文,則它可以對(duì)挑戰(zhàn)密文進(jìn)行修改,然后通過(guò)預(yù)言機(jī)的幫助獲取修改后密文對(duì)應(yīng)的明文,最后,利用明文間的相互關(guān)系輸出挑戰(zhàn)密文對(duì)應(yīng)的明文.由于公鑰密碼體制適應(yīng)性選擇密文攻擊下的不可區(qū)分性等價(jià)于適應(yīng)性選擇密文攻擊下的不可展性,因此敵手無(wú)法在多項(xiàng)式時(shí)間內(nèi)解密挑戰(zhàn)密文,所以本文所提的基于屬性的加密方案能夠抵抗不可信授權(quán)中心的破譯攻擊.
本節(jié)就密鑰長(zhǎng)度、密文長(zhǎng)度、加密階段和解密階段的計(jì)算代價(jià)、撤銷(xiāo)機(jī)制、訪問(wèn)策略、重加密功能、能否解決授權(quán)中心不可信問(wèn)題等方面與文獻(xiàn)[10,13,16-18,21-24]中的方案進(jìn)行對(duì)比,以評(píng)估本方案的性能.比較結(jié)果見(jiàn)表1.
Table 1 Performance comparison of the proposal against other schemes表1 本方案與其他方案性能比較
表1 中,Tbp表示一次雙線性對(duì)運(yùn)算所需的時(shí)間復(fù)雜度,Texp表示一次G1群上的模冪運(yùn)算所需的時(shí)間復(fù)雜度,|A|表示所有屬性的數(shù)量,|B|表示訪問(wèn)策略中聲明的屬性的數(shù)量,|C|表示用戶擁有屬性的數(shù)量,|D|表示用戶解密使用的屬性的數(shù)量,r表示撤銷(xiāo)事件的數(shù)量.
從表1 可以看出:在已有的結(jié)果中,本方案的密鑰長(zhǎng)度僅次于文獻(xiàn)[24]中的方案.文獻(xiàn)[13,23]需要給每個(gè)用戶頒發(fā)所有屬性相應(yīng)的密鑰,因此密鑰長(zhǎng)度較長(zhǎng);而文獻(xiàn)[10,16-18,21,22]中的方案與本方案類(lèi)似,只需要給每個(gè)用戶頒發(fā)自身屬性相應(yīng)的密鑰,減少了密鑰長(zhǎng)度.同時(shí),為了確保能夠抵抗合謀攻擊,本方案引進(jìn)了一個(gè)私有變量,因此比文獻(xiàn)[24]中的方案增加了1|G1|bit.
為了實(shí)現(xiàn)對(duì)用戶屬性的細(xì)粒度撤銷(xiāo),本方案采用在密文中直接嵌入撤銷(xiāo)信息的方法,需要產(chǎn)生與屬性撤銷(xiāo)名單一一對(duì)應(yīng)的密文,因此在密文長(zhǎng)度上本方案并不具備優(yōu)勢(shì),為(2|B|+2)|G1|bit.雖然文獻(xiàn)[23,24]中的方案的密文長(zhǎng)度較小且具有恒定大小,為5|G1|,但這兩個(gè)方案只支持AND 結(jié)構(gòu)的訪問(wèn)策略,不夠靈活,并且大部分計(jì)算任務(wù)需要由屬性授權(quán)中心執(zhí)行,在用戶與屬性數(shù)目較大時(shí),易造成性能瓶頸.文獻(xiàn)[13,21]中的方案的密文長(zhǎng)度比本文方案略短,但文獻(xiàn)[13]中的方案采用了間接撤銷(xiāo)模式,而文獻(xiàn)[21]中的方案則通過(guò)與半可信第三方的交互來(lái)實(shí)現(xiàn)屬性的直接撤銷(xiāo),通信代價(jià)較大.文獻(xiàn)[10,16,18]中的方案的密文長(zhǎng)度與本方案相近,但這3 個(gè)方案只支持用戶撤銷(xiāo),不支持屬性撤銷(xiāo),撤銷(xiāo)粒度粗.文獻(xiàn)[17,22]中的方案為了抵抗合謀攻擊,需要對(duì)密文進(jìn)行隨機(jī)化處理,因此這兩個(gè)方案密文長(zhǎng)度較大,分別為(4|B|+1)|G1|bit 和(3|B|+2r+2)|G1|bit.總體而言,在保證良好的系統(tǒng)安全性、靈活性以及更細(xì)的屬性撤銷(xiāo)粒度前提下,本文方案具有較短的密文長(zhǎng)度.
綜合加密與解密的計(jì)算量,文獻(xiàn)[24]中的方案的計(jì)算代價(jià)最少,為5Texp+(5+r)Tbp,但該方案將大量的計(jì)算任務(wù)交由屬性授權(quán)中心執(zhí)行,其安全性高度依賴(lài)于屬性授權(quán)中心的可靠性,且該方案的解密計(jì)算量與屬性撤銷(xiāo)頻率呈線性關(guān)系,不適用于屬性變化頻繁的云計(jì)算環(huán)境中.相比于其他方案,本方案在計(jì)算代價(jià)上具有較大優(yōu)勢(shì),僅比文獻(xiàn)[21]中的方案增加了(|B|+1)Texp.而文獻(xiàn)[21]中的方案使用了兩部分密鑰,且解密時(shí)需要跟屬性授權(quán)中心進(jìn)行認(rèn)證,增加了通信代價(jià).方案[13]采用屬性的間接撤銷(xiāo),需要在屬性變化時(shí)頒發(fā)新的密鑰,并且計(jì)算代價(jià)與所有屬性的集合大小相關(guān),當(dāng)屬性集合過(guò)大時(shí),解密方可能無(wú)法負(fù)荷相應(yīng)的計(jì)算量.而文獻(xiàn)[10,16-18,22,23]中的方案都存在計(jì)算代價(jià)大且與屬性撤銷(xiāo)頻率呈線性關(guān)系的問(wèn)題.本文方案不僅實(shí)現(xiàn)了細(xì)粒度屬性的直接撤銷(xiāo),并且采用了訪問(wèn)樹(shù)結(jié)構(gòu),能夠保證密文的靈活使用,在計(jì)算效率上也進(jìn)行了優(yōu)化,更加實(shí)用.
從功能性進(jìn)行分析,主要集中于細(xì)粒度屬性直接撤銷(xiāo),而重加密是實(shí)現(xiàn)上述功能的重要方法,即:當(dāng)用戶屬性撤銷(xiāo)事件發(fā)生時(shí),對(duì)已經(jīng)生成并發(fā)布的密文重新進(jìn)行加密,以避免屬性被撤銷(xiāo)用戶解密該密文.文獻(xiàn)[10,17,21,22]并不支持重加密,文獻(xiàn)[13,16,18,23,24]中的方案雖然具備重加密功能,但是存在撤銷(xiāo)粒度粗(如文獻(xiàn)[16,18]中的方案),或訪問(wèn)策略表達(dá)能力弱(如文獻(xiàn)[13,23,24]中的方案)的缺點(diǎn).本文方案在樹(shù)狀訪問(wèn)結(jié)構(gòu)基礎(chǔ)上,通過(guò)引入屬性撤銷(xiāo)列表,給出了高效的重加密算法,從而實(shí)現(xiàn)了細(xì)粒度的屬性直接撤銷(xiāo)功能.在安全性方面,本文方案能夠防止不可信授權(quán)中心的侵權(quán)行為,而絕大多數(shù)方案都不具備該特性,因此,本文方案在安全性上得以加強(qiáng).
綜上所述,本文方案采用樹(shù)狀訪問(wèn)結(jié)構(gòu)實(shí)現(xiàn)了用戶屬性的細(xì)粒度直接撤銷(xiāo),在保證安全性的前提下,具有更高的撤銷(xiāo)效率;同時(shí),所提方案能夠抵抗不可信授權(quán)中心的破譯攻擊,更加適用于用戶屬性變化頻繁的云計(jì)算環(huán)境中.
本文提出一種支持細(xì)粒度屬性直接撤銷(xiāo)的CP-ABE 方案,該方案采用樹(shù)結(jié)構(gòu)的訪問(wèn)策略,有效解決了現(xiàn)有方案撤銷(xiāo)代價(jià)與安全性難以兼顧的問(wèn)題.性能分析表明,新方案在密鑰長(zhǎng)度與計(jì)算量上具有一定優(yōu)勢(shì),并且能夠防止不可信授權(quán)中心解密用戶隱私數(shù)據(jù)的行為,可以有效避免云計(jì)算環(huán)境中因數(shù)據(jù)共享帶來(lái)的安全隱患.