韓益亮,郭凱陽,吳日銘,劉凱
(1.武警工程大學(xué)密碼工程學(xué)院,陜西 西安 710086;2.武警部隊密碼與信息安全保密重點實驗室,陜西 西安 710086)
隨著網(wǎng)絡(luò)技術(shù)的進一步發(fā)展,空間中的數(shù)據(jù)量逐年遞增,產(chǎn)生的數(shù)據(jù)交互需求越來越多,密碼學(xué)和信息安全技術(shù)被廣泛應(yīng)用于各個領(lǐng)域。如何在保證數(shù)據(jù)安全性的同時最大限度地發(fā)揮信息的價值成為當(dāng)今網(wǎng)絡(luò)時代向前發(fā)展所必須攻克的難關(guān)之一。屬性加密[1]作為一種新型密碼體制改變了傳統(tǒng)公鑰密碼“一對一”的加密模式,在保證數(shù)據(jù)安全性的同時可以提供靈活的訪問控制,在數(shù)據(jù)的安全共享方面有著先天的優(yōu)勢,自2005 年提出后,就受到了國內(nèi)外學(xué)者的廣泛關(guān)注。
在Sahai 和Waters 方案[1]的基礎(chǔ)上,Goyal 等[2]構(gòu)造了首個密鑰策略的屬性加密方案,即將策略嵌入密鑰之中,通過密文中的屬性信息是否與策略相匹配來決定是否解密成功,這與Bethencourt 等[3]提出的密文策略屬性加密(CP-ABE,ciphertext-policy attribute-based encryption)方案在結(jié)構(gòu)上正好相反,上述2 種結(jié)構(gòu)也成為日后研究屬性加密技術(shù)的2 個重要分支。隨著研究的深入,想要更加成熟地應(yīng)用屬性加密技術(shù)還面臨一些亟待解決的問題,主要包括兩類,一類是效率問題,即從訪問結(jié)構(gòu)、困難問題、方案設(shè)計等方面來提高屬性加密技術(shù)的性能,使其在面對多用戶、多任務(wù)量及其他高強度需求時能夠有更好的表現(xiàn);另一類是安全性問題,即解決屬性撤銷、密鑰濫用、隱私泄露、合謀攻擊等帶來的風(fēng)險挑戰(zhàn),使方案功能更加完善可靠。
為了解決這些問題,國內(nèi)外學(xué)者進行了大量的研究。在訪問結(jié)構(gòu)方面,最初被應(yīng)用在密文策略屬性加密方案中的是“與”門結(jié)構(gòu),這種結(jié)構(gòu)相對簡單,但只能支持屬性之間的“與”操作,靈活性不夠。因此,Waters[4]采用線性秘密分享方案(LSSS,linear secret sharing scheme)訪問結(jié)構(gòu)構(gòu)造了強數(shù)值假設(shè)下支持屬性與、或和門限操作的CP-ABE 機制。Ibraimi 等[5]在2009 年提出的方案采用一般訪問樹結(jié)構(gòu),同樣實現(xiàn)了支持屬性的與、或、門限操作,之后大部分的屬性加密方案都采用這3 種訪問結(jié)構(gòu)來構(gòu)造。2017 年,Li 等[6]將有序二元決策圖(OBDD,ordered binary decision diagram)引入CP-ABE,相較于LSSS 和訪問樹,這種結(jié)構(gòu)在與、或、門限操作的基礎(chǔ)上還可以提供屬性的正負(fù)值操作,使訪問策略的表達能力更加豐富。之后,孫京宇等[7]在此結(jié)構(gòu)上提出了基于橢圓曲線且支持撤銷的ABE 方案;汪倩倩等[8]提出了可追蹤且支持撤銷的CP-ABE 方案,基于決策雙線性 Diffie-Hellman(DBDH,decisional bilinear Diffie-Hellman)假設(shè)并在標(biāo)準(zhǔn)模型下證明了安全性。在防止密鑰濫用方面,Hinek 等[9]最先關(guān)注了該問題并提出了解決方案,但是需要通過第三方來協(xié)助用戶解密,不夠?qū)嵱茫籐i 等[10]通過在密鑰中嵌入特定標(biāo)記來實現(xiàn)密鑰的可追蹤性;Liu 等[11-13]針對密鑰泄露問題進行了深入研究,提出的方案包括黑盒和白盒追蹤,且性能良好。關(guān)于密鑰委托問題,趙志遠(yuǎn)等[14]提出了一種支持密鑰托管且同時支持屬性撤銷的CP-ABE 方案,還將復(fù)雜計算進行外包,提高了系統(tǒng)的效率;閆璽璽等[15]提出的方案在解決密鑰委托的同時也支持密鑰追蹤,并通過短簽名技術(shù)保護了追蹤參數(shù)。
目前,后量子密碼體制的研究已經(jīng)成為熱點和趨勢,而在屬性加密方面,相較基于雙線性映射構(gòu)造的方案,格基屬性加密方案在避免了復(fù)雜的雙線性配對的基礎(chǔ)上還能抗量子計算攻擊。Agrawal 等[16]在格基身份加密方案的基礎(chǔ)上討論了格基屬性加密方案的可能性;Boyen[17]提出了第一個格基ABE 方案并將安全性歸約到誤差學(xué)習(xí)問題上;Wang 等[18]在Agrawal 等[16]方案的基礎(chǔ)上提出了基于與門的格上CP-ABE 方案,但不具有實用性;Soo 等[19]構(gòu)造了一個環(huán)上誤差學(xué)習(xí)(RLWE,ring learning with error)問題上的CP-ABE 方案,在提升策略豐富性的同時,使方案的結(jié)構(gòu)更加簡潔;于金霞等[20-21]基于訪問樹結(jié)構(gòu)設(shè)計了一個理想格上的CP-ABE 方案,然后依靠服務(wù)器外包構(gòu)造了一個可以即時撤銷屬性的方案;閆璽璽等[22]關(guān)注了格基屬性加密中的隱私保護問題,通過半策略隱藏的方式保護了用戶隱私并在標(biāo)準(zhǔn)模型下證明了安全性;郭凱陽等[23]在屬性撤銷的基礎(chǔ)上關(guān)注了屬性分層的問題,構(gòu)造了一個格上可撤銷的分層屬性加密方案;王想等[24]基于以太坊構(gòu)造了格上可搜索的ABE 方案,并將安全性歸約于誤差學(xué)習(xí)問題,實現(xiàn)了關(guān)鍵字的細(xì)粒度搜索。由于格基屬性加密方案的研究歷史較短,還有許多問題需要深入研究,本文重點關(guān)注了訪問結(jié)構(gòu)的優(yōu)化和抗密鑰濫用的問題,主要工作如下。
1) 構(gòu)造了基于OBDD 訪問結(jié)構(gòu)的方案,豐富了格基屬性加密訪問策略的形式,除了支持與、或及門限操作外,還支持屬性的正負(fù)值,同時降低了系統(tǒng)的計算和存儲開銷,提升了方案的整體性能。
2) 將用戶信息嵌入私鑰中,實現(xiàn)了對惡意用戶的追蹤;通過維護白名單,可以實現(xiàn)用戶的撤銷以及過濾非法用戶的功能;通過2 個不同的機構(gòu)獨立生成用戶的部分私鑰,降低了授權(quán)機構(gòu)泄露密鑰的風(fēng)險,一定程度上解決了密鑰委托的問題。
3) 對所提方案進行了安全性分析,結(jié)果表明,所提方案在抗量子攻擊的基礎(chǔ)上滿足抗合謀攻擊和選擇明文攻擊安全。通過性能對比和仿真實驗對所提方案進行了分析,結(jié)果表明,所提方案相較其他方案在功能和性能上具有一定優(yōu)勢。
定義1[23]設(shè)b1,b2,…,bm是n維空間上的m個線性無關(guān)向量,s i為系數(shù),若該組向量線性組合構(gòu)成的集合滿足
1)f(x)的次數(shù)最高項系數(shù)為1。
2) 多項式環(huán)R在Z上是不可約的。
3) 對于環(huán)上任意2 個多項式g(x)和h(x),都存在以下關(guān)系
其中,poly(n)表示n的多項式函數(shù)。
定義3對于格Λ上以向量c為中心、σ為分布標(biāo)準(zhǔn)差的n維離散高斯分布ρσ,c,有
其中,Pr[·]表示概率,若以上優(yōu)勢可忽略,那么認(rèn)為其破解Decisional-RLWE 問題是困難的。
二元決策圖中有2種節(jié)點,終端節(jié)點和非終端(決策)節(jié)點,2 種節(jié)點都會被標(biāo)記0 或1,終端節(jié)點沒有子節(jié)點。對于非終端節(jié)點,其標(biāo)記為0 時的子節(jié)點為低節(jié)點,標(biāo)記為1 時的子節(jié)點為高節(jié)點,OBDD 是指所有變量順序固定的一種特殊二元決策圖[23]。
當(dāng)訪問策略中存在m個屬性元素,假設(shè)其布爾函數(shù)表達為f(x1,x2,…,xm),由香農(nóng)展開定理可得
算法1訪問策略轉(zhuǎn)換成OBDD 訪問結(jié)構(gòu)
輸入布爾函數(shù)f、屬性集IA
輸出OBDD 訪問結(jié)構(gòu)
判斷屬性集是否滿足訪問策略的過程如下。對于含有屬性i的非終端節(jié)點,若i∈D,則沿high 轉(zhuǎn)向高子節(jié)點;否則,沿low 轉(zhuǎn)向低子節(jié)點。迭代以上步驟直到終端節(jié)點,若終端節(jié)點是1,則屬性集D符合OBDD 訪問結(jié)構(gòu);若終端節(jié)點是0,則不符合。具體有效路徑搜索算法如算法2 所示。
算法2搜索OBDD 有效路徑
輸入OBDD 訪問結(jié)構(gòu)、用戶屬性集D
輸出有效路徑Pj失敗⊥
在布爾函數(shù)轉(zhuǎn)換的過程中,當(dāng)給定變量序后通常采取以下2 個簡化規(guī)則來刪除OBDD 中的冗余節(jié)點。
1) S-刪除規(guī)則。當(dāng)節(jié)點u存在u. low =u. high 時,刪除u,并將u的父節(jié)點直接連到u.low所對應(yīng)的節(jié)點處。
2) 合并規(guī)則。對于節(jié)點u和v,當(dāng)存在u.low=v.low和u. high=v. high 時,刪除其中任一節(jié)點,并將其父節(jié)點連至剩下的節(jié)點處。
例如,訪問策略的布爾表達式為f{a1,a2,a3}=),其中,aj表示屬性正值,表示屬性負(fù)值,對應(yīng)的OBDD 訪問結(jié)構(gòu)如圖1 所示。圖1中,實線表示子節(jié)點為高,虛線表示子節(jié)點為低,則從根節(jié)點到終端節(jié)點為1 的所有有效路徑都是滿足訪問策略的屬性集。
圖1 OBDD 訪問結(jié)構(gòu)
為了提升對大型文件的處理效率,本文方案采用對稱加密將數(shù)據(jù)進行加密,并將其上傳到數(shù)據(jù)服務(wù)器保存,這樣需要屬性加密的明文一般只包括文件的對稱密鑰。在密鑰安全方面,方案設(shè)立了身份中心和屬性中心2 個獨立的機構(gòu)來分管用戶的個人信息和生成密鑰。其中,身份中心只能獲取用戶的ID 信息,無法獲取屬性集信息;而屬性中心只能獲取該用戶的屬性集信息,無法獲取ID 信息。這樣保證了任何一個機構(gòu)都不能掌握用戶完整的私鑰,增加了機構(gòu)泄露用戶密鑰的難度,通過在私鑰中嵌入特定信息,當(dāng)發(fā)生密鑰泄露時,可以通過密鑰追蹤到相應(yīng)的用戶并采取撤銷等措施降低損失。本文方案還在用戶訪問數(shù)據(jù)服務(wù)器前增加了白名單匹配,不在名單上的用戶包括未成功注冊的用戶及被撤銷的用戶等,通過維護這樣的白名單可以減少不必要的信息傳輸并防止非法用戶進行數(shù)據(jù)訪問。
系統(tǒng)模型如圖2 所示,主要包括以下6 個主體。
圖2 系統(tǒng)模型
可信機構(gòu)(CA,certificate authority)。CA 為完全可信的主體,嚴(yán)格執(zhí)行規(guī)范要求,生成系統(tǒng)的公共參數(shù)和主密鑰并負(fù)責(zé)對泄露密鑰的追蹤。
身份中心(IC,identity center)。IC 為用戶生成唯一的標(biāo)記ID,生成身份私鑰及屬性中心需要的參數(shù),維護訪問白名單,假設(shè)該實體是誠實但好奇的,會按照要求執(zhí)行各種操作,但會嘗試解密密文,且無法與用戶或?qū)傩灾行倪M行合謀。
屬性中心(AC,attribute center)。AC 為用戶生成屬性私鑰并負(fù)責(zé)發(fā)送和更新版本號,和身份中心相同假設(shè)該實體是誠實但好奇的,且無法與用戶或身份中心進行合謀。
數(shù)據(jù)服務(wù)器(DS,data server)。DS 存儲數(shù)據(jù)并對需要訪問的用戶進行白名單檢索,假設(shè)該實體是誠實但好奇的。
數(shù)據(jù)擁有者(DO,data owner)。DO 將對稱加密的數(shù)據(jù)上傳到數(shù)據(jù)服務(wù)器,并將對稱密鑰通過自己制定的策略生成密文上傳到數(shù)據(jù)服務(wù)器上。
數(shù)據(jù)用戶(DU,data user)。DU 可以訪問需要的數(shù)據(jù)。
本文方案包括以下算法。
1) 初始化算法
Setup(λ,U) → PP,MSK 。由CA 執(zhí)行,確定安全參數(shù)λ,輸入包含所有屬性的集合U,輸出公共參數(shù)PP 和主密鑰MSK。
2) 加密算法
Encrypt(PP,M,A,β) → CT。由DO 執(zhí)行,輸入PP、明文數(shù)據(jù)M和訪問策略A及版本號β,輸出密文CT。
3) 身份私鑰生成算法
IKeyGen(MSK,ID) →Kα,K β,t,σ。由IC 執(zhí)行,輸入MSK 和用戶的ID,為用戶輸出身份私鑰Kα和Kβ,之后向可信機構(gòu)傳遞安全追蹤參數(shù)σ,以及向?qū)傩灾行陌l(fā)送計算參數(shù)t。將所有合法用戶的身份私鑰Kβ匯總成系統(tǒng)白名單后再同步到數(shù)據(jù)服務(wù)器。
4) 屬性私鑰生成算法
AKeyGen(PP,MSK,D,t,β) →Kz。由AC 執(zhí)行,輸入PP、MSK、用戶的屬性集D、參數(shù)t、版本號β,輸出屬性私鑰Kz,其中版本號表示只有相同版本的密文和密鑰才能實現(xiàn)解密的功能。版本號只能由屬性中心設(shè)定且不會隨意更改,并會隨密鑰一同發(fā)送給合法用戶,為了便于表示,令sk=(Kα,K β,Kz)。
5) 解密算法
Decrypt(PP,CT,sk)→M。由DU 執(zhí)行,輸入公共參數(shù)PP、密文CT、用戶的密鑰sk,解密成功輸出M,否則輸出⊥。
6) 追蹤算法
Trace(MSK,sk) → ID。由CA 執(zhí)行,輸入主密鑰MSK、用戶的密鑰sk,追蹤成功則輸出ID,失敗則輸出⊥。
本文方案流程如圖3 所示。為了便于展示,圖3中設(shè)定密鑰生成算法是在用戶加密數(shù)據(jù)之前,但實際上這是2 個不同用戶的操作,理論上數(shù)據(jù)用戶申請密鑰和數(shù)據(jù)用戶加密數(shù)據(jù)這2 個過程不區(qū)分時間先后順序。為了保證表述的完整性,將追蹤算法也在圖3 中進行展示,但需要注意的是該算法同樣與其他算法不存在時間先后順序。
2.2.1 屬性加密機制的安全模型
此類攻擊者通常為不誠實的用戶,通過描述攻擊者 A1和模擬器B 的交互游戲來定義屬性加密機制的安全模型,該游戲為選擇策略和選擇明文攻擊下的不可區(qū)分性游戲,具體過程如下。
初始化A1選擇一個要挑戰(zhàn)的訪問策略A*,并發(fā)送給B。
系統(tǒng)設(shè)置B 運行算法為 A1生成PP 和MSK,并將PP 發(fā)送給 A1。
階段1 A1發(fā)送私鑰查詢請求,B 收到A 的請求后為其生成私鑰并發(fā)送給 A1,注意查詢的私鑰其屬性集并不滿足A*。
挑戰(zhàn)A1隨機選擇長度相同的明文信息M0,M1∈ { 0,1}n發(fā)送給B。B 通過拋一枚均勻硬幣來決定b∈{0,1},計算出挑戰(zhàn)密文c′后發(fā)送給 A1。
階段2重復(fù)階段1。
猜測A1對B 提交關(guān)于b的猜想b′。
若b′=b且查詢的私鑰其屬性集始終不滿足A*,則攻擊者贏得此游戲,攻擊者在該游戲中的優(yōu)勢定義為。
定義5若任意攻擊者在多項式時間內(nèi)贏得上述游戲的優(yōu)勢是可忽略的,則本文方案滿足選擇策略和選擇明文攻擊下的密文不可區(qū)分性安全。
2.2.2 可追蹤性模型
此類攻擊者通常為惡意用戶或第三方敵手,通過偽造新的密鑰或改變密鑰中的身份信息企圖實現(xiàn)抗密鑰追蹤。通過描述攻擊者和模擬器之間的交互游戲來定義方案的可追蹤模型,具體過程如下。
初始化模擬器運行算法生成公共參數(shù)并發(fā)送給攻擊者 A2。
密鑰查詢攻擊者向模擬器詢問不同身份的用戶私鑰。
密鑰偽造攻擊者輸出一個用戶私鑰 sk*。
若運行追蹤算法Trace(MSK,sk*)≠⊥ 且Trace(MSK,sk*) →ID*,ID*? { IDi},其中{IDi}表示系統(tǒng)中合法用戶的ID 集合,則認(rèn)為攻擊者贏得此游戲。攻擊者在該游戲中的優(yōu)勢定義為Pr[Trace(MSK,sk*) ?⊥∪{ IDi}]。
定義6若任意攻擊者在多項式時間內(nèi)贏得上述游戲的優(yōu)勢是可忽略的,則本文方案滿足可追蹤性安全。
并將σ作為安全追蹤參數(shù)傳遞給可信機構(gòu),將t作為計算參數(shù)安全傳遞給屬性中心。
AKeyGen(PP,MSK,D,t,β) →Kz。輸入公共參數(shù)PP、主密鑰MSK、用戶的屬性集合D及參數(shù)t,隨機選擇ea←χ,對于系統(tǒng)中每個屬性,若i∈D,則對應(yīng)的屬性私鑰值為ki;若i?D∧i∈U,則對應(yīng)的屬性私鑰值為,令,計算
得到這個密鑰所嵌入的特定用戶信息。
首先,通過追蹤算法的計算過程來驗證方案追蹤密鑰的正確性。根據(jù)算法可知,可信機構(gòu)擁有和身份中心傳遞的安全追蹤參數(shù)σ。則根據(jù)追蹤算法有
計算過程為
根據(jù)ID 可以追蹤到持有該密鑰的用戶。
接下來,通過解密部分來驗證方案的正確性,下面根據(jù)算法內(nèi)容對該部分進行分析,當(dāng)合法用戶的屬性集滿足數(shù)據(jù)擁有者設(shè)定的訪問策略時,根據(jù) OBDD 訪問結(jié)構(gòu)特性,必然存在,使Zk=Zj,用戶根據(jù)自己密鑰中的Kα和Kz可計算M′=-C0Kα Kz,具體計算過程如下。
本節(jié)主要圍繞方案中屬性加密機制的安全性、可追蹤性、抗合謀攻擊以及抗密鑰委托濫用4 個方面進行分析。
4.2.1 屬性加密機制的安全性
定理1[23]如果任意多項式時間內(nèi)存在一個攻擊者 A1以ε的優(yōu)勢贏得2.2.1 節(jié)中定義的選擇策略和選擇明文攻擊下的不可區(qū)分性游戲,則存在一個模擬器B 可以以的優(yōu)勢判定RLWE 問題。
證明B 詢問挑戰(zhàn)預(yù)言機O(t+1)次,返回(ωk,υk)∈Rq×Rq,其中k∈ {0,1,2,…,t},游戲按照以下步驟運行。
初始化給定系統(tǒng)中所有屬性集合U,A1提交要挑戰(zhàn)的訪問結(jié)構(gòu)A*。
系統(tǒng)設(shè)置B 運行系統(tǒng)初始化Setup(λ,U)算法,構(gòu)造公共參數(shù)PP。隨機選擇a←Rq,定義PK0=pω0∈Rq,模擬器B 對于在U中的每一個正值屬性,隨機選擇ki←Rq;對于在U中的每一個負(fù)值屬性,隨機選擇←Rq,接下來,B 返回給 A1。
階段1查詢密鑰。A1進行私鑰查詢,由于其屬性集不滿足A*,即 A1無法計算出有效的OBDD路徑。B 通過IKeyGen 和AKeyGen 算法返回sk=(Kα,K β,Kz)給攻擊者,其中
階段2重復(fù)階段1。
猜測階段B 收到 A1的猜測值b′,并以此作為對Decisional-RLWE 問題的回答。若b′=b,輸出O′=Os,那么 A1優(yōu)勢為ε,則有
4.2.2 可追蹤性
4.2.3 抗合謀攻擊
定義此類攻擊者為多個惡意用戶,為便于描述,稱其為攻擊者3。其擁有任意多個用戶密鑰并企圖合謀來解密超出他們能力之外的密文。
針對攻擊者3,作為合法用戶,其擁有屬于自己的私鑰,其中
其中,Kα、Kβ和Kz均是均勻分布在環(huán)上的元素,且在私鑰生成過程中,由于和σ為隨機均勻產(chǎn)生,因此即使擁有相同屬性集的用戶,其得到的私鑰也是不同的,除非其能夠解決Decisional-RLWE 問題,否則惡意用戶從不同的私鑰中難以分析得到有效信息,也就無法偽造密鑰來破解超出其自身屬性范圍的密文,因此本文方案滿足抗合謀攻擊安全。
4.2.4 抗密鑰委托濫用
定義攻擊者主要有兩類,一類為惡意的身份中心,稱為攻擊者4,此類攻擊者擁有系統(tǒng)的主密鑰,并嘗試解密密文,但這類攻擊者不能和用戶或?qū)傩灾行暮现\;另一類為惡意的屬性中心,稱為攻擊者5,其與攻擊者4 類似擁有系統(tǒng)的主密鑰,并嘗試解密密文,但不能和用戶或身份中心合謀。
針對攻擊者4,其掌握主私鑰和用戶的ID,可以生成部分私鑰,但由于其無法獲取用戶的屬性集信息,因此無法偽造某用戶的屬性私鑰Kz來誣陷該用戶,通過公共參數(shù)攻擊者3,可以嘗試構(gòu)造一個新的屬性集來偽造新的屬性私鑰,但由于版本號由屬性中心設(shè)定,系統(tǒng)中可以獲得版本號信息的是屬性中心及合法用戶,根據(jù)攻擊者4 的定義,其無法與屬性中心或其他用戶進行合謀,因此無法獲得正確的版本號,則其偽造的私鑰將無法解密密文。
攻擊者5 與攻擊者4 類似,其掌握主私鑰和用戶的屬性集信息,可以生成屬性私鑰Kz,但其不掌握用戶的ID 信息,且用戶專屬的安全追蹤參數(shù)只有身份中心和可信機構(gòu)知道,根據(jù)定義,攻擊者5 無法偽造出Kβ,在不和身份中心或用戶合謀的情況下,其將無法通過白名單檢索及成功解密密文。綜上,在身份中心和屬性中心無法合謀的條件下,本文方案解決了機構(gòu)委托的問題。
本節(jié)將選取一些具有代表性的方案,從功能性和效率方面與本文方案進行分析對比。為了便于理解,將涉及的符號進行統(tǒng)一說明,如表1 所示。
表1 符號說明
4.3.1 功能性分析
本節(jié)選取了一些抗密鑰濫用的屬性加密方案,從訪問結(jié)構(gòu)、困難問題、可追蹤性和抗密鑰委托以及撤銷機制和抗量子威脅幾個方面進行分析,功能比較如表2 所示。文獻[8]方案實現(xiàn)了可追蹤性和屬性級的細(xì)粒度撤銷,基于OBDD 的結(jié)構(gòu)支持屬性正負(fù)值表達,但沒有抗密鑰委托的功能;文獻[14]方案實現(xiàn)了在抗密鑰委托的同時可以提供用戶級和屬性級粒度的撤銷操作,但無法追蹤密鑰;文獻[15]方案同時實現(xiàn)了追蹤和抗密鑰委托2 個功能,并且通過短簽名技術(shù)還可以防止追蹤參數(shù)被偽造,但只支持與門結(jié)構(gòu),且沒有提供撤銷功能;本文方案實現(xiàn)了可追蹤性、抗密鑰委托和用戶級的撤銷外,可以抵抗量子攻擊的威脅,采用和文獻[8]相同的訪問結(jié)構(gòu),在策略的表達上要優(yōu)于文獻[14-15]方案,但本文方案目前只是通過維護白名單實現(xiàn)了用戶級的撤銷,并不能實現(xiàn)更加細(xì)粒度的屬性級撤銷。
表2 功能比較
4.3.2 效率分析
本節(jié)選取了一些格基屬性加密方案從存儲性能、計算開銷和通信開銷等方面進行分析,假設(shè)方案中區(qū)分正負(fù)屬性,并且設(shè)定系統(tǒng)中正負(fù)屬性各為N,則系統(tǒng)中總共包含的所有屬性數(shù)量為2N。
1) 存儲性能
本節(jié)主要從系統(tǒng)公鑰、主私鑰、密鑰及密文長度等幾個方面對存儲開銷進行對比,結(jié)果如表3 所示。方案1 和方案3 基于LWE 問題進行構(gòu)造,系統(tǒng)公鑰、系統(tǒng)私鑰、用戶私鑰和密文的長度遠(yuǎn)大于方案2 和本文方案。與方案2 相比,除了系統(tǒng)公鑰長度相同外,本文方案的系統(tǒng)私鑰和用戶私鑰長度均遠(yuǎn)小于方案2。而且本文方案的系統(tǒng)私鑰、用戶私鑰和密文的長度均不受屬性數(shù)量的影響,其中系統(tǒng)私鑰和用戶私鑰的存儲開銷是定值,當(dāng)系統(tǒng)私鑰和用戶私鑰中包含的屬性越多時,本文方案的存儲開銷優(yōu)勢越明顯。同時本文方案的密文長度與OBDD 訪問結(jié)構(gòu)中的有效路徑數(shù)量V呈正相關(guān),當(dāng)V≤Ac時,本文方案的密文長度不會大于方案2 的密文長度。綜合以上情況來看,本文方案的整體存儲性能要優(yōu)于其他3 個方案。
表3 存儲開銷對比
模擬訪問策略的布爾表達式為f(a,b,c,d)=a+b′c+bd′+c′d,可知系統(tǒng)中有4 正4 負(fù)共8 個屬性,則Ac=8,又由OBDD 訪問結(jié)構(gòu)可推算出V=5,同時令q=257,n=128,假設(shè)系統(tǒng)中屬性數(shù)量N=30,用戶私鑰中屬性數(shù)量Au=15,再由文獻[22,25-26]可知,陷門參數(shù)m1= 5nlogq,m2= 6nlogq。通過以上數(shù)據(jù)可以模擬不同方案的存儲開銷,如圖4 所示。
圖4 不同方案的存儲開銷
訪問策略的不同決定了有效路徑數(shù)量V的不同,模擬訪問策略的布爾表達式為f(a,b,c,d),即只包含4 正4 負(fù)共8 個屬性,分析當(dāng)訪問策略類似于f(a,b,c,d)=a+b+c+d時,有效路徑數(shù)量有最大值V=24;當(dāng)訪問策略類似于f(a,b,c,d)=abcd時,有效路徑數(shù)量有最小值V=1。有效路徑數(shù)量只與密文長度有關(guān),在其他參數(shù)不變的情況下,不同有效路徑數(shù)量下密文長度對比如圖5 所示。從圖5 中可以看出,當(dāng)V=8時,本文方案的密文長度與方案2 相同,但即使有效路徑取最大值時,密文長度與方案2 仍處在同一量級,且遠(yuǎn)小于其他2 個方案。
圖5 不同方案與本文方案不同有效路徑數(shù)量下密文長度對比
2) 計算開銷
本節(jié)主要對算法在加解密及密鑰追蹤過程中涉及的計算開銷進行分析。由于加法運算開銷較小,本文主要考慮乘法及模運算,其中,mul 表示乘法運算,mod 表示模運算,計算開銷如表4 所示。本文方案加密過程中的計算量主要與有效路徑的個數(shù)相關(guān),與方案2 的計算量處于同一水平,且遠(yuǎn)小于方案1 和方案3;而在解密計算過程中,本文方案乘法的運算次數(shù)遠(yuǎn)少于其他3 個方案。需要注意的是,雖然本文方案計算開銷較小,但在加解密過程需要運行與OBDD 相關(guān)的2 個算法,在一定程度上増加了額外的開銷。
表4 計算開銷
不同方案的計算開銷如圖6 所示。本文方案無論是加密還是解密操作,計算開銷都遠(yuǎn)小于其他方案。解密操作與有效路徑數(shù)量無關(guān),不同有效路徑數(shù)量下加密操作計算開銷對比如圖7 所示。從圖7可以看出,當(dāng)V為6 或7 時,本文方案中加密操作的計算開銷與方案2 幾乎相同,但即使V取最大值時,加密操作的計算開銷與方案2 仍處在同一量級,且遠(yuǎn)小于其他2 個方案。
圖6 不同方案的計算開銷
圖7 不同方案與本文方案不同有效路徑數(shù)量下加密操作計算開銷對比
3) 通信開銷
本節(jié)主要對方案的通信開銷進行分析。整個通信過程主要涉及用戶密鑰和密文的傳輸開銷,由于方案1 和方案3 基于LWE 問題進行構(gòu)造,每次加密只有1 bit,當(dāng)加密相同明文數(shù)據(jù)時造成的開銷較大,這里主要與方案2 進行對比。
用戶密鑰方面,本文方案的密鑰尺寸不會隨著屬性數(shù)量的改變而改變,其他方案的密鑰尺寸與屬性數(shù)量成正比,當(dāng)用戶密鑰中包含的屬性數(shù)量較多時,本文方案的優(yōu)勢更加明顯。當(dāng)用戶密鑰中包含的屬性數(shù)量變化時,密鑰尺寸分析如圖8 所示。
圖8 密鑰尺寸分析
密文方面,由于本文方案使用IPFS 存儲原始加密數(shù)據(jù),加密的明文只是存儲地址和對稱密鑰,因此設(shè)置明文為1 280 bit,當(dāng)密文中的屬性數(shù)量變化時,密文開銷分析如圖9 所示。從圖9 可以看出,方案2 的密文開銷與屬性數(shù)量成正比,本文方案的密文開銷與屬性數(shù)量沒有直接關(guān)系,而與有效路徑數(shù)量相關(guān),即由具體的訪問策略決定,將密文尺寸與屬性數(shù)量的關(guān)系脫鉤并不意味著一定有優(yōu)勢,也可能帶來更大的開銷,這并非OBDD 訪問結(jié)構(gòu)的優(yōu)點,只能作為一個特點。
圖9 密文開銷分析
通過OBDD 訪問結(jié)構(gòu)的性質(zhì)不難發(fā)現(xiàn),當(dāng)訪問策略中“與”操作較多時,滿足策略的路徑數(shù)量較少,相應(yīng)的開銷就會減少。為了清晰展示這一關(guān)系,本文模擬有效路徑數(shù)量為屬性數(shù)量的隨機倍數(shù),可以發(fā)現(xiàn)對于有效路徑數(shù)量較少的情況,密文開銷遠(yuǎn)小于相同屬性數(shù)量下方案2 的開銷,但同樣由于訪問策略的不同,也會存在開銷遠(yuǎn)超過方案2 的情況,但結(jié)合密鑰和密文兩部分來分析通信開銷,本文方案存在一定的優(yōu)勢。
4.3.3 實驗分析
為了進一步分析方案的性能,本節(jié)進行了仿真實驗。由于格上屬性加密方案的相關(guān)仿真實驗較少,難以與其他方案進行有效的對比分析,本文主要對算法的運行效率進行測試。實驗環(huán)境為AMD Ryzen 7-5800H 處理器3.20 GHz,16.0 GB 內(nèi)存,64 位Windows11 操作系統(tǒng)。實驗程序基于C++語言編寫,采用Qt Creator 開發(fā)環(huán)境基于NTL 庫實現(xiàn)。
在本節(jié)實驗中,設(shè)置參數(shù)q= 8 380 417,p=3,U中包含10 個屬性,模擬設(shè)置數(shù)據(jù)擁有者的訪問策略為
數(shù)據(jù)用戶的屬性集為 {a1,a2}。實驗測試了環(huán)多項式不同維度下各個算法的運行時間,為了確保實驗結(jié)果的準(zhǔn)確性,每種情況下分別進行30 次的仿真模擬,再將得到的數(shù)據(jù)求均值,得到最終的結(jié)果,如圖10 所示。其中,密鑰生成算法的運行時間是方案中IKeyGen 和AKeyGen 算法的運行時間之和,從實驗數(shù)據(jù)整體分析,密鑰生成、加密算法和解密算法消耗的時間相對較長,并且由于參數(shù)選擇的隨機性,這3 個算法運行的最長時間和最短時間的跨度也較大,而初始化和追蹤算法的運行時間相對較短,實驗結(jié)果與算法的理論分析相符。
圖10 仿真實驗結(jié)果
本文基于OBDD 訪問結(jié)構(gòu)構(gòu)造了一個格上的可抗密鑰濫用的屬性加密方案,除了可以追蹤惡意用戶的密鑰外,還可以實現(xiàn)抗密鑰委托的功能,同時由于OBDD 訪問結(jié)構(gòu)的特點,不僅支持屬性的與、或、門限操作,還能支持屬性的正負(fù)值,而且在一定程度上降低了存儲和計算開銷。分析表明,本文方案在具有抗量子攻擊的同時滿足抗合謀攻擊和選擇策略及選擇明文攻擊下的不可區(qū)分性安全,與其他格基屬性加密方案相比,在功能和性能上均有一定的優(yōu)勢,但是本文方案并沒有考慮更細(xì)粒度的屬性更新及撤銷問題,這將是下一步研究的重點。