許城洲,李 陸,張文濤
(1.中國(guó)航天系統(tǒng)科學(xué)與工程研究院,北京 100037;2.中國(guó)航天科技集團(tuán)有限公司,北京 100048)
云存儲(chǔ)作為一種將存儲(chǔ)資源放在云上供人存取的新型存儲(chǔ)方案,以其較低的成本、更好的備份和便捷的訪問等優(yōu)勢(shì)受到了許多用戶的青睞。然而云服務(wù)器并不是完全可靠的,云服務(wù)商也爆出了許多安全事故,導(dǎo)致用戶擔(dān)憂云服務(wù)的安全性[1]。為了實(shí)現(xiàn)數(shù)據(jù)在云環(huán)境中的安全存儲(chǔ),用戶可以將數(shù)據(jù)加密后上傳至云端服務(wù)器。云存儲(chǔ)中有許多云服務(wù)器,他們通常分別發(fā)布和處理不同的信息,為用戶提供服務(wù)。傳統(tǒng)的公鑰加密和身份基加密IBE(Identity-Based Encryption)[2,3]無法滿足云存儲(chǔ)模式下的訪問控制需求,屬性基加密ABE(Attribute-Based Encryption)[4-6]特別是密文策略屬性基加密CP-ABE(Ciphertext-Policy ABE)[7],可以讓用戶為數(shù)據(jù)設(shè)置獨(dú)特的訪問策略,并實(shí)現(xiàn)“一對(duì)多”的訪問模式和細(xì)粒度的訪問控制,讓用戶更安全高效地享受新型網(wǎng)絡(luò)服務(wù)[8]。
訪問結(jié)構(gòu)是ABE體制中的重要組成部分,會(huì)直接影響ABE方案的表達(dá)能力。本文中“復(fù)雜訪問策略”是指訪問策略中包含“與門”“或門”,也可能包含“非門”,且同一個(gè)屬性可以在訪問策略中以任何狀態(tài)(“需要”“不需要”“無所謂”)重復(fù)出現(xiàn)。Annane等[9]基于與門訪問結(jié)構(gòu),構(gòu)造屬性基加密方案,該方案需要所有屬性參與,無法防止無關(guān)屬性干擾,且無法支持復(fù)雜訪問策略。Zhang等[10]基于樹形訪問結(jié)構(gòu)構(gòu)造屬性基加密方案,加強(qiáng)了對(duì)訪問策略的支持。Cheung等[11]提出基于與門的CP-ABE方案,為每個(gè)屬性設(shè)置“需要”“不需要”和“無所謂”3種狀態(tài)的特征值,避免了系統(tǒng)中無關(guān)屬性的干擾。Waters[12]提出了基于線性秘密分享方案LSSS(Linear Secret Sharing Scheme)訪問結(jié)構(gòu)的CP-ABE方案。Balu等[13]提出了基于分布矩陣的CP-ABE方案。這些方案可以成功表示一些訪問策略,但是每個(gè)屬性只能在訪問結(jié)構(gòu)中出現(xiàn)一次。Li等[14]基于有序二元決策圖OBDD(Ordered Binary Decision Diagram)訪問結(jié)構(gòu)提出新型CP-ABE方案,充分利用了OBDD的高效性和高表達(dá)性,可以高效地表達(dá)帶有“與門”“或門”和“非門”的任意布爾函數(shù)的復(fù)雜訪問策略,但是OBDD訪問結(jié)構(gòu)中有效路徑包含所有屬性,無關(guān)屬性干擾會(huì)導(dǎo)致訪問結(jié)構(gòu)中冗余有效路徑較多。
屬性基加密廣泛使用的雙線性配對(duì)運(yùn)算計(jì)算開銷較大,限制了屬性基密碼體制的應(yīng)用。實(shí)驗(yàn)結(jié)果表明,雙線性配對(duì)運(yùn)算的計(jì)算開銷大約是橢圓曲線標(biāo)量乘法的2~3倍[15],是群元素冪運(yùn)算的3~5倍[16]。Odelu等[17]首次指出雙線性配對(duì)運(yùn)算計(jì)算開銷過大,并基于橢圓曲線密碼、多項(xiàng)式函數(shù)和布爾運(yùn)算實(shí)現(xiàn)屬性基加密方案,其加密和解密時(shí)間復(fù)雜度為O(n)。隨后,他們基于RSA屬性認(rèn)證和布爾運(yùn)算提出新的CP-ABE方案[16],其加密和解密時(shí)間復(fù)雜度降為O(1)。然而這2個(gè)方案均只支持與門訪問策略。丁晟等[18]基于OBDD訪問結(jié)構(gòu)和橢圓曲線密碼構(gòu)造無雙線性配對(duì)的CP-ABE方案,支持包含“與”“或”“非”組合的訪問策略,但是仍然受OBDD性能的影響。研究人員嘗試將部分計(jì)算外包給云服務(wù)器,從而降低本地的計(jì)算開銷。Green等[19]提出了支持解密運(yùn)算外包的ABE方案。Li等[20]提出支持密鑰生成和解密運(yùn)算外包的ABE方案,還增加了對(duì)返回結(jié)果的正確性驗(yàn)證。趙志遠(yuǎn)等[21]提出了一種可驗(yàn)證的完全外包CP-ABE方案,將密鑰生成、加密和解密計(jì)算都外包給云服務(wù)器,降低了用戶本地計(jì)算開銷。Wang等[22]將計(jì)算任務(wù)外包給半可信第三方,降低本地計(jì)算開銷且本地計(jì)算開銷是固定的。Das等[23]使用橢圓曲線構(gòu)建屬性基加密方案,并將方案中的計(jì)算部分外包給服務(wù)器,進(jìn)一步降低了本地計(jì)算開銷。
本文基于簡(jiǎn)化有序二元決策圖ROBDD(Reduced Ordered Binary Decision Diagram)訪問結(jié)構(gòu),構(gòu)建支持復(fù)雜訪問策略的CP-ABE方案。該方案充分利用了ROBDD訪問結(jié)構(gòu)的高效性和高表達(dá)性。相較于OBDD訪問結(jié)構(gòu),ROBDD不受系統(tǒng)中無關(guān)屬性干擾,節(jié)點(diǎn)和有效路徑更少,降低了加密計(jì)算開銷和密文存儲(chǔ)開銷。該方案使用群元素冪運(yùn)算和布爾運(yùn)算替代雙線性配對(duì)運(yùn)算,降低了運(yùn)算開銷。該方案通過布爾函數(shù)組合訪問結(jié)構(gòu)中有效路徑特征值,當(dāng)用戶獲得任一有效路徑,通過布爾函數(shù)運(yùn)算可得密文解密參數(shù),從而對(duì)密文解密,密文不用額外存儲(chǔ)有效路徑特征值,降低了密文的存儲(chǔ)開銷。
有序二元決策圖OBDD是一個(gè)有根節(jié)點(diǎn)、非葉子節(jié)點(diǎn)和葉子節(jié)點(diǎn)的有向非循環(huán)圖,可以高效表達(dá)帶有“與門”“或門”和“非門”的布爾函數(shù)。如果OBDD中節(jié)點(diǎn)的2個(gè)分支均指向同一子節(jié)點(diǎn),則去除該節(jié)點(diǎn),將該節(jié)點(diǎn)的父節(jié)點(diǎn)直接指向其子節(jié)點(diǎn),同時(shí),合并結(jié)構(gòu)中2個(gè)分支子節(jié)點(diǎn)分別相同的節(jié)點(diǎn)。經(jīng)過以上簡(jiǎn)化后的決策圖稱為ROBDD。ROBDD有OBDD同等的表達(dá)能力,且ROBDD中節(jié)點(diǎn)數(shù)量和有效路徑數(shù)量更少,可以降低相應(yīng)的計(jì)算開銷和存儲(chǔ)開銷。

Figure 1 Boolean functions expressed with OBDD

Figure 2 Boolean functions expressed with ROBDD
將ROBDD中的節(jié)點(diǎn)依次編號(hào),最終生成的訪問結(jié)構(gòu)為:ROBDD={Nodeid|id∈ID}。其中,ID是節(jié)點(diǎn)編號(hào)的集合;Nodeid是一個(gè)元組(id,pi,high,low),id是當(dāng)前節(jié)點(diǎn)的編號(hào),pi是標(biāo)記該節(jié)點(diǎn)屬性的屬性特征值,high是當(dāng)前節(jié)點(diǎn)的高分支子節(jié)點(diǎn),low是當(dāng)前節(jié)點(diǎn)的低分支子節(jié)點(diǎn)。
本節(jié)給出所提CP-ABE方案的安全模型。該安全模型定義為攻擊者和挑戰(zhàn)者之間的交互性游戲,是選擇明文攻擊CPA(Chosen Plaintext Attack)下的不可區(qū)分性IND(INDistinguishability)游戲。通過安全模型,證明本文CP-ABE方案是IND-CPA安全的。具體描述如下:
(1)初始化:攻擊者輸出一個(gè)挑戰(zhàn)訪問結(jié)構(gòu)T并發(fā)送給挑戰(zhàn)者。
(2)系統(tǒng)建立:挑戰(zhàn)者運(yùn)行設(shè)置算法,為每個(gè)屬性生成屬性公私鑰對(duì),生成系統(tǒng)參數(shù)(MSK,MPK)并將MPK發(fā)送給攻擊者。
(3)查詢階段1:攻擊者向挑戰(zhàn)者查詢屬性Pi的屬性私鑰,唯一的限制條件是攻擊者查詢的屬性集不能滿足訪問結(jié)構(gòu)T。
(4)挑戰(zhàn):攻擊者選擇2個(gè)等長(zhǎng)的數(shù)據(jù)(M0,M1)并發(fā)送給挑戰(zhàn)者,挑戰(zhàn)者拋擲一枚硬幣c∈{0,1},根據(jù)訪問結(jié)構(gòu)T對(duì)數(shù)據(jù)Mc進(jìn)行加密得到密文CT并發(fā)送給攻擊者。
(5)查詢階段2:攻擊者可以繼續(xù)向挑戰(zhàn)者詢問屬性Pi的屬性私鑰,限制條件依然是攻擊者查詢的屬性構(gòu)成的屬性集不能滿足訪問結(jié)構(gòu)T。
(6)猜測(cè):攻擊者輸出對(duì)c的猜測(cè)結(jié)果c′,如果c=c′則攻擊者贏得該游戲。
攻擊者在該游戲中的優(yōu)勢(shì)定義為:ε=Pr[c=c′]-1/2。
定理1如果在任何多項(xiàng)式時(shí)間內(nèi),攻擊者的優(yōu)勢(shì)可以被忽略,則該CP-ABE方案被認(rèn)為是IND-CPA安全的。
設(shè)G是階為素?cái)?shù)r的循環(huán)群,g是循環(huán)群G的生成元,Zr是模r的簡(jiǎn)化剩余系,a和b是Zr中的隨機(jī)元素,R是G中的一個(gè)隨機(jī)元素。DDH(Decisional Diffie-Hellman)假設(shè)定義如下:給定元組(g,ga,gb,gab)和(g,ga,gb,R),在任意多項(xiàng)式時(shí)間內(nèi)算法B解決循環(huán)群G中的DDH假設(shè)的優(yōu)勢(shì)如式(1)所示:
ε=|Pr[A(g,ga,gb,Z=gab)=0]-
Pr[A(g,ga,gb,Z=R)=0]|
(1)
定理2若對(duì)于任何多項(xiàng)式時(shí)間算法解決DDH困難問題的優(yōu)勢(shì)ε是可以忽略的,DDH假設(shè)成立。
系統(tǒng)模型由5個(gè)部分構(gòu)成,如圖3所示。

Figure 3 System model
(1)屬性授權(quán)機(jī)構(gòu)AA(Attribute Authority):系統(tǒng)管理員角色,負(fù)責(zé)初始化系統(tǒng),為系統(tǒng)選擇加解密方式,生成系統(tǒng)公共參數(shù)和私有參數(shù),為系統(tǒng)中用戶生成用戶私鑰,將用戶公鑰發(fā)送給解密服務(wù)器DSP(Decryption Service Provider),為數(shù)據(jù)擁有者提供系統(tǒng)公鑰。AA是完全可信的。
(2)云端服務(wù)器CSS(Cloud Storage Server):存儲(chǔ)數(shù)據(jù)擁有者DO(Data Owner)上傳的加密數(shù)據(jù),并向用戶提供下載服務(wù)。CSS是半可信的。
(3)解密服務(wù)器:在數(shù)據(jù)使用者DU(Data User)對(duì)密文進(jìn)行解密時(shí)分?jǐn)傆?jì)算量較大的屬性集認(rèn)證部分,并返回用戶半解密密文。
(4)數(shù)據(jù)擁有者:為數(shù)據(jù)設(shè)置訪問策略,生成相應(yīng)的訪問結(jié)構(gòu),并對(duì)數(shù)據(jù)進(jìn)行加密,將加密后的密文上傳至CSS。
(5)數(shù)據(jù)使用者:從CSS下載密文,向DSP提交處理過的屬性集私鑰,得到半解密密文,當(dāng)DU的屬性集滿足訪問策略時(shí),可對(duì)數(shù)據(jù)進(jìn)行后續(xù)解密,否則解密失敗。
完整的屬性基加密方案通常由5個(gè)部分組成:系統(tǒng)建立、密鑰生成、加密、屬性集認(rèn)證和解密。各個(gè)部分定義如下:
(1)系統(tǒng)建立:AA根據(jù)系統(tǒng)屬性集生成系統(tǒng)參數(shù)MSK和MPK。
(2)密鑰生成:AA為用戶分配屬性集Uid,生成用戶唯一身份標(biāo)識(shí)uid和用戶密鑰,將參數(shù)發(fā)送給用戶。
(3)加密:數(shù)據(jù)擁有者DO設(shè)定訪問策略ST并生成訪問結(jié)構(gòu),使用加密算法對(duì)數(shù)據(jù)M進(jìn)行加密,生成密文CT,并將密文上傳至CSS。
(4)屬性集認(rèn)證:數(shù)據(jù)使用者DU將自己部分的密鑰和密文上傳至DSP,DSP進(jìn)行屬性認(rèn)證并將屬性認(rèn)證結(jié)果返回給DU。
(5)解密:若DSP返回的認(rèn)證結(jié)果表明DU的屬性集滿足訪問策略,DU可以對(duì)DSP返回的計(jì)算結(jié)果進(jìn)行下一步解密計(jì)算并恢復(fù)數(shù)據(jù)M,否則解密失敗。
本節(jié)將給出本文方案各個(gè)部分的具體構(gòu)造,其中相關(guān)參數(shù)在表1中說明。

Table 1 Parameters explanation
本文方案各部分具體定義如下:
(1)系統(tǒng)建立。
屬性授權(quán)機(jī)構(gòu)AA選擇2個(gè)不相等的大素?cái)?shù)p,q,計(jì)算N=pq,系統(tǒng)屬性全集為={P1,P2,…,Pn},用戶的屬性集為Uid,為系統(tǒng)中每個(gè)屬性Pi隨機(jī)選擇滿足gcd(pi,φ(N))=1的素?cái)?shù)pi,計(jì)算滿足piqi≡1(modφ(N))的值qi。選擇滿足2 (2)密鑰生成。 AA為每個(gè)用戶分配唯一身份標(biāo)識(shí)uid,隨機(jī)選擇滿足gcd(auid,φ(N))=1的素?cái)?shù)auid,計(jì)算滿足auidbuid≡1(modφ(N))的值buid,根據(jù)用戶的屬性集Uid計(jì)算用戶密鑰(buid,{auidqimodφ(N)|Pi∈Uid})。 (3)加密。 數(shù)據(jù)擁有者DO設(shè)置訪問策略ST,根據(jù)ST生成ROBDD訪問結(jié)構(gòu),選擇隨機(jī)值s,計(jì)算gsmodN,ROBDD決策節(jié)點(diǎn)結(jié)構(gòu)為(id,gspi+smodN,high,low),gspi+s為節(jié)點(diǎn)對(duì)應(yīng)屬性Pi標(biāo)記值。ROBDD中的有效路徑為{PTi,i∈[1,BN]},BN為有效路徑數(shù)量。計(jì)算式(2): (2) 生成加密密文CT=(gs,Cm,Dm,Sm,ROBDD),DO將密文上傳至CSS。 (4)屬性集認(rèn)證。 DU將{auidqi|Pi∈Uid}上傳至DSP,DSP通過以下遞歸過程進(jìn)行屬性集認(rèn)證: 步驟1將ROBDD的根節(jié)點(diǎn)作為當(dāng)前節(jié)點(diǎn),提取當(dāng)前節(jié)點(diǎn)值gspi+s。 步驟2計(jì)算: (gspi+s)auidqimodN=gsauid+sauidqimodN (3) 如果Pi∈Uid,轉(zhuǎn)到步驟3;否則,轉(zhuǎn)到步驟4。 步驟3搜索當(dāng)前節(jié)點(diǎn)的high分支節(jié)點(diǎn)。 ①如果high分支節(jié)點(diǎn)是終端節(jié)點(diǎn)0,過程結(jié)束,并返回屬性集認(rèn)證失敗。 ②如果high分支節(jié)點(diǎn)是終端節(jié)點(diǎn)1,DU屬性集對(duì)應(yīng)有效路徑為PT,計(jì)算式(4): (4) 其中,k為路徑PT中節(jié)點(diǎn)數(shù)量,過程結(jié)束,并返回屬性集認(rèn)證成功和(QT,k)。 ③如果high分支節(jié)點(diǎn)為非終端節(jié)點(diǎn),則將該節(jié)點(diǎn)定義為當(dāng)前節(jié)點(diǎn),提取當(dāng)前節(jié)點(diǎn)值gspi+s,轉(zhuǎn)到步驟2。 步驟4搜索當(dāng)前節(jié)點(diǎn)low分支節(jié)點(diǎn): ①如果low分支節(jié)點(diǎn)是終端節(jié)點(diǎn)0,過程結(jié)束,并返回屬性集認(rèn)證失敗。 ②如果low分支節(jié)點(diǎn)是終端節(jié)點(diǎn)1,DU屬性集對(duì)應(yīng)有效路徑為PT,計(jì)算式(5): (5) 其中,k為路徑PT中節(jié)點(diǎn)數(shù)量,過程結(jié)束,并返回屬性集認(rèn)證成功和(QT,k)。 ③ 如果low分支節(jié)點(diǎn)為非終端節(jié)點(diǎn),則將該節(jié)點(diǎn)定義為當(dāng)前節(jié)點(diǎn),提取當(dāng)前節(jié)點(diǎn)值gspi+s,轉(zhuǎn)到步驟2。 (5)解密密文。 DU的屬性集認(rèn)證成功會(huì)從CSS處返回(QT,k),DU計(jì)算式(6)和式(7): (6) M′=Cm&H2(K′i)|Dm&~H2(K′i) (7) DU通過計(jì)算Sm=H1(gs,M′)驗(yàn)證是否解密成功。如果解密成功,則輸出明文M。 串謀攻擊是屬性基加密方案中需要面臨的重要安全挑戰(zhàn)。一個(gè)完整的屬性基加密方案需要具備抗串謀攻擊的特性,即數(shù)個(gè)屬性集不滿足訪問條件的用戶無法通過相互交換自身信息來滿足訪問條件,從而對(duì)密文進(jìn)行解密。 在本文方案中,N是系統(tǒng)公共參數(shù),由大整數(shù)因子分解困難問題可得φ(N)不可由N在多項(xiàng)式時(shí)間內(nèi)計(jì)算的得到。用戶密鑰中auid,buid和qi均是在模φ(N)下運(yùn)算,且auid,qi,φ(N)和{ki}均未知,通過用戶密鑰構(gòu)建的n+1階等式(見式(8))中未知數(shù)的數(shù)量為2n+2,參數(shù)有無限多個(gè)解。通過多個(gè)用戶密鑰構(gòu)建n階等式(見式(9))中未知數(shù)的數(shù)量為2n+2,參數(shù)也有無限多個(gè)解。綜上,用戶無法在多項(xiàng)式時(shí)間內(nèi)通過自己密鑰獲得qi的確切值,因此本文方案可以抗串謀攻擊。 (8) (9) 本節(jié)證明本文方案在DDH假設(shè)下是IND-CPA安全的。 證明若攻擊者A可以以一個(gè)不可忽略的優(yōu)勢(shì)ε>0在多項(xiàng)式時(shí)間內(nèi)破解本文方案,那么存在一個(gè)算法B可以在多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢(shì)ε/2解決DDH問題。 設(shè)G是階為素?cái)?shù)r的循環(huán)群,g是群G的生成元,a和b是Zr中隨機(jī)元素,R是G中的一個(gè)隨機(jī)元素。挑戰(zhàn)者B拋擲一枚硬幣c∈{0,1},當(dāng)c=0時(shí),四元組為(g,ga,gb,gab);當(dāng)c=1時(shí),四元組為(g,ga,gb,R)。 (1)初始化。 A首先設(shè)置挑戰(zhàn)訪問策略,根據(jù)訪問策略生成ROBDD訪問結(jié)構(gòu)T。 (2)系統(tǒng)建立。 B選擇2個(gè)不相等的大素?cái)?shù)p,q,計(jì)算N=pq,為系統(tǒng)中每一個(gè)屬性選擇滿足gcd(pi,φ(N))=1的不同素?cái)?shù){pi,i∈[1,n]},然后計(jì)算滿足piqi≡1(modφ(N))的值qi,選擇2個(gè)單向的抵抗哈希碰撞的哈希函數(shù)H1:{0,1}*→{0,1}lN和H2:{0,1}*→{0,1}lM,其中l(wèi)N為N的長(zhǎng)度,lM為M的長(zhǎng)度。系統(tǒng)公鑰如式(10)所示: MPK={N,g,gp1,gp2,…,gpn,gaq1,gaq2,…,gaqn} (10) 系統(tǒng)私鑰如式(11)所示: MPK={φ(N),q1,q2,…,qn} (11) B將公鑰分發(fā)給A。 (3)查詢階段1。 A向B查詢屬性Ai的屬性私鑰qi,唯一的限制條件是A查詢的屬性集不能滿足訪問結(jié)構(gòu)T。 (4)挑戰(zhàn)。 A隨機(jī)選擇2個(gè)等長(zhǎng)的數(shù)據(jù)M0和M1,并將它們提交給B。B隨機(jī)選擇數(shù)c∈{0,1}后根據(jù)訪問結(jié)構(gòu)T對(duì)數(shù)據(jù)Mc進(jìn)行加密。計(jì)算式(12)生成加密密文CT=(gb,Cm,Dm,Sm,ROBDD),B將密文返回給A。 (12) (5)查詢階段2。 重復(fù)查詢階段1,限制條件與階段1的相同。 (6)猜測(cè) A提交一個(gè)對(duì)c的猜測(cè)值c′。如果c=c′,則Z=gab;如果c≠c′,則Z=R。 如果c=c′,則A猜測(cè)正確,表明Mc′為真正的密文。在這種情況下,攻擊者擁有的優(yōu)勢(shì)為ε,可以計(jì)算得到Pr[c=c′|Z=gab]=1/2+ε;如果c≠c′,此時(shí)Z=R,對(duì)于A而言是完全隨機(jī)的,從而有Pr[c=c′|Z=R]=1/2。 B破解DDH問題的優(yōu)勢(shì)如式(13)所示: Pr[α′=α|α=0]Pr[α=0]+ (13) 若攻擊者可以在一個(gè)概率多項(xiàng)式時(shí)間內(nèi)以一個(gè)不可忽略的優(yōu)勢(shì)贏得游戲,則可以以優(yōu)勢(shì)ε/2解決DDH問題。因此,攻擊者不存在以不可忽略的優(yōu)勢(shì)打破本文方案,本文方案是IND-CPA安全的。 □ 本節(jié)將本文方案與文獻(xiàn)[12,14,15,18]中的方案在功能和性能2個(gè)方面進(jìn)行分析比較。設(shè)G,GT是循環(huán)群,群G和GT中有雙線性映射e:G×G→GT。方案中雙線性配對(duì)運(yùn)算、群元素冪運(yùn)算等計(jì)算開銷較大,因此忽略其他計(jì)算開銷較小的運(yùn)算,如哈希運(yùn)算、布爾運(yùn)算等。表1中列舉了進(jìn)行方案性能對(duì)比時(shí)所用到的符號(hào)和說明。 表2從方案的主要功能進(jìn)行對(duì)比分析,從中可知所有方案均支持復(fù)雜訪問策略。文獻(xiàn)[12,14,18]中的方案均不支持解密外包,解密階段計(jì)算均由本地承擔(dān)。本文方案采用ROBDD訪問結(jié)構(gòu),文獻(xiàn)[12,15]中方案采用LSSS訪問結(jié)構(gòu),均不需要系統(tǒng)所有屬性參與,可防止無關(guān)屬性干擾。文獻(xiàn)[14,18]中方案采用OBDD訪問結(jié)構(gòu),訪問結(jié)構(gòu)中包含系統(tǒng)所有屬性,無關(guān)屬性干擾會(huì)導(dǎo)致系統(tǒng)計(jì)算和存儲(chǔ)開銷較大。本文方案通過布爾函數(shù)整合解密參數(shù),密文定長(zhǎng)且密文存儲(chǔ)開銷較低,其余方案未整合解密參數(shù),密文長(zhǎng)度隨訪問策略變化而變化,且密文存儲(chǔ)開銷較高。文獻(xiàn)[14,15]均采用雙線性配對(duì)運(yùn)算,文獻(xiàn)[18]中方案采用輕量級(jí)橢圓曲線標(biāo)量乘法,本文方案采用計(jì)算開銷更低的群元素冪運(yùn)算,降低了方案的整體計(jì)算開銷。本文方案通過設(shè)置冗余參數(shù)實(shí)現(xiàn)解密結(jié)果可驗(yàn)證。 Table 2 Function comparison 表3從方案計(jì)算代價(jià)進(jìn)行對(duì)比分析。加密階段本文計(jì)算開銷與有效路徑數(shù)量相關(guān),由于本文方案訪問結(jié)構(gòu)為ROBDD,有效路徑比文獻(xiàn)[14,18]方案的少,方案加密計(jì)算開銷更低。文獻(xiàn)[12,15]方案使用LSSS訪問結(jié)構(gòu),需要進(jìn)行矩陣運(yùn)算和其他參數(shù)運(yùn)算,加密開銷較高。密鑰生成階段本文方案僅需要普通的乘法,計(jì)算開銷可以忽略不計(jì)。解密階段本文方案僅需要輕量級(jí)群元素冪運(yùn)算,計(jì)算開銷較低且固定。文獻(xiàn)[12,14]中方案需要進(jìn)行雙線性配對(duì)運(yùn)算,計(jì)算開銷較高。本文方案通過布爾函數(shù)整合解密參數(shù),密文長(zhǎng)度較小且定長(zhǎng)。 Table 3 Comparison of computing overhead 本文對(duì)表2中部分方案進(jìn)行了仿真實(shí)驗(yàn),實(shí)驗(yàn)運(yùn)行環(huán)境為Intel?CoreTMi5-8259UCPU@3.2GHz,8GB內(nèi)存,MacOSBigSur11.3操作系統(tǒng)。仿真程序采用Python(版本3.8),基于PyPBC庫(kù)(版本0.2)、PyEDA庫(kù)(版本0.28.0)和PyCharm開發(fā)環(huán)境編寫。本文方案對(duì)訪問結(jié)構(gòu)、運(yùn)算方式和解密參數(shù)等進(jìn)行優(yōu)化,支持復(fù)雜訪問策略并可防止無關(guān)屬性干擾。因此,仿真實(shí)驗(yàn)中訪問策略為復(fù)雜訪問策略,實(shí)驗(yàn)過程中訪問策略和系統(tǒng)屬性集如式(14)所示: (14) 由圖4可知,文獻(xiàn)[14,18]方案中訪問策略的變化和系統(tǒng)屬性集屬性數(shù)量的增加使訪問結(jié)構(gòu)中有效路徑數(shù)量接近冪次增加,本文方案加密時(shí)間線性增加;當(dāng)訪問策略不變時(shí),系統(tǒng)屬性集中的屬性增加時(shí),文獻(xiàn)[14,18]方案的加密時(shí)間接近冪次增加,本文方案加密時(shí)間不再增加。用戶計(jì)算有效路徑特征值時(shí),涉及的群元素冪運(yùn)算和標(biāo)量乘法計(jì)算開銷較大,對(duì)方案加密時(shí)間產(chǎn)生了影響。ROBDD可以避免無關(guān)屬性干擾,降低了訪問結(jié)構(gòu)中的有效路徑,因此本文方案的加密時(shí)間比文獻(xiàn)[14,18]方案的加密時(shí)間更短。文獻(xiàn)[14,18]方案的密文需要存儲(chǔ)有效路徑特征值,密文大小與訪問結(jié)構(gòu)中有效路徑數(shù)量成正比。由圖5可知,文獻(xiàn)[14,18]方案的密文大小接近冪次增加,本文方案密文大小不變。本文方案密文中的初始參數(shù)數(shù)量比文獻(xiàn)[14,18]方案中的初始參數(shù)多,但是本文方案將解密參數(shù)整合使密文長(zhǎng)度不受有效路徑數(shù)量影響,且增加了密文解密驗(yàn)證功能,因此本文方案性能更高。 Figure 4 Comparison of encryption time between schemes from reference[14,18]and this paper’s scheme Figure 5 Comparison of ciphertext size between schemes from reference[14,18]and this paper’s scheme 文獻(xiàn)[12,15]方案中采用LSSS訪問結(jié)構(gòu),不支持訪問策略中同一個(gè)屬性多次出現(xiàn)?;谕鹊膶?shí)驗(yàn)環(huán)境,本節(jié)將本文方案與文獻(xiàn)[12,15]方案進(jìn)行對(duì)比分析。對(duì)比分析時(shí),訪問策略僅包含“與”“或”門,同一個(gè)屬性在訪問策略中僅出現(xiàn)一次。 圖6和圖7分別從方案的加密時(shí)間和解密時(shí)間進(jìn)行對(duì)比分析。由圖6可知,本文方案在僅包含“與”“或”門的訪問策略時(shí),加密時(shí)間整體短于文獻(xiàn)[12,15]中方案的,由于本文方案需要計(jì)算ROBDD中有效路徑特征值和訪問結(jié)構(gòu)中節(jié)點(diǎn)特征值,文獻(xiàn)[12,15]中方案需要生成LSSS矩陣向量特征值和隨機(jī)因子,因此方案的加密時(shí)間隨著訪問策略中屬性數(shù)量增加而增長(zhǎng),本文方案與文獻(xiàn)[12,15]中方案增長(zhǎng)效率接近。由圖7可知,由于本文方案將計(jì)算開銷較大的屬性集認(rèn)證運(yùn)算外包給解密服務(wù)器,用戶本地承擔(dān)的計(jì)算開銷較低且固定,本文方案的解密時(shí)間不隨著訪問策略中屬性數(shù)量的增長(zhǎng)出現(xiàn)明顯的增長(zhǎng);文獻(xiàn)[12,15]中方案均采用LSSS訪問結(jié)構(gòu),用戶本地需計(jì)算滿足解LSSS矩陣的參數(shù),并進(jìn)行相關(guān)參數(shù)配對(duì)運(yùn)算,本地計(jì)算開銷較大,且方案解密時(shí)間隨著訪問策略中屬性數(shù)量增加而明顯增加。文獻(xiàn)[12]中方案包含較多雙線性配對(duì)運(yùn)算,方案解密計(jì)算開銷較高;文獻(xiàn)[15]中方案采用輕量級(jí)橢圓曲線標(biāo)量乘法,方案解密計(jì)算開銷低于文獻(xiàn)[12]的。 Figure 6 Comparison of encryption time between schemes from reference[12,15]and this paper’s scheme Figure 7 Comparison of decryption time between schemes from reference[12,15]and this paper’s scheme 圖8從方案的密文大小進(jìn)行對(duì)比分析。由圖8可知,本文方案采用布爾函數(shù)參數(shù)整合結(jié)構(gòu)整合解密參數(shù),密文存儲(chǔ)開銷較低且固定;文獻(xiàn)[12,15]中方案,均需要存儲(chǔ)LSSS矩陣生成的相關(guān)參數(shù),密文存儲(chǔ)開銷較大,且文獻(xiàn)[12,15]中方案隨著訪問策略中屬性數(shù)量增加,密文存儲(chǔ)開銷明顯增加。 Figure 8 Comparison of ciphertext size between schemes from reference[12,15]and this paper’s scheme 綜上,本文方案相對(duì)于其他方案有更高的加解密效率和更低的存儲(chǔ)開銷。 本文基于ROBDD構(gòu)建一個(gè)支持復(fù)雜訪問策略并能夠防止無關(guān)屬性干擾的屬性基加密方案,充分發(fā)揮了ROBDD的高效性和高表達(dá)性。使用群元素冪運(yùn)算和布爾運(yùn)算替代雙線性配對(duì)運(yùn)算,降低了方案的計(jì)算開銷。通過布爾函數(shù)整合多個(gè)有效路徑對(duì)應(yīng)的有效路徑特征值,擁有任一有效路徑特征值的用戶通過布爾函數(shù)計(jì)算可得到密文解密參數(shù),密文中不用額外存儲(chǔ)有效路徑特征值,解密時(shí)也不需要進(jìn)行解密參數(shù)配對(duì),降低了密文存儲(chǔ)開銷。本文方案將屬性認(rèn)證外包給解密服務(wù)器,降低了本地運(yùn)算開銷。最后在安全模型下證明了本文方案在DDH假設(shè)下是IND-CPA安全的。性能分析和仿真分析均表明本文方案更具有優(yōu)勢(shì)。4 安全性分析
4.1 抗串謀攻擊
4.2 安全證明
5 性能分析


6 仿真實(shí)驗(yàn)





7 結(jié)束語(yǔ)