杜瑞忠,張?zhí)砗?,石朋?/p>
(1.河北大學網(wǎng)絡(luò)空間安全與計算機學院,河北 保定 071000;2.河北省高可信信息系統(tǒng)重點實驗室,河北 保定 071000)
隨著物聯(lián)網(wǎng)技術(shù)、云計算、大數(shù)據(jù)等新興技術(shù)的發(fā)展,越來越多的個人和組織用戶將其數(shù)據(jù)進行在線存儲及遠程共享。用戶可以隨時隨地訪問并獲取數(shù)據(jù)。然而,存儲在云端的數(shù)據(jù)可能包含大量的隱私和機密,一旦受到攻擊或缺乏監(jiān)控,可能造成數(shù)據(jù)被篡改或隱私泄露等重大事故[1]。數(shù)據(jù)加密被認為是實現(xiàn)數(shù)據(jù)安全的有效方法之一。
密文策略屬性基加密(CP-ABE,ciphertext policy attribute-based encryption)方案[2]可以實現(xiàn)對外包數(shù)據(jù)細粒度的訪問控制,靈活性和實用性更高,受到了業(yè)內(nèi)的廣泛關(guān)注,但存在訪問策略失效的問題,不支持數(shù)據(jù)共享。為了解決該問題,已有方案提出了屬性代理重加密方案,代理服務(wù)器可以對更改后的策略進行重加密從而實現(xiàn)數(shù)據(jù)共享,但效率較低。
在大多數(shù)現(xiàn)有的CP-ABE 方案中,數(shù)據(jù)擁有者通常會將加密數(shù)據(jù)上傳到云服務(wù)器,一旦云服務(wù)器發(fā)生問題,會導致整個系統(tǒng)癱瘓,此類方案依賴于云服務(wù)器[3-4],存在單點故障問題。為了解決這一問題,研究者提出了基于權(quán)能的訪問控制(CapBAC,capability-based access control)方案[5]以及基于區(qū)塊鏈的訪問控制方案。然而,CapBAC 方案在輕量級的設(shè)備上實現(xiàn)分布式訪問控制時,由于輕量級設(shè)備不能保證自己的安全性,攻擊者可以通過安全性薄弱的輕量級設(shè)備威脅訪問控制的安全,因此CapBAC 方案無法解決在不可信環(huán)境下的訪問控制問題。在基于區(qū)塊鏈的訪問控制方案中,由于區(qū)塊鏈的透明性,將訪問策略直接部署到區(qū)塊鏈上可能會泄露用戶的屬性信息。例如,在一個分布式的訪問控制系統(tǒng)中,患者通過交易將其電子病歷訪問控制策略存儲在區(qū)塊鏈中。如果訪問控制策略規(guī)定醫(yī)生可以訪問,盡管攻擊者無法讀取電子病歷,但仍可以讀取存儲在區(qū)塊鏈上的訪問控制策略,則攻擊者可以推斷出患者可能患有疾病。因此,如何防止惡意用戶從訪問策略中獲取隱私信息也是一個至關(guān)重要的問題[6]。
當前,現(xiàn)有的策略隱藏CP-ABE 方案有2 種形式,即完全隱藏[7]和部分隱藏[8]。前者是指訪問策略不會泄露任何屬性隱私;后者是指只有訪問策略的部分屬性值是匿名的,而訪問策略本身仍以明文形式存在。完全隱藏雖然在效率上不及部分隱藏,但是其能提供更好的隱私保護。對于隱私敏感的系統(tǒng)來說,訪問策略信息的任何泄露都可能嚴重威脅數(shù)據(jù)擁有者的隱私。因此,設(shè)計一個策略完全隱藏的CP-ABE 方案,對保護數(shù)據(jù)擁有者的隱私來說是至關(guān)重要的。
為了解決上述問題,本文提出了一種基于區(qū)塊鏈的密文策略隱藏方案,實現(xiàn)訪問控制和數(shù)據(jù)共享的同時還保護了策略隱私。
本文主要研究工作如下。
1) 提出了一種高效的屬性向量和策略向量生成算法,在此基礎(chǔ)上,利用代理重加密技術(shù)和屬性加密技術(shù),設(shè)計了一種策略完全隱藏的CP-ABE方案,不但支持細粒度的訪問控制而且實現(xiàn)了數(shù)據(jù)共享。
2) 利用星際文件系統(tǒng)(IPFS,interplanetary file system)存儲密文并通過智能合約將密文哈希地址存儲在區(qū)塊鏈上。實現(xiàn)分布式且值得信賴的訪問控制的同時降低了區(qū)塊鏈的存儲開銷。通過撤銷合約維護撤銷列表的方式實現(xiàn)了撤銷功能,避免了用戶私鑰濫用問題。
3) 基于困難問題證明了所提方案的安全性。通過仿真實驗對所提方案的效率進行了分析說明,驗證了所提方案的有效性。
Saini 等[9]基于區(qū)塊鏈的智能合約,實現(xiàn)了以患者為中心和醫(yī)療記錄可訪問的目標,將加密數(shù)據(jù)存儲在云服務(wù)器上,減小了區(qū)塊鏈的存儲開銷,但是其方案存在可擴展性和性能方面的問題。Zhang 等[10]結(jié)合智能合約技術(shù)和基于屬性的訪問控制模型,提出了一個分布式且可靠的訪問控制框架。該框架包括一個策略管理合約、一個屬性管理合約以及一個用于執(zhí)行訪問控制的訪問合約,由于區(qū)塊鏈的公開透明性,該方案存在屬性泄露的風險。Phuong 等[11]基于正負號與門訪問結(jié)構(gòu)提出了一種策略隱藏訪問控制方案,該方案利用韋達定理和內(nèi)積加密實現(xiàn)了完全策略隱藏,但是該方案在密鑰生成階段以及解密階段需要針對訪問結(jié)構(gòu)中的正負號分別進行一次運算,因此效率較低。王悅等[12]在文獻[11]的基礎(chǔ)上進行了改進,減少了解密算法的運算次數(shù),但是該方案只是對主密鑰以及公共參數(shù)進行了優(yōu)化,依然存在效率較低的問題。Gan 等[13]基于素數(shù)階雙線性群提出了一種部分策略隱藏方案,在解密之前加入了解密測試算法,一定程度上提高了解密效率,但該方案效率仍然較低。Zhang 等[14]提出了一種支持密鑰撤銷的部分策略隱藏方案并設(shè)計了一種算法來檢查用戶屬性與訪問策略是否匹配,然而該算法會增加用戶的計算負擔,并且其解密算法效率較低,物聯(lián)網(wǎng)設(shè)備的資源消耗較大。Hao 等[15]利用布隆過濾器提出了一種高效的完全策略隱藏方案,但是該方案不能抵御屬性猜測攻擊。隨后,Arkin 等[16]提出了一種敏感屬性選擇算法,并使用布隆過濾器來隱藏敏感屬性,提高了策略隱藏的效率,但是該方案同樣不能抵御屬性猜測攻擊。Zeng 等[17]提出了一種具有可追溯性的高效部分策略隱藏方案,但由于該方案是基于合數(shù)階雙線性群構(gòu)建的,因此效率并不理想。以上方案雖然實現(xiàn)了策略隱藏,但是依然存在效率低下、訪問策略失效等問題。
為了應對訪問策略失效的問題,Gao 等[18]將CP-ABE 與代理重加密技術(shù)相結(jié)合提出了一種屬性代理重加密方案,可以針對更改后的策略進行重加密,解決了訪問策略失效的問題。張小紅等[19]提出了一種基于區(qū)塊鏈的密文存儲共享模型,通過智能合約實現(xiàn)了自主化的密鑰轉(zhuǎn)換。然而上述2 個方案在重加密階段和重解密階段的雙線性配對次數(shù)會隨屬性個數(shù)線性增加,因此效率較低。Paul 等[20]提出了一種高效的屬性代理重加密方案,該方案可以使用新策略對密文進行重加密,并且在重加密階段和重解密階段雙線性配對的次數(shù)是固定不變的,因此其效率較高。
綜上所述,當前的策略隱藏訪問控制方案仍存在效率低下、訪問策略失效等問題。為此,本文提出了一種基于區(qū)塊鏈且支持數(shù)據(jù)共享的密文策略隱藏訪問控制方案,克服了策略不可更改且效率低下的問題。
G1、G2和GT同為素數(shù)階為q的乘法群,其中,G1≠G2,e為一個線性映射,e:G1×G2→GT,滿足以下3 種性質(zhì)。
1) 雙線性。對于任意的g∈G1,h∈G2,a,b∈ Zp,有e(g a,hb)=e(g,h)ab。
2) 非退化性。e(g a,hb)≠ 1。
3) 可計算性。對于任意的g∈G1,h∈G2,e(g,h)可有效計算。
集合U={U1,U2,… ,UL}代表系統(tǒng)中的用戶屬性,Uk∈{“+”,“-”};集合P={P1,P2,…,PL}代表訪問策略,P k∈{“+”“,-”“,*”},k∈{1,2,…,L};通配符“*”表示“任意”,即“+”和“-”都接受。例如,U={U1=“CS”,U2=“CE”,U3=“Faculty”,U4=“Student”},其中“CS”和“CE”分別代表網(wǎng)絡(luò)安全專業(yè)以及通信工程專業(yè)。Alice 是網(wǎng)絡(luò)安全專業(yè)的學生,Bob 是通信工程專業(yè)的學生,Carol 是網(wǎng)絡(luò)安全專業(yè)和通信工程專業(yè)的教師。訪問策略1P允許通信工程專業(yè)的教師訪問而不允許網(wǎng)絡(luò)安全專業(yè)的學生訪問。訪問策略2P允許網(wǎng)絡(luò)安全專業(yè)的所有教師和學生訪問,但不允許通信工程專業(yè)的教師和學生訪問。上述用戶屬性和訪問策略如表1 所示。

表1 用戶屬性和訪問策略
p=(p1,p2,…pl),u=(u1,u2,…ul)代表2 個向量,其中,向量p包含符號“+”“-”和通配符“*”,向量u僅包含“+”“-”2 個符號。位置集合I=(i1,i2,…in) ?{1,2,… ,l}代表向量p中通配符的位置。因此,如果用戶屬性滿足訪問策略,則有((pi=ui) ∨(pi=?)),i∈[1,l],轉(zhuǎn)化成數(shù)學形式為

由式(1)可得

選取隨機群元素Bi,將p和i ui作為指數(shù),則有

根據(jù)韋達定理,式(2)中的系數(shù)aj可用kw表示,其中,0≤j≤n=。

非對稱決策雙線性 Diffie-Hellman(DBDH,decisional bilinear Diffie-Hellman)定義為g∈G1,h∈G2,a,b,c∈Zp,均勻地隨機選取T∈GT,如果挑戰(zhàn)者給予敵手(g,g a,g c,h,h a,hb),敵手將很難區(qū)分有效元組e(g,h)abc與隨機元組T。
一個概率性多項式時間算法A能以優(yōu)勢ε求解DBDH 問題,當且僅當

如果概率多項式在解決DBDH 問題上的優(yōu)勢可以忽略不計,則DBDH 假設(shè)成立。
本文系統(tǒng)模型如圖1 所示,該模型包括以下實體:數(shù)據(jù)擁有者(DO,data owner),數(shù)據(jù)用戶(DU,data user),可信機構(gòu)(TA,trusted authority),代理服務(wù)器(PS,proxy server),區(qū)塊鏈(BC,blockchain)和星際文件系統(tǒng)。

圖1 系統(tǒng)模型
DO。負責制定訪問策略,并將其個人數(shù)據(jù)加密上傳到IPFS 上,通過授權(quán)合約將密文相關(guān)信息存儲在區(qū)塊鏈上。
DU。負責向DO 發(fā)送訪問請求,通過授權(quán)合約的驗證后,獲取密文地址。
TA。負責系統(tǒng)參數(shù)的生成并部署撤銷合約,其在系統(tǒng)中是完全可信的。
PS。使用TA 生成的重加密密鑰對密文重加密,假設(shè)其是半可信的。
BC。包括授權(quán)合約和撤銷合約,撤銷合約維護一個撤銷列表,當用戶注銷時TA 將其地址放入撤銷列表中。當DU 發(fā)送訪問請求時,授權(quán)合約判斷其是否被撤銷,如果沒有被撤銷,則向DU 發(fā)送密文相關(guān)信息,否則拒絕訪問。
IPFS。分布式系統(tǒng),存儲密文并返回其哈希地址。
在該系統(tǒng)中,訪問控制工作流程可分為準備階段0a)~0e)和執(zhí)行階段1)~5)。準備階段主要進行密鑰的分發(fā)及密文信息的發(fā)布。執(zhí)行階段主要進行訪問請求的判決及數(shù)據(jù)共享。
準備階段。首先DU 進行注冊,TA 生成相關(guān)參數(shù)并部署撤銷合約。DO 根據(jù)公鑰和訪問策略對明文M進行加密并將密文存儲在IPFS 上,IPFS 返回哈希地址,然后DO 部署授權(quán)合約并通過交易將密文相關(guān)信息存儲在區(qū)塊鏈上。
執(zhí)行階段。在訪問控制階段,DU 向DO 發(fā)送訪問請求,授權(quán)合約在驗證DU 的身份后將密文相關(guān)信息發(fā)送給DU,DU 驗證并解密密文。在數(shù)據(jù)共享階段,TA 生成重加密密鑰,PS 對密文進行重加密并將其發(fā)送給DO,然后DO 上傳重加密密文并將其相關(guān)信息存儲在區(qū)塊鏈上,后續(xù)過程與訪問控制階段相同。
通過概率多項式時間敵手A 和挑戰(zhàn)者B 之間的游戲來定義方案在選擇明文攻擊下的安全性,挑戰(zhàn)者B 模擬協(xié)議執(zhí)行并回答來自A 的查詢,具體如下。
初始化敵手A 輸出挑戰(zhàn)向量p0和p1。

定義1如果在任意多項式時間內(nèi),敵手只能以可忽略的優(yōu)勢贏得上述游戲,則稱該方案在此模型中是安全的。
本節(jié)利用向量壓縮技術(shù)提出了一種高效的屬性向量和策略向量生成算法,該算法不僅可以支持正負號與門訪問結(jié)構(gòu),而且通過拓展可以支持多屬性值與門訪問結(jié)構(gòu),具體如算法1 所示。
算法1生成屬性向量和策略向量

該算法是基于式(3)構(gòu)建的,首先根據(jù)策略集合中通配符的位置和韋達定理構(gòu)造一個n次多項式(n為通配符的個數(shù)),得到多項式的系數(shù)aj。然后將策略集合中正負號的位置代入該多項式并求和獲取∏,從而得到策略向量。最后分別對屬性集合中正負號的位置進行指數(shù)運算并將對應的次數(shù)求和,從而得到屬性向量。
例如,在表1 中訪問策略P2=(+,-,?,?),通配符位置集合I={3,4},正號集合J={1},負號集合K={2},根據(jù)韋達定理有a2=1,a1=-7,a0=12。因此可以得到策略向量元素如表2 所示。


表2 策略向量元素
Alice 屬性uAlice=(+,-,+,-),正號集合J′={1,3},負號集合K′={2,4},因此可以得到屬性向量元素如表3 所示。

表3 屬性向量元素
計算pu=12 × 4 -7 × 10+1 × 30 -8=0
因此Alice 滿足訪問策略P2。
智能合約主要包括以下2 個部分。
1) 撤銷合約。該合約由TA 部署,負責管理系統(tǒng)中已經(jīng)注銷的用戶,主要包括以下函數(shù)。
updateAssert()。該函數(shù)負責更新撤銷列表,將注銷的用戶放入撤銷列表中。
getAssert()。該函數(shù)返回true 或false,用來判斷用戶是否被撤銷。
2) 授權(quán)合約。該合約由DO 部署,負責存儲密文相關(guān)信息,當DU 發(fā)送訪問請求時調(diào)用撤銷合約對其身份進行檢查,從而判斷是否發(fā)送密文相關(guān)信息,主要包括以下函數(shù)。
initStorage()。該函數(shù)負責存儲密文相關(guān)信息。
judge()。該函數(shù)在訪問控制階段調(diào)用撤銷合約中的getAssert()函數(shù),根據(jù)結(jié)果決定是否發(fā)送密文信息。
本文方案主要分為2 個階段,即訪問控制階段和數(shù)據(jù)共享階段。具體如下。
階段1訪問控制

4) On-blockchain。該算法由DO 執(zhí)行,通過交易將密文相關(guān)信息存儲在區(qū)塊鏈上,Tx=(idT,storeAddress,sign) 。其中,idT為交易的摘要,storeAddress 為密文的哈希地址,由于IPFS 是基于內(nèi)容尋址的,因此storeAddress 也為密文完整性校驗碼,sign 為DO 生成的數(shù)字簽名。
5) Decrypt(sku,CT)。該算法由DU 執(zhí)行,首先驗證DO 的數(shù)字簽名,然后根據(jù)storeAddress 獲取密文并驗證密文完整性,最后根據(jù)密鑰sku=(sk1,sk2,ui),得到如下明文

正確性證明如下。

如果0=,pu則用戶可以獲取明文M。證畢。
6) Revocation 。該算法由 TA 執(zhí)行,通過Solidity 中的映射類型將用戶地址與true 和false建立對應關(guān)系,當用戶未被撤銷時將其地址對應的鍵值設(shè)置為true,否則設(shè)置為false。從而解決了已經(jīng)注銷的用戶也能訪問的問題,具體如下。
mapping(address=>bool)public identify;
未被撤銷identify[userAddress]=>true;
否則 identify[userAddress]=>false;
當用戶進行訪問時,授權(quán)合約就可以通過用戶地址對應的鍵值來判斷是否發(fā)送密文信息。
階段2數(shù)據(jù)共享(注:該階段建立在DU1已經(jīng)獲取DO1明文數(shù)據(jù)的情況下)
階段1 實現(xiàn)了策略隱藏的細粒度訪問控制,但當DU1和DU2進行數(shù)據(jù)共享時,DO1需要根據(jù)DU2的屬性重新生成密文,這樣就造成了DO1本地計算開銷較大。為了解決這一問題,本文利用代理重加密技術(shù)對上述方案進行了拓展,使其不僅支持訪問控制而且實現(xiàn)了數(shù)據(jù)的共享,具體如下。

定理1基于DBDH 假設(shè),在訪問控制階段,對于多項式時間敵手在游戲中滿足不可區(qū)分性。
證明如果A 以不可忽略的優(yōu)勢ε贏得選擇明文攻擊游戲,則可以構(gòu)造挑戰(zhàn)者B 以不可忽略的優(yōu)勢解決DBDH 假設(shè),以下為A 和B 的交互過程。
初始化敵手A 輸出挑戰(zhàn)向量p0和p1。


階段2 與階段1 相同。
猜測敵手A 輸出對w的猜測w′,如果w′=w=,則B 輸出1,表示(g,h)abc T=e;否則輸出0,表示T=R。
在挑戰(zhàn)階段,敵手A 得到的是(gc)z′pi+a1′,不能從中推出真正的訪問策略pi,因此保護了訪問策略的隱私。
以下分析B 成功解決DBDH 假設(shè)的概率,假設(shè)success 事件表示B 成功解決DBDH 假設(shè),γ=0表示(g,h)abcT=e成立,γ=1表示T=R成立。則有

其中,如果T=e(g,h)abc,則B 完美地模擬游戲,A以+ε的概率贏得游戲;如果T=R,則B 無法模擬游戲,A 以的概率贏得游戲。
因此,B 解決DBDH 假設(shè)的優(yōu)勢為

因為在DBDH 假設(shè)中ε是不可忽略的,所以AdvDBDH是不可忽略的。因此如果敵手A 以不可忽略的優(yōu)勢攻破選擇明文攻擊的安全性,則挑戰(zhàn)者B將以不可忽略的優(yōu)勢解決DBDH 假設(shè)。證畢。
定理2基于DBDH 假設(shè),在數(shù)據(jù)共享階段,對于多項式時間敵手在游戲中滿足不可區(qū)分性。
證明方法同定理1。
本節(jié)實驗的實驗環(huán)境為Windows 10 系統(tǒng),CPU的頻率為2.9 GHz,內(nèi)存為8 GB,所選取的雙線性對基于橢圓曲線y2=x3+x,橢圓曲線的階r為160 bit,素數(shù)q為1 024 bit。為了實現(xiàn)本文方案,首先,使用基于瀏覽器的集成開發(fā)環(huán)境Remix 來編輯和編譯授權(quán)合約以及撤銷合約。其次,使用IPFS 存儲密文,并將其哈希地址和其他密文相關(guān)信息存儲在區(qū)塊鏈上。再次,使用Ropsten 作為測試網(wǎng)絡(luò),在MetaMask的支持下,Ropsten 可以直接在瀏覽器上運行一個去中心化應用程序而不需要運行完整的以太坊節(jié)點。最后,利用JPBC 實現(xiàn)本文方案。
本節(jié)與近幾年一些技術(shù)相近的訪問控制方案進行了功能特性對比,如表4 所示,其中“√”表示具有特定功能或使用了某種技術(shù),“×”表示不具有特定功能或未使用某種技術(shù)。
從表4 中可以看出,本文方案和文獻[13-14,16]方案都是基于素數(shù)階雙線性群構(gòu)建的,然而只有本文方案支持完全策略隱藏、非對稱配對運算、區(qū)塊鏈以及數(shù)據(jù)共享。從訪問結(jié)構(gòu)上來看,本文方案采用的是正負號與門結(jié)構(gòu),其他方案采用的是線性秘密共享方案結(jié)構(gòu)。由算法1 可知,本文方案的效率僅與通配符數(shù)量相關(guān),而其他方案的效率與屬性數(shù)量相關(guān),通常在實際情況下,通配符數(shù)量遠遠小于屬性數(shù)量,因此本文方案在訪問結(jié)構(gòu)上有一定的優(yōu)勢。同樣,只有本文方案和文獻[14]方案實現(xiàn)了訪問撤銷的功能。因此,本文方案在功能特性上有一定的優(yōu)勢。

表4 不同訪問控制方案的功能特性對比
由于需要在區(qū)塊鏈上部署智能合約以及執(zhí)行一些必要的函數(shù),因此必須消耗一些gas。一般正常范圍是幾萬~幾十萬gas。一般來說,gas 的消耗主要來自代碼成本Ccode、存儲成本Cstorge以及初始化成本Cinit。其中,代碼成本與執(zhí)行交易的代碼的復雜度相關(guān),存儲成本主要來自數(shù)據(jù)的添加、刪除等操作,初始化成本表示第一次執(zhí)行某些函數(shù)時消耗的gas。因此,gas 消耗量可以表示為

區(qū)塊鏈操作gas 消耗量如表5 所示,從表5 中可以看出,本文方案智能合約gas 消耗量較小,均在合理范圍之內(nèi)。

表5 區(qū)塊鏈操作gas 消耗量
本節(jié)通過仿真實驗將本文方案與文獻[13-14,16]方案在初始化階段、密鑰生成階段、加密階段、解密階段的計算開銷進行對比分析,結(jié)果如圖2 所示。由算法1 可知,本文方案的效率僅與通配符個數(shù)有關(guān),與屬性數(shù)量無關(guān)。而文獻[13-14,16]方案的效率與屬性數(shù)量相關(guān)。為了便于比較,本節(jié)分析了本文方案在最壞情況下的效率,即當通配符數(shù)量等于屬性數(shù)量時本文方案的效率。為了保證最終結(jié)論的準確性,采取多次測量求平均值的方法。

圖2 訪問控制階段計算開銷對比
系統(tǒng)初始化時間的對比如圖2(a)所示,從圖2(a)中可以看出,本文方案的初始化時間隨屬性數(shù)量線性增加,而文獻[13-14,16]方案所消耗的時間是基本恒定的,其中文獻[16]方案所需時間最少。這是由于本文方案在設(shè)置階段中公共參數(shù)和主密鑰的大小與屬性數(shù)量相關(guān),而在文獻[13-14,16]方案中是恒定不變的。
密鑰生成時間的對比如圖2(b)所示,從圖2(b)中可以看出,隨著屬性數(shù)量的增加,本文方案與其他3 個方案的計算開銷都呈線性增加的趨勢。這是由于每個存在于用戶私鑰中的屬性都要進行相應的運算,因此屬性數(shù)量越多,計算開銷就越大。本文相比其他方案在密鑰生成階段計算開銷相對較小,所以耗時較少。
加密時間的對比如圖2(c)所示,從圖2(c)中可以看出,本文方案和其他3 個方案加密時間的計算開銷都隨著屬性數(shù)量的增加而增大。其中,文獻[13]方案的計算開銷是最大的,本文方案由于在加密階段中指數(shù)運算較少,因此效率較高。
解密時間的對比如圖2(d)所示,從圖2(d)中可以看出,與其他3 個方案相比,本文方案在解密階段的計算開銷不會隨屬性數(shù)量的增加而發(fā)生太大的變化,并且效率明顯高于其他方案。這是由于本文方案在解密階段擁有恒定的配對次數(shù),因此效率最高。
綜上所述,本文方案雖然在初始化階段的計算開銷較大,但是在密鑰生成階段、加密階段、解密階段的效率均高于其他3 個方案,因此,本文方案在性能上是最優(yōu)的。
由于文獻[13-14,16]的訪問控制方案不支持數(shù)據(jù)共享,為了評估本文方案的數(shù)據(jù)共享階段的效率,本文選取了屬性加密和代理加密相結(jié)合的數(shù)據(jù)共享方案[18,20]進行了對比分析,理論分析如表6所示,其中,E表示描述雙線性群上指數(shù)運算的時長,P表示雙線性對的運算時長,n表示屬性數(shù)量。由表6 可知,無論是在重加密階段還是在重解密階段本文方案都有較高的效率??傮w來說,本文方案在保證較高效率的基礎(chǔ)上,實現(xiàn)了更多的功能。

表6 數(shù)據(jù)共享階段計算開銷的理論分析
為了進一步評估數(shù)據(jù)共享階段的效率,本節(jié)通過實驗對其進行了驗證,具體如圖3 所示,可以看出實驗結(jié)果與理論分析一致。

圖3 數(shù)據(jù)共享階段計算開銷的實驗對比
本文提出了一種基于區(qū)塊鏈且支持數(shù)據(jù)共享的密文策略隱藏訪問控制方案,實現(xiàn)了分布式細粒度的訪問控制并解決了策略隱私泄露的問題,通過使用代理重加密技術(shù)實現(xiàn)了支持數(shù)據(jù)共享的訪問控制。此外,本文通過撤銷合約維護一個撤銷列表的方式實現(xiàn)了撤銷功能,避免了用戶私鑰濫用問題。安全性分析和實驗結(jié)果表明,本文方案是安全有效的。在未來的工作中,本文將考慮使用外包加解密技術(shù)從而降低用戶的計算開銷。