許城洲,張文濤,郎靜宏
(1.中國航天系統(tǒng)科學與工程研究院,北京 100037;2.中國空間技術研究院,北京 100081)
云技術是基于云計算商業(yè)模式應用的信息技術、網絡技術和管理平臺技術等技術的總稱,其后臺具有強大的計算能力和存儲能力,可以為許多視頻類網站、圖片類網站等門戶網站提供服務。云技術的發(fā)展催生出許多云服務商,服務商分別處理和發(fā)布不同的信息,如天氣預報信息、城市路況信息、房價波動信息和股市波動信息等。由于服務商的布局和運營都有成本,許多服務需要用戶“購買”訪問權限方可獲得,如購買相應的VIP、觀看一定時長的廣告和完成特定的任務等,目前云技術應用中,如何控制終端用戶對服務數(shù)據的訪問權限成為一個重要研究課題。屬性基加密[1]特別是密文策略屬性基加密CP-ABE(Ciphertext Policy Attribute-Based Encryption)[2],可以讓數(shù)據擁有者為自己的數(shù)據定制特定的訪問策略,并可以實現(xiàn)一對多的訪問模式和細粒度的訪問控制。因此,CP-ABE被認為是云技術下對終端用戶實現(xiàn)訪問控制的理想途徑[3]。
雙線性映射的提出使許多密碼學中的問題迎刃而解[4 -6]。Bethencourt等[7]提出基于雙線性映射的CP-ABE方案,該方案將用戶私鑰和加密算法與屬性相關聯(lián),加密算法根據訪問策略生成的訪問樹對文件進行加密。同年,Ostrovsky等[8]提出包含非門訪問結構的CP-ABE方案。Waters[9]提出基于線性秘密分享方案LSSS(Linear Secret Sharing Scheme)的CP-ABE方案構造。Beimel[10]證明了線型訪問結構與樹形訪問結構可以相互轉換。這些方案都是基于雙線性映射的,實驗表明一次雙線性映射的計算開銷是同一橢圓曲線下標量乘法計算開銷的2~3倍[11],效率問題限制了屬性基加密的廣泛應用。學者們針對此問題進行了廣泛研究[12 -15]。Freeman等[16]分類列舉了適用于配對運算的橢圓曲線,并說明了他們的構造方法和優(yōu)化技術。Odelu等[17]通過橢圓曲線密碼構建出一種長度恒定的CP-ABE方案。丁晟等[18]基于有序二元決策圖OBDD(Ordered Binary Decision Diagram)訪問結構和橢圓曲線密碼構建出一種支持多個有效路徑(樹形訪問結構中從根節(jié)點到葉子節(jié)點“1”)的CP-ABE方案,但是該方案受系統(tǒng)中無關屬性影響較大。
訪問結構也是屬性基加密的重要組成部分。在云技術的實際應用中,云服務商有時候無法通過一個與非門表達式表示具有復雜訪問邏輯的訪問策略,如屬性集{1,2,3,4}中擁有其中任意2個屬性但不包括組合{1,2}的屬性集即可滿足訪問需求。為了更高效表達這種具有復雜訪問邏輯的訪問策略,訪問結構中需要引入“或門”。Cheung等[19]提出基于與門的CP-ABE方案,通過為屬性設置“無關狀態(tài)”特征值有效避免了無關屬性的干擾,但是該方案需要系統(tǒng)中所有屬性參與,且無法有效表達包含或門的訪問結構。Bethencourt等[7]提出基于門限樹的CP-ABE方案。馬華等[20]提出了基于密鑰加密密鑰KEK(Key Encryption Key)樹的CP-ABE方案,該方案需要所有用戶參與構建KEK樹,運行開銷比較大。Li等[21]提出了基于OBDD訪問結構的CP-ABE方案,該方案可以通過OBDD結構表達任何布爾函數(shù)。但是,該方案受系統(tǒng)中無關屬性元素干擾比較大且對應的布爾函數(shù)中不同或門間元素相互干擾比較嚴重。李學俊等[22]提出了基于LSSS訪問結構的CP-ABE構造,相較于樹形訪問結構,LSSS訪問結構更靈活,解密效率更高。但是LSSS缺乏直觀性,且LSSS中矩陣設計更復雜[23]。
以上方案均無法同時高效表達具有復雜訪問邏輯的訪問策略和避免系統(tǒng)中無關屬性的干擾。針對此問題,本文提出基于簡化有序二元決策圖ROBDD(Reduced Ordered Binary Decision Diagram)訪問結構的屬性基加密方案。該方案使用ROBDD創(chuàng)建訪問結構,為每一個屬性創(chuàng)建一對RSA密鑰,將ROBDD中非葉子節(jié)點的屬性標簽替換為屬性對應的RSA公鑰值;基于大素數(shù)分解原理和RSA公私鑰相乘模N運算為1實現(xiàn)屬性認證,將ROBDD中所有有效路徑作為參數(shù)創(chuàng)建多項式函數(shù),用戶將自己的私鑰經過屬性集認證后得到有效路徑特征值;再將其經過多項式運算即可得對應解密參數(shù),同時使用橢圓曲線上標量乘法替代雙線性配對運算對文件進行加解密。
該方案主要創(chuàng)新點如下所示:
(1)基于ROBDD訪問結構實現(xiàn)訪問策略,提高了訪問結構的表達能力,避免了對應的布爾函數(shù)中不同或門間元素的干擾和系統(tǒng)中無關屬性的干擾。
(2)將ROBDD訪問結構和多項式加密相結合,解決了因有效路徑特征值不同,需要用戶屬性集與有效路徑進行復雜匹配的問題,降低了密文存儲開銷。
(3)將ROBDD訪問結構和RSA屬性認證機制相結合實現(xiàn)ROBDD非葉子結點中屬性認證,同時實現(xiàn)了對用戶屬性集的保護和抗串謀攻擊。
ROBDD是一個可以用來高效表達布爾函數(shù)的有向無環(huán)圖。圖1所示為用ROBDD表示的布爾函數(shù)f(X0,X1,X2,X3,X4)=X0+X1X2X3+X2X3X4+X1X3X4。其中,圓圈表示決策節(jié)點,方塊表示終端節(jié)點,虛線表示節(jié)點的低分支,實線表示節(jié)點的高分支。判斷算法根據決策節(jié)點判斷結果選擇分支子節(jié)點,如果決策節(jié)點判斷結果為True,表明集合中包含該參數(shù),判斷算法將當前節(jié)點的高分支子節(jié)點定義為當前節(jié)點;如果決策節(jié)點判斷結果為False,表明集合中不包含該參數(shù),判斷算法將當前節(jié)點的低分支子節(jié)點定義為當前節(jié)點。函數(shù)f(X)的值從ROBDD樹的根節(jié)點開始計算,根據節(jié)點比較結果向下遍歷,直至進行到終端節(jié)點,表示一次布爾判斷結束,所到終端節(jié)點的值即為此次布爾運算所得的值。例如,若求函數(shù)f(X0=0,X1=1,X2=1,X3=1,X4=1)的值,在圖1中ROBDD訪問結構進行邏輯判斷時,從根節(jié)點X0開始,沿著虛線到達子節(jié)點X1,然后沿著實線到達右側子節(jié)點X2,最后沿著實線到達終端節(jié)點1,該集合屬性中,X3的值不會改變最終判斷結果,因此不對X3進行判斷并提前結束邏輯判斷。
Figure 1 Boolean function expressed by ROBDD 圖1 ROBDD表示的布爾函數(shù)
2.2.1 生成多項式函數(shù)
設存在一個n次多項式F(x),在xoy坐標系中有n個橫坐標值互不相等但縱坐標值相等的坐標點:{(x1,y1),(x2,y1),…,(xn,y1)},則多項式F(x)可以變換為F(x)=a0(x-x1)(x-x2)…(x-xn)+y1,當選定一個a0時,F(xiàn)(x)便可以確定。
2.2.2 多項式函數(shù)進行文件加解密
設有n個值滿足訪問策略Li,i∈[1,n],選定任意值L,則可得n個坐標點(Li,L),i∈[1,n],選擇隨機值a0,根據n個坐標點值可生成多項式函數(shù)F(x)=a0(x-L1)(x-L2)…(x-Ln)+L,將L作為參數(shù)對文件進行對稱加密,當用戶特征值v滿足v∈{Li,i∈[1,n]}時,通過多項式計算F(v)可得解密參數(shù)L。
例如,設系統(tǒng)中有4個特征值{L1=1,L2=2,L3=3,L4=4}滿足訪問策略,選定任意值L=y1=4,a0=3,可生成多項式F(x)=3(x-1)(x-2)(x-3)(x-4)+4。如圖2所示,在函數(shù)F(x)中,有且僅有x∈{1,2,3,4}時滿足F(x)=4=L。通過L值對文件進行加密,當且僅當用戶特征值v∈{1,2,3,4}時,才能通過多項式計算F(v)得到解密參數(shù),從而對密文進行解密。
Figure 2 Polynomial function圖2 多項式函數(shù)
選擇2個不相等的大素數(shù)p和q,ZN為模N=pq的簡化剩余系,φ(N)為ZN中元素個數(shù),φ(N)=(p-1)(q-1)。為系統(tǒng)中每一個屬性Pi選擇滿足gcd(pi,φ(N))=1的數(shù)pi。
本文采用文獻[24]中定義的安全模型,該模型由選擇明文攻擊CPA(Chosen Plaintext Attack)下不可區(qū)分性IND(INDistinguishability)的攻擊者和挑戰(zhàn)者之間的交互性游戲定義。
初始化階段:攻擊者A選定一個訪問結構T,并將其發(fā)送給挑戰(zhàn)者B。
系統(tǒng)建立階段:挑戰(zhàn)者B根據安全參數(shù)初始化系統(tǒng),為系統(tǒng)中每個屬性生成屬性公私鑰對,選定系統(tǒng)加解密方式,將公鑰發(fā)送給攻擊者A。
詢問階段1:攻擊者查詢系統(tǒng)加解密方式。同時,攻擊者A向挑戰(zhàn)者B詢問屬性私鑰,但是查詢的私鑰不能滿足訪問結構T。
挑戰(zhàn)階段:攻擊者A向挑戰(zhàn)者B發(fā)送2個等長的數(shù)據(M0,M1),挑戰(zhàn)者根據訪問結構T對數(shù)據Mc進行加密,c∈{0,1},然后將加密后的數(shù)據發(fā)送給攻擊者A。
詢問階段2:攻擊者A可以繼續(xù)向挑戰(zhàn)者B查詢相關信息,條件與詢問階段1相同。
猜測階段:攻擊者A分析挑戰(zhàn)者B發(fā)送的密文所對應的明文,并將猜測的結果c′發(fā)送給挑戰(zhàn)者B。攻擊者在這場游戲中的優(yōu)勢定義為ε=Pr[c′=c]-1/2。
定理2如果任何多項式時間內,敵手贏得這場游戲的優(yōu)勢是可忽略的,那么所提方案是IND-CPA安全的。
設循環(huán)群G的階為素數(shù)r,群上一個生成元為g,Zr為模r的簡化剩余系,從Zr中選擇隨機數(shù)a和b,從G中選擇隨機數(shù)R。存在2個元組(g,ag,bg,z=abg)和(g,ag,bg,z=R)。
定理3如果不存在多項式時間的攻擊者能夠以不可忽略的優(yōu)勢區(qū)分上面2個元組,則稱在該橢圓曲線上判定性迪菲-赫爾曼DDH(DecisionDiffie-Hellman)假設成立。
如圖3所示,本文CP-ABE方案由5個部分組成,分別如下所示:
(1)屬性授權終端AA(AttributeAuthority):負責生成屬性特征值并將其發(fā)送給數(shù)據擁有者DO(DataOwner),根據數(shù)據使用者DU(DataUser)的性質為其生成相關屬性集,并計算用戶和系統(tǒng)屬性集公私鑰。將用戶私鑰發(fā)送給DU,用戶公鑰和系統(tǒng)公私鑰在DU屬性認證時發(fā)送給解密服務器DSP(DecryptionServiceProvider)。
(2)數(shù)據擁有者DO:根據擁有數(shù)據的特性,制定數(shù)據訪問策略,生成相應的訪問結構,并根據訪問結構對數(shù)據進行加密,將密文上傳至云端服務器CSS(CloudStorageServer)。
(3)云端服務器CSS:存儲DO上傳的數(shù)據,并提供下載服務。
(4)解密服務器:在DU對密文進行解密時分攤計算量較大的部分。
(5)數(shù)據使用者DU:當DU的屬性集滿足文件訪問策略時,方可以對密文進行解密以獲得明文。
Figure 3 Framework of CP-ABE scheme圖3 CP-ABE方案框架
設g是橢圓曲線E上的一個階為r元素,g生成了E上的一個循環(huán)子群G。系統(tǒng)中有n個屬性,屬性全集為={P1,P2,…,Pn},用戶的屬性集為Uid。
(1)系統(tǒng)建立階段。
屬性授權終端AA選擇2個不相等的大素數(shù)p和q,計算N=pq。ZN為模N的簡化剩余系。為屬性Pi選擇滿足gcd(pi,φ(N))=1的大整數(shù)pi,并計算滿足piqi=1(modφ(N))的值qi。選擇2個抗碰撞的哈希函數(shù)H0:{0,1}ρ→{0,1}*,H1:{0,1}*→{0,1}ρ。令{N,H0,H1,p1,p2,…,pn,q1g,q2g,…,qng}是公共參數(shù),{φ(N),q1,q2,…,qn}是私有參數(shù),AA將私有參數(shù)共享給DSP,公共參數(shù)對外公開。
從[2,N-1]中選擇隨機數(shù)h,計算D=hd,其中d同時計算e當Pi∈時,ai=1,當Pi?時,ai=0。
(2)用戶身份私鑰生成。
數(shù)據擁有者DO將密文上傳至云端服務器CSS。
(4)屬性集認證。
數(shù)據使用者DU從CSS中下載需要的密文,將用戶屬性集私鑰DUid和ROBDD訪問結構上傳至解密服務器DSP,DSP根據以下步驟實現(xiàn)屬性集認證:
步驟1將ROBDD訪問結構根節(jié)點當作當前節(jié)點,提取標記節(jié)點的屬性公鑰pi。
步驟2DSP根據用戶上傳的DUid、本地存儲的用戶公鑰eUid和當前節(jié)點標記屬性特征值pi計算KUid=(DUid)eUid/pi=hqi,如果eUid/pi是一個整數(shù),轉到步驟3;否則,轉到步驟4。
步驟3搜索當前節(jié)點的高分支子節(jié)點。
①高分支子節(jié)點為決策節(jié)點。將高分支子節(jié)點當作當前節(jié)點,轉到步驟2。
然而,在媽媽60歲的尾巴上,2014年10月,她卻查出了胰腺癌,晚期,已經沒有手術的意義了,只能選擇TOMO刀放療,這種技術只有北京、上海、南京、廣州四個地方有,媽媽是重慶醫(yī)保,報不了,只能自費。一個療程10萬塊,我告訴自己,無論做多少個療程,也要做下去。我和周磊當時剛剛跟人簽了協(xié)議,寫一部30集電視劇劇本,這是我們第一部獨立署名的作品。為了給媽媽更好的照顧,我們直接從項目里退了出來,周磊也和簽約的公司辦了停薪留職。他一直盡心盡力地幫我照顧媽媽,2015年春節(jié),我?guī)е颓捎瘢黄鹪谥芾诩疫^了一個溫暖的春節(jié)。
步驟4搜索當前節(jié)點的低分支子節(jié)點。
②低分支子節(jié)點為決策節(jié)點。將低分支子節(jié)點當作當前節(jié)點,轉到步驟2。
(5)解密密文。
如果DU的屬性集通過DSP屬性集認證后返回(TT,LT),計算:L′g=F(LT),t′=H0(L′gTT),M′=C⊕t′,VK′=H1(t′‖M′),其中L′,t′,M′和VK′為原加密階段參數(shù)經解密計算所得對應值。如果VK=VK′,密文解密成功;否則,密文解密失敗。
(6)用戶屬性撤銷。
屬性授權終端AA根據用戶待撤銷屬性的屬性集′={P′1,P′2,…,P′n}提取系統(tǒng)公鑰集′={p1,p2,…,pn},計算將用戶新的公鑰發(fā)送給解密服務器DSP,新的私鑰發(fā)送給用戶。
(7)用戶撤銷。
解密服務器刪除用戶公鑰eUid,用戶刪除本地的私鑰DUid。
(8)系統(tǒng)屬性撤銷。
屬性授權終端AA刪除系統(tǒng)公私鑰中待撤銷屬性集″={P″1,P″2,…,P″n}中屬性對應公私鑰″={p1,p2,…,pn}和″={q1,q2,…,qn},AA可以選擇是否根據待撤銷屬性集″撤銷用戶中對應屬性特征值。AA對涉及″中屬性的密文{C′i},更新密文對應的訪問策略,根據更新后的訪問策略更新ROBDD訪問結構,根據更新后的ROBDD訪問結構中有效路徑{PT′i,i∈[1,B′N]}計算有效路徑對應特征值選擇隨機值a′0和L′根據{L′i,i∈[1,B′N]}生成多項式F′(x)=a′0(x-L′1)(x-L′2)…(x-L′B′N)+L′g,將F′(x)變換為F′(x)=a′0xB′N+a′1xB′N-1+…+a′B′N-1x+a′B′N,AA計算生成加密密文CT′=(C′,ROBDD′,VK′,{a′i,i∈[0,B′N]})。
本文方案為用戶分配了一個將屬性集經過冪方計算的值DUid,用戶無法從DUid中分解出單獨屬性的特征值,當用戶將DUid上傳到CSS進行屬性集認證時,只有當用戶屬性集滿足DO設定的訪問策略時方可獲得成功認證路徑上節(jié)點值運算的結果LT,用戶也無法從LT中分解出單獨屬性的特征值。當用戶屬性集不滿足訪問策略時,系統(tǒng)僅返回屬性集認證失敗,不附帶其他信息。多個用戶共謀也不能得到解密值LT,無法解密密文。
定理4如果在2.4節(jié)中定義的安全模型DDH假設成立,則第3節(jié)中的方案是IND-CPA安全的。
證明采用反證法。假設存在一個攻擊者A能以不可忽略的優(yōu)勢ε贏得本方案,則可以構造一個算法β能夠以不可忽略的優(yōu)勢ε/2攻破DDH假設。
選擇橢圓曲線E上的一個階為r的循環(huán)子群G,g是循環(huán)群G的一個生成元。挑戰(zhàn)者B從Zr中選擇3個隨機值a,b,z∈Zr,選擇隨機值c∈{0,1},如果c=0,則令Z=abg;如果c=1,則令Z=zg。挑戰(zhàn)者B將元組(g,ag,bg,Z)提交給算法β,算法β在之后的步驟中扮演挑戰(zhàn)者的角色。
系統(tǒng)初始化:攻擊者A生成一個挑戰(zhàn)訪問策略ST,訪問策略中包含的屬性構成屬性集,根據訪問策略生成挑戰(zhàn)訪問結構{Nodei=(idi,high,low,pi)},將挑戰(zhàn)訪問結構提交給算法β。
設置:在系統(tǒng)建立階段,算法β隨機選擇2個大素數(shù)p,q,計算N=pq,ZN為模N的簡化剩余系。系統(tǒng)屬性集為={P1,P2,…,Pn},為屬性Pi隨機選擇滿足gcd(pi,φ(N))=1的值pi,計算滿足piqi=1(modφ(N))的值qi,其中,pi為屬性公鑰,qi為屬性私鑰,選擇抗碰撞的哈希函數(shù)H0:{0,1}ρ→{0,1}*,H1:{0,1}*→{0,1}ρ。{φ(N),q1,q2,…,qn}是私有參數(shù),{N,H0,H1,p1,p2,…,pn,aq1g,aq2g,…,aqng}是公共參數(shù)。算法β根據攻擊者A提交的訪問結構結合系統(tǒng)屬性公鑰生成ROBDD訪問結構。根據ROBDD中有效路徑特征值{Lj,j∈[1,BN]}、隨機非零值a0和bg構造多項式函數(shù)F(x)=a0(x-L1)(x-L2)…(x-LBN)+bg,將F(x)變換為F(x)=a0xBN+a1xBN-1+…+aBN-1x+aBN,提取多項式函數(shù)參數(shù)因子{ai,i∈[1,BN]},其中BN是ROBDD中有效路徑數(shù)量,由于系統(tǒng)中pi是隨機選擇的,所以公開參數(shù)也是隨機的。
詢問階段1:攻擊者A適應性地向算法β查詢屬性私鑰,限制條件是所查詢屬性構成的屬性集不能夠滿足訪問策略。
算法β將最終密文CT發(fā)送給攻擊者A。
詢問階段2:攻擊者A繼續(xù)向算法β查詢屬性私鑰,限制條件仍然是所查詢的屬性構成的屬性集不可以滿足訪問策略。
猜測階段:攻擊者A輸出對c的猜測值c′,若c=c′,表明Z=abg;否則,Z=zg。
如果算法β輸出0,表明Z是真正的密文,由于假設攻擊者A的優(yōu)勢為ε,因此有Pr[c=c′|Z=abg]=1/2+ε;如果算法β輸出1,由于z是隨機選擇且相對獨立使用,對攻擊者來說Z是隨機的,因此有Pr[c=c′|Z=R]=1/2。
綜上,挑戰(zhàn)者B贏得DDH游戲的整體優(yōu)勢是:
如果攻擊者A在多項式時間內可以以不可忽略的優(yōu)勢ε贏得安全模型中交互性游戲,那么存在攻擊者C可以以不可忽略的優(yōu)勢ε/2贏得DDH假設,但是DDH假設是公認的數(shù)學困難問題,反證假設不成立,因此攻擊者A不存在不可忽略的優(yōu)勢攻破本方案,本文方案是IND-CPA安全的。
□
本節(jié)將本文方案和文獻[6,18,19,21]中的方案進行功能分析和效率對比,所涉及的運算有:群元素的指數(shù)運算、群元素的標量乘法和雙線性配對。由于方案中哈希運算和布爾運算的運算開銷較小,因此計算代價分析時不考慮此類運算開銷。本文方案將部分解密階段運算外包給服務器,因此解密開銷僅考慮用戶本地計算部分。為滿足其他方案性能評估需要,本節(jié)設G,GT是以素數(shù)r為階的循環(huán)群,且存在雙線性映射e:G×G→GT,表1給出了在進行方案性能對比時用到的符號和說明。
Table 1 Symbol explanation表1 符號說明
表2從方案的主要功能進行對比分析。從表2中可知,文獻[6,18,21]的方案和本文方案中的訪問結構均支持復雜訪問策略,文獻[19]的方案采用與門訪問結構,不支持復雜訪問策略。文獻[6,18,19,21]的方案均沒有考慮方案撤銷問題,均不支持用戶撤銷、用戶屬性撤銷和系統(tǒng)屬性撤銷。文獻[18]的方案采用橢圓曲線標量乘法替代雙線性配對運算,本文方案采用群元素冪運算和布爾運算替代雙線性配對運算,均采用輕量級運算方式,降低了方案的整體計算開銷;文獻[6,19,21]的方案使用運算開銷較大的雙線性配對運算。文獻[6]的方案采用門限樹作為訪問結構,本文方案采用ROBDD訪問結構,訪問結構中均不需要系統(tǒng)所有屬性參與;文獻[19]的方案采用與門訪問結構并為每個屬性設置“不相關”狀態(tài)特征值,防止因無關屬性狀態(tài)變化導致有效屬性集特征值增加,方案均可防止無關屬性干擾;文獻[18,21]的方案采用OBDD訪問結構,訪問結構中需要系統(tǒng)中所有屬性參與,無法防止無關屬性干擾。文獻[6,18,19,21]均沒有考慮解密外包問題,屬性基加密計算開銷均由本地承擔。文獻[18,21]的方案中密文需要存儲訪問結構中有效路徑特征值,文獻[6]的方案中密文需要存儲與訪問策略包含屬性的特征值,本文方案中密文需要存儲整合有效路徑特征值的多項式函數(shù)參數(shù),因此以上方案密文均不定長。文獻[19]中密文存儲所有屬性參數(shù),長度固定,但是存儲開銷較大。文獻[18,21]的方案和本文方案整合了用戶屬性集中屬性特征值,文獻[19]的方案中用戶私鑰包含所有屬性標記,因此以上方案密鑰均定長。文獻[6]的方案中用戶密鑰僅包含用戶所擁有的屬性對應屬性特征值,密鑰長度與用戶包含的屬性相關。
表3從方案的主要流程計算代價和存儲代價進行對比分析。從表3中可以看出,本文方案在多個方面優(yōu)于其他方案。在加密和解密階段,本文方案計算開銷均為常數(shù)級,且不涉及雙線性配對運算。本文方案和文獻[18,21]的方案密文長度與訪問結構中有效路徑數(shù)量相關,但是本文方案采用ROBDD訪問結構,有效路徑數(shù)量少于文獻[18,21]方案的,密文存儲開銷較低。在密鑰生成階段,本文方案和文獻[18,21]的方案中密鑰生成時間開銷均為常數(shù)級,以上方案均整合了用戶屬性集特征值,可以先計算用戶屬性集中屬性特征值相關參數(shù),然后進行相關群元素冪運算或橢圓曲線標量乘法,計算開銷較低,密鑰長度固定且較小;文獻[6,19]的方案均需要單獨計算用戶屬性集中屬性在用戶屬性集中特征值,計算開銷較大,密鑰長度也較大。
Table 2 Function comparison表2 功能分析
Table 3 Performance comparison表3 性能對比
本文對表2中部分方案進行了實驗仿真,實驗環(huán)境為Intel(R)CoreTMi5-8259U CPU @ 2.3 GHz,8.00 GB內存,MacOS Big Sur 11.0.1操作系統(tǒng)。仿真程序采用Python語言編寫,基于PyPBC庫。方案采用與文獻[18]相同的參數(shù),使用512 bit有限域中一條基于y2=x3+x超奇異曲線上160 bit的橢圓曲線群,每次向系統(tǒng)屬性集中增加一個屬性,實驗過程中訪問策略和系統(tǒng)屬性集如下所示:
其中,x5和x6為系統(tǒng)中無關屬性,以驗證本方案可防止無關屬性干擾。
實驗結果為20輪實驗平均值,圖4和圖5分別為本文方案與文獻[18,21]的方案在相同系統(tǒng)屬性集和訪問策略時加密時間和密文大小對比。由圖4可知,文獻[18,21]的方案加密時間接近冪次增加,本文方案加密時間線性增加,當訪問策略不變但系統(tǒng)屬性集增加時,文獻[18,21]的方案加密時間接近冪次增加,本文方案加密時間不再增加。用戶計算有效路徑特征值時,涉及的群元素冪運算和標量乘法計算開銷較大,對方案加密時間產生主要影響。ROBDD可以避免無關屬性干擾,比OBDD訪問結構中的有效路徑更少,因此本文方案的加密時間比文獻[18,21]的方案的加密時間更短。由圖5可知,文獻[18,21]的方案密文大小接近冪次增加,本文方案密文大小線性增加,當訪問策略不變但系統(tǒng)屬性集增加時,本文方案密文大小恒定,文獻[18,21]的方案密文大小接近冪次增加。文獻[18,21]的方案需要存儲有效路徑特征值,本文方案需要存儲有效路徑特征值整合的多項式參數(shù),參數(shù)數(shù)量與有效路徑數(shù)量相關。同理,由于ROBDD比OBDD訪問結構的有效路徑更少,本文方案的密文存儲開銷比文獻[18,21]的方案的密文存儲開銷更低。
Figure 4 Comparison of encryption time圖4 加密時間對比
Figure 5 Comparison of ciphertext size圖5 密文大小對比
為了提高屬性基加密中訪問結構的表達能力,同時避免訪問結構中無關屬性干擾,本文提出了一種新的屬性基加密方案。該方案使用ROBDD創(chuàng)建訪問結構,充分利用了ROBDD強表達能力和對應的布爾表達式中不同或門之間元素幾乎不相互干擾的特性,引入RSA屬性認證機制實現(xiàn)ROBDD非葉子節(jié)點中屬性認證,保護了用戶屬性集并實現(xiàn)了抗串謀攻擊,通過多項式加密,解決了因有效路徑特征值不同,需要用戶屬性集與有效路徑進行復雜匹配的問題。該方案實現(xiàn)了用戶撤銷、用戶屬性撤銷和系統(tǒng)屬性撤銷。通過安全性分析和性能分析表明,本文所提方案在多個方面的性能優(yōu)于其它方案,且在DDH問題中是IND-CPA安全的。實驗仿真分析表明,所提方案能夠有效防止系統(tǒng)中無關屬性干擾,更適用于超大系統(tǒng)屬性集情況。