張嘉偉,馬建峰,馬卓,李騰
(西安電子科技大學網(wǎng)絡與信息安全學院,陜西 西安 710071)
由于云計算技術[1]能夠減輕本地設備的計算和存儲負擔,越來越多的個人和組織用戶將其數(shù)據(jù)外包并通過云計算提供方便的數(shù)據(jù)共享服務,用戶可以隨時隨地訪問并獲取有用數(shù)據(jù)[2]。然而,共享在云計算的數(shù)據(jù)包含了大量的隱私和機密,一旦被非法訪問,可能造成隱私泄露等重大事故。因此,數(shù)據(jù)的機密保護和訪問控制成為云計算共享數(shù)據(jù)安全的關鍵[3]。密文策略屬性基加密(CP-ABE,ciphertext-policy attribute-based encryption)方案[4-6]可以同時提供數(shù)據(jù)機密性和數(shù)據(jù)的細粒度訪問控制,因此非常適于為云環(huán)境下的數(shù)據(jù)共享服務提供數(shù)據(jù)保護。目前,大量針對CP-ABE 的研究工作提出了適于云計算環(huán)境下各種應用場景的安全數(shù)據(jù)共享[7-12],并在效率、安全性、訪問策略可表示性和屬性空間規(guī)模等方面進行提升。然而,這些方案在隱私保護、用戶追蹤和撤銷等方面還存在許多挑戰(zhàn)性問題。
在多數(shù)CP-ABE 方案中,訪問策略往往以明文形式和密文一起托管在公有云中。擁有共享密文訪問權限的用戶都能夠獲取與其關聯(lián)的訪問策略。然而,訪問策略屬性中的敏感信息可能被泄露。例如,在智慧醫(yī)療系統(tǒng)中,如果一個醫(yī)療記錄的訪問策略為“癌癥∧(醫(yī)生∨護士)”,則對應患者的醫(yī)療記錄等隱私信息存在泄露風險。因此,訪問策略中包含敏感信息的屬性必須被保護。為了解決這個問題,文獻[13]提出了一種方案來隱藏訪問策略屬性值。該方案不僅能實現(xiàn)隱私保護,還支持靈活的可表示性和大規(guī)模屬性空間,而且在標準模型上達到完全安全。但其基于合數(shù)階群的雙系統(tǒng)構(gòu)造所帶來的高復雜度和低性能不適合在實際中使用。為了解決效率問題,文獻[14]基于素數(shù)階群構(gòu)建屬性完全隱藏的方案,但其需要對訪問策略和用戶屬性集合同時進行處理,因此效率也較低。為了提高實際運行效率,文獻[15]基于素數(shù)階群構(gòu)造屬性值隱藏的CP-ABE 方案。
除此之外,在CP-ABE 方案中存在許多惡意用戶共享其解密密鑰給非授權用戶,從而牟取非法利益,而解密密鑰僅取決于用戶的屬性,因此根據(jù)泄露的解密密鑰追蹤惡意用戶的身份是一個難題。文獻[16]在文獻[13]的基礎上提出了一種基于白盒追蹤的CP-ABE 方案,但其在合數(shù)階群基礎上的構(gòu)造導致效率很低。同時,僅用戶追蹤對于CP-ABE 系統(tǒng)是不夠的,還需要有效的用戶撤銷機制,而用戶撤銷是CP-ABE 的一個長期存在的熱點問題。針對用戶撤銷,文獻[17-18]提出了不同的基于素數(shù)階群構(gòu)建的可撤銷CP-ABE 方案,但是這些方案的效率都比較低。之后,文獻[19-21]結(jié)合在線/離線技術和可驗證外包解密方法極大地提高了CP-ABE 中用戶撤銷的效率。與此同時,文獻[22]則將用戶撤銷功能加入可追蹤CP-ABE 方案中。針對該方案的隱私保護、串謀攻擊等問題,文獻[23]在其基礎上實現(xiàn)了隱私保護、用戶追蹤和撤銷的功能,但是仍然存在低效率等不足。而且,上述可撤銷CP-ABE 方案在用戶撤銷列表上也有較高的開銷,為了縮短用戶撤銷列表,文獻[24]引入了基于時間的用戶密鑰和密文解密周期,從而在用戶撤銷列表中通過移除密鑰失效的用戶來縮短列表長度。但是該方案的效率很低且不具備可追蹤和隱私保護的特性。
為了同時解決現(xiàn)存的基于CP-ABE 且具有隱私保護的數(shù)據(jù)共享方案中存在的用戶追蹤和撤銷以及相應的效率較低和列表開銷較高等問題,本文提出一種基于時間和隱私保護的云數(shù)據(jù)共享方案。該方案在現(xiàn)有研究基礎上,同時實現(xiàn)了CP-ABE 的隱私保護、高效用戶追蹤和撤銷以及較短的撤銷列表,其效率也超過了相關工作。表1 列出了本文方案和現(xiàn)存的一些相關工作的特性對比。其中,F(xiàn)1 表示用戶撤銷,F(xiàn)2 表示短撤銷列表,F(xiàn)3 表示隱私保護,F(xiàn)4 表示用戶追蹤,F(xiàn)5 表示基于時間訪問控制,F(xiàn)6 表示高效率,F(xiàn)7 表示大屬性空間,F(xiàn)8 表示素數(shù)運算域。
表1 本文方案和現(xiàn)存的一些相關工作的特性對比
本文主要的研究工作如下。
1) 本文提出一種基于時間并具有隱私保護的云數(shù)據(jù)共享方案。該方案針對外包在云計算中的共享數(shù)據(jù)提供了基于時間的細粒度訪問控制,而且可以有效保護共享數(shù)據(jù)的訪問策略中包含的用戶隱私。同時,故意泄露解密密鑰的惡意用戶可以被高效追蹤并進行短撤銷列表的直接撤銷。
2) 為了實現(xiàn)云數(shù)據(jù)共享服務中的基于時間的細粒度訪問控制,本文基于素數(shù)域構(gòu)造設計了根據(jù)時間控制的密文策略屬性基加密方案,通過引入時間周期的形式化表示方法,控制對用戶密鑰和共享數(shù)據(jù)的有效使用期限。同時,為了保護密文訪問策略中的用戶隱私,該方案通過隱藏訪問策略的屬性值從而實現(xiàn)用戶隱私保護。
3) 本文方案不僅實現(xiàn)了對泄露解密密鑰的惡意用戶的高效追蹤和低開銷的直接用戶撤銷,還優(yōu)化了用戶端計算效率,利用在線/離線加密技術提升用戶加密的效率,而且通過可驗證外包解密技術將繁雜的用戶解密操作卸載到云端,極大減少了用戶解密的時耗。
4) 本文方案通過安全分析證明其在選擇明文攻擊下的不可區(qū)分性,即IND-CPA(indistinguish ability under chosen-plaintext attack)攻擊類型。同時,大量的實驗結(jié)果展示了本文方案較高的時間效率與空間占用方面較好的效能。與當前相關方案的對比也驗證了本文方案在實際運行中的高效性和實用性。
定義1訪問結(jié)構(gòu)。假設存在一個n元素集合Q={Q1,Q2,…,Qn},則Q上的訪問結(jié)構(gòu)P是一個集合,其元素為Q的非空子集,即P?2Q{?}。如果存在 2 個集合A和B滿足A∈P,A?B,有B∈P,則稱訪問結(jié)構(gòu)P為單調(diào)的。如果存在一個集合C∈P,則稱其為授權集合,否則稱為非授權集合。
假設U表示全體系統(tǒng)用戶集合,RL表示用戶撤銷列表,Tu表示用戶二叉樹,用于管理系統(tǒng)用戶,它具有以下特性。
1) 每個葉子節(jié)點和一個用戶相關聯(lián)。由于系統(tǒng)用戶總數(shù)為|U|,則Tu的節(jié)點總數(shù)為2|U|-1且每個節(jié)點按照深度優(yōu)先遍歷的方式編號為0~2|U|-2。
2) 路徑path(η)表示從Tu的根節(jié)點到節(jié)點η的路徑上的節(jié)點集合。
3) 最小覆蓋集合cover(RL)表示可以覆蓋用戶撤銷列表RL之外的所有未撤銷用戶所關聯(lián)葉子節(jié)點的最小節(jié)點集合。
根據(jù)用戶二叉樹Tu的這些特征,如果一個用戶u未被撤銷且與Tu中的葉子節(jié)點ηu關聯(lián),則存在唯一的節(jié)點ηi=path(ηu) ∩cover(RL)。
用戶私鑰或者密文解密的有效期一般可表示成幾個時間段,為了減少有效期時間表示的空間和時間消耗,本文方案使用時間周期樹的方法。
假設Tt表示深度為d的時間周期樹,它的每個節(jié)點可以擁有最多m個子節(jié)點。根節(jié)點被賦值為1,每個節(jié)點的子節(jié)點從1 開始從左向右依次賦值。因此,每個節(jié)點可以被一個m進制序列表示(從根節(jié)點到當前節(jié)點的路徑的序列表示),即σ=(σ1,σ2,…,σlσ),lσ≤d,σi∈[m]。同時,每個節(jié)點(根節(jié)點除外)都表示一個具體的時間周期(例如,天、周、月、年等)。如果一個有效期包含了多個時間周期,可以使用最小覆蓋集合的方法對所有的有效時間周期進行表示,這樣比枚舉方法更簡潔高效。
圖1 表示一個深度為4 的時間周期樹,其第一層葉子節(jié)點表示年,第二層葉子節(jié)點表示月,第三層葉子節(jié)點表示天。如果一個用戶的密鑰在2020 年10 月1 日到2021 年12 月31 日期間有效,則該用戶密鑰的有效期可以表示為
圖1 時間周期數(shù)
定義3雙線性映射。假設G1和G2為2 個階為大素數(shù)p的乘法交換群,g是G1的一個生成元,則雙線性映射:G1×G1→G2滿足以下條件。
1) 雙線性。對于任意元素u,v∈G1,x,y∈Zp,有。
3) 可計算性。對于任意元素u,v∈G1,存在一個高效的算法計算。同時稱元組(G1,G2,p,e?)為一個素數(shù)雙線性群。
定義4q-BDHE 假設。假設為素數(shù)雙線性群及生成元g∈G1,隨機選擇a,b∈Zp和向量,則判定性q-BDHE 問題為區(qū)分∈G2和一個隨機元素Y∈G2。一個算法∏解決判定性q-BDHE 問題的優(yōu)勢可以定義為
判定性q-BDHE 假設成立的必要條件是當且僅當不存在一個多項式時間算法以不可忽略的優(yōu)勢解決判定性q-BDHE 問題。
基于時間和隱私保護的可撤銷可追蹤數(shù)據(jù)共享的系統(tǒng)架構(gòu)如圖2 所示,該系統(tǒng)包括屬性機構(gòu)、公有云、數(shù)據(jù)所有者和數(shù)據(jù)使用者4 個實體。其中,屬性機構(gòu)負責管理用戶屬性、產(chǎn)生和分配用戶密鑰以及用戶追蹤和撤銷,同時負責將更新密鑰和最新的用戶撤銷列表發(fā)送至公有云進行密文更新;公有云向用戶提供數(shù)據(jù)外包和共享服務并向授權用戶提供外包解密服務,同時,當有用戶被撤銷時,公有云根據(jù)最新的用戶撤銷列表以及更新密鑰對相應的密文進行更新,從而保證被撤銷用戶無法訪問撤銷前加密的密文;數(shù)據(jù)所有者將其產(chǎn)生的數(shù)據(jù)經(jīng)過離線和在線加密后上傳到公有云進行數(shù)據(jù)共享;被授權的數(shù)據(jù)使用者向公有云請求所需數(shù)據(jù)并得到其轉(zhuǎn)換密文,在經(jīng)過用戶解密后得到明文數(shù)據(jù)。
圖2 系統(tǒng)架構(gòu)
在系統(tǒng)運行中,公有云被認為是“誠實且好奇”的,該實體按照指定協(xié)議提供服務,但是可能會通過分析用戶數(shù)據(jù)獲取隱私和機密信息。數(shù)據(jù)所有者被認為是可信的且不與服務器進行串謀。權威機構(gòu)被認為是可信的并且不與任何一方串謀。數(shù)據(jù)使用者被認為是不可信任的,存在一些惡意的用戶非法訪問共享數(shù)據(jù)并且泄露訪問策略中包含的敏感和隱私信息,甚至篡改數(shù)據(jù)文件從而對用戶隱私帶來極大威脅。同時,一些數(shù)據(jù)使用者試圖將其解密密鑰和非授權用戶分享從而獲取額外利益。
根據(jù)以上威脅,本文方案需要滿足以下要求。
1) 隱私保護:密文中的訪問策略所包含的用戶隱私等信息需要得到保護。
2) 高效用戶追蹤:對于泄露的解密密鑰,需要能夠高效并精確追蹤到惡意用戶的身份。
3) 短撤銷列表用戶撤銷:在直接撤銷惡意用戶時,需要縮短用戶撤銷列表以節(jié)省開銷。
4) 大規(guī)模屬性空間:需要能夠支持大規(guī)模屬性空間,節(jié)省屬性管理復雜度,提高靈活性。
基于時間和隱私保護的可撤銷可追蹤數(shù)據(jù)共享方案由以下多項式時間算法組成。
SysSetup(κ,d)。該算法由屬性機構(gòu)執(zhí)行。輸入安全參數(shù)κ和時間樹深度d,輸出系統(tǒng)公共參數(shù)PP和主密鑰MSK。
KeyGen(PP,MSK,Su,Tv)。該算法由屬性機構(gòu)執(zhí)行。輸入系統(tǒng)公共參數(shù)PP、主密鑰MSK、用戶u的屬性集合及其密鑰有效時間期限Tv,輸出用戶u的私鑰Du。
TKeyGen(PP,Du)。該算法由數(shù)據(jù)使用者執(zhí)行。輸入系統(tǒng)公共參數(shù)PP和用戶u的私鑰Du,輸出用戶轉(zhuǎn)換密鑰TKu和恢復密鑰RKu。
Encryptoff(PP)。該算法由數(shù)據(jù)所有者執(zhí)行。輸入系統(tǒng)公共參數(shù)PP,輸出2 個加密元素池。
Encrypton(PP,M,Td,RL,A)。該算法由數(shù)據(jù)所有者執(zhí)行。輸入系統(tǒng)公共參數(shù)PP、要加密的消息數(shù)據(jù)M、密文可解密時間段Td、用戶撤銷列表RL以及一個指定的數(shù)據(jù),輸出相應的密文CT。
Decryptout(PP,CT,TKu)。該算法由公有云執(zhí)行。輸入系統(tǒng)公共參數(shù)PP、密文CT以及用戶u的轉(zhuǎn)換密鑰TKu,輸出轉(zhuǎn)換密文CT*。
Decryptu(PP,CT*,RKu)。該算法由數(shù)據(jù)使用者執(zhí)行。輸入系統(tǒng)公共參數(shù)PP、轉(zhuǎn)換密文CT*以及用戶u的部分私鑰和恢復密鑰RKu,輸出解密驗證后的明文消息M'。
Trace(PP,RL,Du)。該算法由屬性機構(gòu)執(zhí)行。輸入系統(tǒng)公共參數(shù)PP、用戶撤銷列表RL和用戶私鑰Du,輸出被追蹤用戶的身份u和更新后的用戶撤銷列表RL′。
CTUpdate(PP,RL′,CT)。該算法由屬性機構(gòu)和公有云之間的交互來完成。輸入更新后的用戶撤銷列表RL′,輸出更新后的密文CT′。
基于時間和隱私保護的可撤銷可追蹤數(shù)據(jù)共享方案的IND-CPA 安全可以通過下述挑戰(zhàn)者C 和敵手A 之間的安全游戲進行描述。
初始化。敵手A 提交規(guī)模為l*×n*的挑戰(zhàn)訪問策略A*=,用戶撤銷列表RL*和解密時間周期,其中,訪問策略的每個屬性只出現(xiàn)一次,其屬性值集合為
系統(tǒng)建立。C 運行SysSetup 算法,生成系統(tǒng)公共參數(shù)和主密鑰,并將系統(tǒng)公共參數(shù)發(fā)送給敵手A。
詢問1。敵手A 適應性地向挑戰(zhàn)者C 提交針對q個包含元組(u1,S1,T1),…,(uq,Sq,Tq)的用戶密鑰詢問。若Si?A*,或ui∈RL*,或?Ti,即屬性集合Si不滿足挑戰(zhàn)訪問策略A*,或用戶ui未被撤銷,或挑戰(zhàn)解密時間不被密鑰有效期Ti完全覆蓋,則C 計算對應的用戶密鑰并返回給敵手A。
挑戰(zhàn)者應答。敵手A 輸出2 個等長消息m0和m1給挑戰(zhàn)者C。C 隨機選擇b∈{0,1},根據(jù)挑戰(zhàn)訪問策略A*加密消息mb得到密文CT*并返回給A。
詢問2。敵手A 重復詢問1。
猜測。敵手A 輸出對c的猜測c',如果c=c',則敵手A 贏得該安全游戲。其優(yōu)勢定義為
定義 5如果任意隨機多項式時間(PPT,probabilistic polynomial time)敵手最多只能以一個可忽略的優(yōu)勢贏得上述安全游戲,則本文方案在選擇明文攻擊下是不可區(qū)分性安全的。
在本文中,每個屬性包括屬性名稱和屬性值兩部分,系統(tǒng)時間使用時間周期樹進行描述。訪問策略可表示為,其中是一個l×n的秘密生成矩陣,ρ是一個從A? 的每一行到屬性名稱索引的映射,V是訪問策略中的屬性值集合。以下是本文方案的具體構(gòu)造。
SysSetup(κ,d)。屬性機構(gòu)首先生成一個雙線性群并隨機選擇一個生成元g0∈G1以及幾個元素μ,ν∈RG1和x,y∈RZp,選取一個隨機對稱加密算法(Es,Ds)和一個隨機對稱密鑰ks。同時,創(chuàng)建一個用戶二叉樹Tu和深度為d的系統(tǒng)時間樹Tt,其中,用戶二叉樹Tu的每個葉子節(jié)點和一個用戶u相關聯(lián)并賦予一個唯一值vu∈RZp。對于Tu中的每個節(jié)點ηj,選擇ξj∈RZp得到并且計算接著,隨機選取元素L0,L1,…,Ld∈RG1并輸出系統(tǒng)公共參數(shù)PP和主密鑰MSK
KeyGen(PP,MSK,Su={Iu,Su},Tv)。屬性機構(gòu)為合法用戶u按照如下步驟生成其私鑰。
最后,該算法輸出用戶u的私鑰
TKeyGen(PP,Du)。數(shù)據(jù)使用者u首先選擇一個隨機數(shù)zu∈Zp作為其恢復密鑰RKu并按照如下方式生成其轉(zhuǎn)換密鑰。
其中,
最后,輸出用戶恢復密鑰RKu和轉(zhuǎn)換密鑰TKu。
Encryptoff(PP)。數(shù)據(jù)所有者按照如下步驟生成中間密文。
最后,該算法輸出中間密文IT={ITm,ITa}。
Encrypton(PP,M,IT,Td,RL,A)。數(shù)據(jù)所有者按照如下步驟計算密文。
首先,從中間密文的主密文模塊ITm中隨機選擇一個元,計算消息驗證Vm=H(Ru,M)并對消息數(shù)據(jù)M加密得到密文元素Cs=Es(ku,M)。
其次,將密文解密周期Td按照時間周期樹的方法表示為σd=(σ1,…,),其中σd是一個m進制序列且ld 其中,vρ(x)是訪問策略中屬性ρ(x)對應的屬性值。 再次,通過用戶二叉樹算法cover(RL)得到撤銷列表的最小覆蓋集合,根據(jù)該集合中的各節(jié)點選擇密文元素 最后,得到最終密文 Decryptout(PP,CT,TKu)。公有云首先檢測用戶u是否在密文CT的用戶撤銷列表RL中,如果在,則算法終止,返回失?。环駝t,根據(jù)用戶屬性集合和密文訪問策略,獲取一個行索引集合Ir={i:ρ(i)∈Iu∧i∈[l]}和一個常量集合使當{λi}有效時,=s成立。同時,如果用戶私鑰中嵌入的屬性值αi和密文中嵌入的訪問策略值vρ(i)一致(vρ(i)=αρ(i)),可以得到 再次,計算轉(zhuǎn)換密文元素 最后,該算法輸出最終的轉(zhuǎn)換密文CT*={RL,Vm,Ct,Cs,C0,{Ej}j∈cover(RL)}。 Decryptu(PP,CT*,,RKu)。假設用戶u未被撤銷,其首先根據(jù)用戶二叉樹中與用戶u相關聯(lián)的葉子節(jié)點ηu獲取一個唯一的節(jié)點ηj=path(ηu) ∩cover(RL)。 Trace(PP,RL,Du)。該算法首先對用戶私鑰Du執(zhí)行如下檢查。 如果用戶私鑰Du通過該檢查,則計算vu=Ds(ks,D3)。根據(jù)vu在Tu中進行搜索得到對應的用戶身份u,并將其加入用戶撤銷列表中,得到RL'=RL∪{u}。 CTUpdate(PP,RL',CT)。首先,屬性機構(gòu)隨機選擇π∈Zp,計算更新密鑰ξ'=并將其通過安全信道發(fā)送給公有云。 其次,公有云根據(jù)更新后的用戶撤銷列表RL'得到其最小覆蓋集合cover(RL')。對于該集合中的每個節(jié)點∈cover(RL'),對以下2 種情況升級對應的密文CT。 情況1如果對于升級前的用戶撤銷列表RL,存在一個節(jié)點ηj∈cover(RL) 使,則設置=Ej。 最后,更新后的密文為 在本文方案中,IND-CPA 安全可以規(guī)約到判定性q-BDHE 困難性問題上。 定理1如果判定性q-BDHE 困難性假設成立,任意PPT 敵手選擇訪問策略和選擇明文攻擊下最多只能以一個可忽略的優(yōu)勢攻破本文方案,其中,q>2|U|-2。 定理2如果存在一個PPT 敵手A 可以以優(yōu)勢ε攻破本文方案,則可以構(gòu)建一個模擬器B 以ε/2的優(yōu)勢解決q-BDHE 困難問題。該模擬過程描述如下。 B 根據(jù)已知消息選擇的參數(shù)按照KeyGen 和TKeyGen 算法分別生成用戶解密密鑰和轉(zhuǎn)換密鑰并返回給敵手A。 詢問2。敵手A 重復詢問1。 另外,本文方案的可追蹤性采用文獻[23]中的機制,因此保持了相同的強可追蹤性,其安全性證明也相近,此處因篇幅限制不做專門證明。 本節(jié)通過將本文方案與文獻[13]方案、文獻[16]方案和文獻[23]方案在計算開銷和存儲開銷方面進行對比,給出本文方案的理論性能分析。其中,|S|表示用戶屬性集大小,|I|表示訪問策略復雜度,E1(E2)、M1(M2)、P分別表示素數(shù)階群G1(G2)上的指數(shù)、乘法運算和雙線性映射運算,|G1|、|G2|、|Zp|分別表示素數(shù)階群G1、G2、Zp上的元素長度,Ei(ET)、Mij(MT)、Pij分別表示合數(shù)階群Gi(GT)上的指數(shù)、乘法運算和雙線性映射運算,|Gij|、|GT|、|ZN|表示合數(shù)階群Gi、GT、ZN上的元素長度,|C|表示撤銷列表在用戶二叉樹中最小覆蓋集合大小,|P|表示用戶二叉樹中路徑長度。 表2 給出了本文方案和文獻[13,16,23]方案的計算開銷對比。在加密算法中,本文方案實現(xiàn)了最小的加密開銷,由于引入了在線/離線技術,加密過程中省去了文獻[23]方案中的訪問策略相關開銷;文獻[13]方案和文獻[16]方案的復雜度高于本文方案而且其是在合數(shù)階群上進行的設計,因此效率很低。在解密過程中,由于外包解密的引入,本文方案僅需要一次雙線性映射操作,訪問策略相關操作都外包至公有云,因此開銷遠小于文 獻[23]方案;在文獻[13]方案和文獻[16]方案中,解密過程也需要大量合數(shù)階群上的指數(shù)和雙線性運算,效率很低。 表2 本文方案和相關方案的計算開銷比較 表3 給出了本文方案和文獻[13,16,23]方案的存儲開銷對比。由于支持用戶撤銷,本文方案和文獻[23]方案都引入了額外的用戶空間相關的公共參數(shù)元素,另外,本文方案還引入了時間周期樹的相關元素,因此具有更長的公共參數(shù),但是,以上全部方案的公共參數(shù)均為常數(shù),因此都支持大屬性空間。在用戶密鑰長度上,本文方案由于采用了外包解密機制,僅需要保存恢復密鑰和用戶密鑰中與用戶二叉樹路徑相關的部分。而其他方案則需要保存較長的密鑰,特別是文獻[13]方案和文獻[16]方案的用戶密鑰在合數(shù)階群上的長度更長。在密文長度方面,本文方案由于采用了在線/離線加密技術,因此比文獻[23]方案有更多的開銷,但是由于所增加的長度為素數(shù)階群Zp上的元素長度,因此額外開銷很少。 表3 本文方案和相關方案的存儲開銷對比 此外,本文通過實現(xiàn)4 個方案并對其進行仿真實驗和對比分析真實運行數(shù)據(jù)來展示本文方案的實際性能。使用Java 編程語言和JPBC 庫[25]對4 個方案進行實現(xiàn),采用JPBC 庫的Type A 曲線E(Fq):y2=x3+x生成2 個階為素數(shù)p的乘法循環(huán)群G1,G2,其 中,p=80,q=160。因此,|G1|=|G2|=320,|Zp|=160。所有實驗都在一臺硬件配置為Core i5-6500 CPU @ 2.60 GHz、6 GB內(nèi)存并安裝Windows Server 2013 操作系統(tǒng)的服務器上運行和測試。 圖3 描繪了4 個方案的文件加密時間和密文長度。圖3(a)和圖3(b)對比了這4 個方案在不同的撤銷列表最小覆蓋集設置|C|的文件加密時間。可以很明顯看出,本文方案在加密過程中需要的時間損耗遠小于其他方案,而且隨著訪問策略復雜度的增長,本文方案所需的加密時間增長較緩慢。圖3(c)和圖3(d)展示了4 個方案在不同的撤銷列表最小覆蓋集設置|C|下的密文長度。其中,4 個方案的密文大小均隨著訪問策略的復雜度的增大而增加。由于引入了在線離線技術,本文方案的密文長度要大于文獻[23]方案,但是僅限于群Zp上元素的量級。而文獻[13]方案和文獻[16]方案由于在合數(shù)階群上構(gòu)建,因此其實際的開銷遠大于其他2 個方案。 圖3 4 個方案的文件加密時間和密文長度 圖4 展示了4 個方案中文件解密時間隨著密文個數(shù)的變化情況。圖4(a)和圖4(b)分別為在訪問策略復雜度|I|=5和|I|=10的設置下,4 個方案的解密時間對比。從圖4 可以看出,在同樣的訪問策略復雜度設置下對同樣個數(shù)的密文進行解密時,本文方案所需的解密時間要遠小于其他方案,而且其隨文件個數(shù)增長的變化非常緩慢。 圖4 4 個方案中文件解密時間隨著密文個數(shù)的變化情況 圖5 展示了4 個方案在密鑰生成時間、用戶密鑰長度和公共參數(shù)長度方面的性能對比。圖5(a)和圖5(b)顯示了4 個方案在不同的時間周期樹深度d設置下密鑰生成時間隨著用戶屬性集合大小的變化情況。可以看出,由于基于合數(shù)階群構(gòu)建,文獻[13]方案和文獻[16]方案的密鑰生成時間遠超過另外2 個方案。本文方案在密文生成算法引入了基于時間的操作,因此開銷比文獻[23]方案大。但是,在實際中d一般很小,因此本文方案中額外引入的與系統(tǒng)時間周期樹深度d相關的計算和存儲開銷也非常小。圖5(c)和圖5(d)顯示了4 個方案在不同路徑長度|P|設置下用戶密鑰長度隨著用戶屬性集合大小的變化情況。本文方案由于采用了外包解密機制,需要保存的用戶密鑰僅為恢復密鑰以及和路徑相關的解密密鑰部分,因此用戶密鑰長度很小,隨著屬性集合大小的變化也很小。文獻[13]方案和文獻[16]方案由于采用合數(shù)階群實現(xiàn),因此密鑰長度遠大于另外2 個方案。圖5(e)和圖5(f)描繪了在不同的時間周期樹深度d設置下系統(tǒng)公共參數(shù)長度隨系統(tǒng)屬性集合的變化情況。很明顯,4 個方案的公共參數(shù)的大小均不受系統(tǒng)屬性全集大小影響,即均支持大規(guī)模屬性集合。文獻[23]方案和本文方案由于支持用戶撤銷,因此需要更多的參數(shù)開銷,同時本文方案還支持時間有效性而引入了時間相關的公共參數(shù),因此,公共參數(shù)長度大于文獻[23]方案。 圖5 4 個方案在密鑰生成時間、用戶密鑰長度和公共參數(shù)長度方面的性能對比 圖6 展示了本文方案和文獻[23]方案、文獻[16]方案在用戶追蹤時間和存儲方面的真實開銷對比。圖6(a)對比評估了3 個方案的用戶追蹤時間。由于文獻[16]方案基于合數(shù)階群進行構(gòu)建,而且其追蹤用戶的算法基于用戶列表查找,因此計算開銷高于另外2 個方案。圖6(b)是3 個方案在存儲方面的實際消耗對比。由于本文方案和文獻[23]方案在實現(xiàn)用戶追蹤時不需要用戶列表,其用戶追蹤的存儲開銷為0;而文獻[16]方案的用戶追蹤需要維護一個額外的用戶列表,因此,文獻[16]方案在存儲方面消耗較大,而且隨著用戶個數(shù)增多,列表存儲開銷增大。 圖6 3 個方案在用戶追蹤時間和存儲方面的真實開銷對比 綜上所述,本文方案由于在系統(tǒng)公共參數(shù)中引入時間相關的一些固定參數(shù),因此在公共參數(shù)的存儲開銷中有所增加。然而,本文方案在計算性能和其他存儲空間開銷方面都遠超文獻[13,16,23]方案。因此,本文方案更具有實用性和高效性。 為了解決當前CP-ABE 方案中存在的隱私保護和用戶追蹤以及撤銷等嚴重問題,本文設計了一種可撤銷可追蹤的基于時間且具有隱私保護的云數(shù)據(jù)共享方案,實現(xiàn)了基于時間的細粒度訪問控制和訪問策略的用戶隱私保護。同時,對于惡意泄露密鑰的用戶,設計了一種高效追蹤用戶并進行直接用戶撤銷的機制,該機制具有很短的用戶撤銷列表。本文方案的加密過程只需要簡單的整數(shù)計算,而在解密過程中只需要一個雙線性映射運算,相比已有方案,整體效率有很大提升。此外,在判定性q-BDHE假設下,本文方案是IND-CPA 安全的,而且支持大規(guī)模屬性空間,非常適于云環(huán)境下數(shù)據(jù)共享的實際應用。5 安全性分析
6 性能分析
7 結(jié)束語