曾志兵,吳曉鸰,凌 捷
(廣東工業大學 計算機學院,廣州 510006)
隨著物聯網、大數據、人工智能等信息技術的發展,隨之產生的數據正以指數級的速度增長.其隱藏的巨大潛在價值亟需挖掘利用,同時也存在“數據孤島”式困境,其有效的解決途徑是建立安全高效的數據存儲與共享模型[1].實現數據充分共享的前提是保證數據的安全與可信[2].通常資源受限的個人和企業用戶傾向于將數據外包給具有豐富的存儲和計算資源的云進行存儲與共享.然而,基于中心化的云存儲容易出現許多安全和隱私問題,例如單點故障、虛假數據注入、sybil攻擊漏洞、參與者之間的信任問題以及文件訪問和檢索操作中的問題[3],造成數據泄露、篡改或無法訪問,威脅用戶隱私,給用戶造成不可彌補的損失.因此,如何在實現數據充分共享中保證數據存儲的安全性和數據共享的可信性是目前的研究熱點.區塊鏈是比特幣的底層技術,可以不依賴可信的第三方構建分布式數據庫,具有去中心化、防篡改、可溯源、公開透明等特性[4],保證數據的可信性和可用性,為數據的安全存儲與共享帶來了新的解決方案.然而,區塊鏈的存儲空間存在瓶頸,需進行優化.星際文件系統(InterPlanetary File System,IPFS)是面向全球的點對點分布式文件系統,數據在IPFS上分布式持久化存儲,沒有單點故障問題,節點間不需要相互信任,支持重復數據刪除、高吞吐量、按內容尋址,可以作為區塊鏈的數據存儲方案,優化區塊鏈存儲空間.
在傳統云存儲中安全存儲與共享數據時通常用加密技術保證機密性,同時需要對數據進行訪問控制.Bethencourt等[5]首次提出了密文策略屬性基加密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE)方案,允許數據所有者加密與訪問策略相關聯的數據,當用戶的屬性集滿足數據密文中的訪問策略時才能解密獲得數據,實現了對數據的機密性保護和細粒度訪問控制,廣泛應用在云環境下安全存儲與共享數據.傳統的CP-ABE方案大多都存在計算開銷較大的雙線性配對運算,很難適用于資源受限的用戶.一些工作[6,7]通過將CP-ABE方案中大量的計算開銷外包給云端來減輕用戶的負擔,但就整個系統來說,并沒有有效降低計算開銷,反而增加了云端的成本和通信開銷.為了從根本上降低計算開銷,Odelu等[8]提出了基于橢圓曲線的CP-ABE方案,使用較輕量級的標量乘替代雙線性配對運算,從算法方面來降低加解密計算開銷.經過實驗測試,在同一橢圓曲線下,一次雙線性配對計算開銷比一次標量乘計算開銷大2~3倍.CP-ABE方案中還存在惡意用戶為謀取非法利益,向非授權用戶共享其解密私鑰的情況,而解密私鑰僅取決于用戶的屬性,因此無法確定其身份.為了追蹤惡意泄露私鑰的用戶身份,文獻[9]提出了首個白盒可追蹤CP-ABE方案.文獻[10]則在該方案中加入了用戶撤銷功能.針對文獻[10]存在隱私保護、合謀攻擊等問題,文獻[11]在其基礎上實現了隱私保護功能,但仍存在效率低下,訪問結構表達能力和靈活性較差等不足.Li等[12]基于有序二元決策圖(Ordered Binary Decision Diagram,OBDD)提出了一種新型的CP-ABE方案,該訪問結構可同時支持屬性的正負值,具有豐富的表達能力和計算高效性,但仍存在雙線性配對運算.Ding等[13]基于OBDD訪問結構提出了一種新型的無配對CP-ABE方案,降低了方案整體的存儲和計算開銷.
目前,已有大量工作將區塊鏈技術應用到數據安全存儲與共享的研究中.文獻[14]提出了一個基于區塊鏈的個人數據管理系統,數據所有者可以采用訪問控制策略控制其數據,但是該方案在加密共享數據時使用的是對稱加密,在共享數據時需要給每個用戶單獨授權,這給系統管理密鑰和訪問控制策略帶來了挑戰.文獻[15]將CP-ABE方案應用于區塊鏈,以實現數據隱私保護和細粒度共享,也支持對惡意泄露密鑰用戶的追蹤,但數據存儲在區塊鏈上容易遭遇存儲瓶頸.文獻[16]使用以太坊區塊鏈技術結合CP-ABE方案提出了一種新的云存儲安全訪問控制框架,在不需要可信的第三方下實現云存儲中共享數據的細粒度訪問控制.文獻[17]為了安全共享患者的健康記錄,基于區塊鏈在不需要第三方參與的情況下提供安全通信,使用層次化訪問結構的CP-ABE方案實現對共享數據的層次化訪問控制.文獻[16,17]都將共享數據存儲在中心化的云存儲上,存在安全和隱私問題并且不支持對惡意泄露密鑰用戶的追蹤.文獻[18]針對P2P網絡中數據存儲和數據共享分發時存在網絡失信、非法訪問及溯源難等安全問題,基于信任模型構建的P2P分發平臺,提出一種結合區塊鏈和屬性基加密的可信數據分發機制,并利用IPFS作為數據的鏈下存儲平臺,實現鏈上鏈下協同管理數據.文獻[19]將區塊鏈、CP-ABE和IPFS結合起來,提出了一種基于區塊鏈的個人數據安全共享和隱私保護方案,數據所有者對其數據進行細粒度訪問控制,并將共享數據安全可信地存儲在IPFS上,支持在不影響其他用戶的情況下從屬性級撤銷特定的用戶,但仍不支持對惡意泄露密鑰用戶的追蹤.
綜上所述,本文提出了一種結合區塊鏈和可追蹤CP-ABE的數據存儲與共享方案(BTABEDSS),主要貢獻如下.
1)本文提出了一種結合區塊鏈和可追蹤CP-ABE的數據存儲與共享方案模型.數據所有者將數據密文存儲在IPFS上,區塊鏈上僅存儲數據的唯一標識、數據的哈希值和數據密文在IPFS檢索的內容哈希值等元數據信息,這樣不僅保證數據的安全可信存儲與訪問,還有效解決了區塊鏈的存儲瓶頸問題.利用智能合約和CP-ABE協同實現數據所有者對其數據進行細粒度訪問控制,只有滿足訪問控制策略的非惡意用戶才能訪問共享數據.
2)使用橢圓曲線上的標量乘運算和表達性、計算性更優的OBDD訪問結構,有效降低了系統的計算和存儲開銷.
3)采用概率加密方案將用戶身份信息隨機化處理后嵌入用戶密鑰,從而實現對惡意泄露密鑰的用戶進行高效追蹤并撤銷其訪問權限.
4)進行了安全性與實驗分析,結果表明本文方案是安全可行的,與對比方案相比,降低了系統運行成本和開銷,提升了系統操作效率,更加高效與實用.
1.1 橢圓曲線加密
橢圓曲線加密(ECC)是一種基于橢圓曲線離散對數問題(ECDLP)的非對稱加密算法,橢圓曲線E在有限域FG(p)上定義,表示為公式(1):
y2=x3+ax+b(modp),4a3+27b2≠0
(1)
3)私鑰解密.根據公鑰Q對應的私鑰d和密文C,通過計算M+cQ-d(cG)=M,即可計算出明文消息M.
1.2 OBDD訪問結構
有序二元決策圖(OBDD)是一個有根、有向的非循環圖G=(V,E),在一個預定義變量序的布爾變量集{x0,x1,…,xn-1}上表示一個布爾函數f(x0,x1,…,xn-1)[20].其中布爾變量描述屬性,n為集合中屬性的數量,OBDD具有以下特性.
1)圖G中V不是非終端節點就是終端節點.
2)每個非終端節點表示一個變量(屬性)xi,并有兩個子節點.當xi賦值為1,其子節點記為high(xi)稱作高子節點;當xi賦值為0,其子節點記為low(xi)稱作低子節點.每個非終端節點用一個四元組(i,id,low(v),high(v))來標記,其中i∈I是該節點表示的屬性序號,id∈ID是為標識該節點的唯一編號,low(v)和high(v)分別表示指向該節點的低子節點和高子節點.I是訪問結構中的屬性集合,ID是非終端節點的編號集合.
3)終端節點被標為0或1,不表示屬性也沒有子節點.
4)從根節點到終端節點的任一有向路徑上,每個變量(屬性)xi都以同樣的順序且至多一次出現.
對于屬性集S,判斷S是否滿足OBDD訪問結構:從根節點開始,對于具有屬性i的非終端節點,若i∈S,將沿high(v)轉到高子節點;否則,將沿low(v)轉到低子節點.重復上述過程直到終端節點,若終端節點為1,則S滿足OBDD訪問結構;否則,S不滿足OBDD訪問結構.
假設系統定義的屬性集為{x0,x1,…,xn-1},訪問策略包括系統定義的所有屬性.xi的屬性值為正,表示訪問策略要求滿足訪問策略的屬性集需要有屬性xi;xi的屬性值為負,表示訪問策略要求滿足訪問策略的屬性集不需要有屬性xi.若有一訪問策略(x0AND (x1ORx2) ANDx3),則表示屬性集{x0,x1,x3}或{x0,x2,x3}的用戶滿足訪問策略,將該訪問策略轉換成布爾函數為f(x0,x1,x2,x3)=x0x1x3+x0x2x3,預定義變量序為x0→x1→x2→x3,生成對應的OBDD訪問結構如圖1所示.非終端節點由圓圈表示,終端節點由方塊表示,實線指向高子節點,虛線指向低子節點.在OBDD中,從根節點到終端節點為1的路徑被稱為滿足訪問策略的有效路徑.例如路徑(x0=1)→(x1=0)→(x2=1)→(x3=1)→1是一條有效路徑.
圖1 OBDD訪問結構Fig.1 OBDD access structure
1.3 智能合約和以太坊
Buterin在以太坊白皮書[21]中率先引入了智能合約,提出了第一個內置圖靈完備語言的以太坊區塊鏈.以太坊內置有成熟的圖靈完備的編程語言來編寫智能合約,智能合約本質上是一個用戶自定義的計算機協議程序,在一些外部或內部條件的觸發下自動運行在以太坊虛擬機上,借助其專用加密貨幣以太幣來計量和控制程序執行的資源開銷,使用區塊鏈來同步和保存系統狀態.由于區塊鏈存儲了智能合約的程序代碼、狀態、數據,從而使智能合約的使用具有去中心化、防篡改、可溯源等特性.
2.1 方案架構
本文方案使用的相關符號及其含義如表1所示.系統模型如圖2所示,主要由訪問中心(AC)、可信授權機構(TA)、數據所有者(DO)、數據使用者(DU)、區塊鏈和IPFS組成,每個實體的具體描述如下.
表1 相關符號描述Table 1 Description of related notations
圖2 系統模型Fig.2 System model
1)訪問中心(AC):是系統的半可信實體,負責在區塊鏈上部署系統的智能合約,對每個加入系統的用戶進行嚴格的資格審查.通過資格審查后方可注冊為系統用戶,為系統用戶公開系統合約調用信息,定義系統屬性集N,為系統每個用戶分配一個用戶屬性集S和用戶身份唯一標識uid,調用系統合約的注冊函數,將系統用戶的uid和區塊鏈賬戶信息進行注冊,使系統用戶擁有調用系統合約的訪問權限.同時維護一個惡意用戶撤銷列表RL,注銷RL中的每個惡意用戶并調用系統合約的撤銷函數,撤銷每個惡意用戶調用系統合約的訪問權限.此外,為系統用戶存儲和檢索共享數據的元數據信息.
2)可信授權機構(TA):是系統的可信實體,根據AC定義的系統屬性集N,負責為系統生成系統公鑰PK、系統主密鑰MSK和用戶屬性私鑰SK.此外,還負責對惡意泄露的密鑰進行追蹤,追蹤到惡意用戶uid后發送給AC,AC將此uid加入惡意用戶撤銷列表RL.
3)數據所有者(DO):是可信的數據擁有者,在區塊鏈上注冊賬戶信息并向AC注冊為系統用戶,根據系統中定義的屬性和相關信息,為需要安全存儲與共享的數據制定訪問控制策略,對數據及相關元數據信息進行加密,然后將數據的密文和相關元數據信息分別上傳到IPFS、AC和區塊鏈.
4)數據使用者(DU):是不可信的數據訪問者,同樣需要注冊區塊鏈賬戶并向AC注冊為系統用戶.當DU需要訪問共享數據時,只有當DU是非惡意用戶且其用戶屬性集S滿足DO為數據制定的訪問控制策略時,才能成功解密數據,還可以驗證數據的完整性.DU是不可信的,可能因利益驅使而惡意泄露其用戶屬性私鑰SK,在無法解密一些數據密文的情況下發起合謀攻擊.
5)區塊鏈:AC在區塊鏈上部署了系統合約,系統用戶通過調用系統合約在區塊鏈上傳和下載數據的相關元數據信息.
6)IPFS:IPFS為DO去中心化存儲數據密文,然后根據數據密文內容生成在IPFS檢索的內容哈希值并返回給DO,被授權的DU可以根據該內容哈希值從IPFS下載數據密文.
本文方案主要包括以下算法:
1)系統初始化算法.Setup(1λ,N)→(PK,MSK,RL):TA運行該算法,輸入安全參數λ和系統屬性集N,輸出系統公鑰PK和系統主密鑰MSK.同時AC初始化一個空的惡意用戶撤銷列表RL.
2)密鑰生成算法.KeyGen(PK,MSK,S,uid)→SK:TA運行該算法,輸入系統公鑰PK、系統主密鑰MSK、用戶屬性集S和用戶身份唯一標識uid,輸出用戶屬性私鑰SK.
3)數據加密算法.Encrypt(PK,OBDD,ck)→CTck:DO運行該算法,輸入系統公鑰PK、OBDD訪問結構和AES算法對稱密鑰ck,輸出密鑰ck的密文CTck.
4)數據解密算法.Decrypt(PK,SK,CTck,RL,uid)→ck/⊥:DU運行該算法,輸入系統公鑰PK、用戶屬性私鑰SK、密鑰ck的密文CTck、惡意用戶撤銷列表RL和用戶身份唯一標識uid,輸出AES算法對稱密鑰ck或解密失敗符號⊥.
5)密鑰追蹤算法.Trace(PK,MSK,SK)→uid/⊥:TA運行該算法,輸入系統公鑰PK、系統主密鑰MSK和惡意泄露的用戶屬性私鑰SK,先驗證SK是否滿足完整性檢驗條件,若滿足并可追蹤到SK對應的惡意用戶uid,則輸出該uid;否則,輸出追蹤失敗符號⊥.
2.2 詳細設計
2.2.1 系統初始化
2.2.2 密鑰生成
2.2.3 數據加密
DO為需要安全存儲與共享的數據明文F設置數據明文唯一標識fid并生成AES算法對稱密鑰ck,利用ck加密數據明文F得到數據密文Eck(F),將Eck(F)存儲至IPFS得到Eck(F)在IPFS檢索的內容哈希值hashipfs,利用ck加密內容哈希值hashipfs得到Eck(hashipfs).通過計算hashF=H2(F)得到數據明文F的哈希值hashF.隨后DO調用系統合約,將fid、hashF和Eck(hashipfs)存儲在區塊鏈上,其中fid和hashF、Eck(hashipfs)是映射關系.
最后輸出密鑰ck的密文CTck,然后DO將fid和CTck上傳至AC.
2.2.4 數據解密
DU在AC上檢索需要訪問的共享數據時可以獲取對應的元數據信息fid、CTck和RL.
Decrypt(PK,SK,CTck,RL,uid)→ck/⊥:DU運行該算法,算法首先輸入DU的用戶身份唯一標識uid,若uid∈RL,則輸出解密失敗符號⊥并終止算法,DU訪問共享數據失敗;若uid?RL,算法繼續執行,只有當DU的用戶屬性集S滿足DO定義的OBDD訪問結構,才能成功執行解密操作獲取密鑰ck,具體步驟如下:
1)先找出OBDD中id=2的節點,記為當前節點.
2)在當前節點提取(i,id,low(v),high(v)),若屬性i∈S,算法跳轉到步驟3)執行;否則,跳轉到步驟4)執行.
3)找出當前節點的高子節點.若高子節點是終端節點0,算法終止執行并返回解密失敗;若高子節點是終端節點1,算法跳轉到步驟5)執行;若高子節點是非終端節點,將高子節點記為當前節點,算法跳轉到步驟2)執行.
4)找出當前節點的低子節點.若低子節點是終端節點0,算法終止執行并返回解密失敗;若低子節點是終端節點1,算法跳轉到步驟5)執行;若低子節點是非終端節點,將低子節點記為當前節點,算法跳轉到步驟2)執行.
5)若DU的用戶屬性集S滿足OBDD訪問結構中的某一條有效路徑Rj,然后算法進行如下計算.
最后,通過計算ck=Cck⊕H1(sPy)獲取密鑰ck.若DU成功獲取密鑰ck,DU使用fid調用系統合約從區塊鏈上獲取hashF和Eck(hashipfs),使用密鑰ck解密Eck(hashipfs)得到hashipfs,從而在IPFS上獲取數據密文Eck(F),最終利用ck解密Eck(F)得到數據明文F并利用hashF驗證數據的完整性;否則,DU訪問共享數據失敗.
2.2.5 密鑰追蹤
Trace(PK,MSK,SK)→uid/⊥:TA運行該算法,該算法由驗證和追蹤兩個階段組成.
1)驗證階段.對惡意泄露的用戶屬性私鑰SK進行完整性檢驗.若SK通過完整性檢驗,則SK是有效的用戶屬性私鑰,進入追蹤階段;否則,SK是非法的用戶屬性私鑰,算法輸出追蹤失敗符號⊥并終止,檢驗過程如下:
2)追蹤階段.若惡意泄露的用戶屬性私鑰SK通過完整性檢驗,通過計算Decek((D2-y)/D3)=Decek(r)=uid,即可追蹤到SK對應的惡意用戶uid,TA將惡意用戶uid發送給AC,AC將惡意用戶uid加入到惡意用戶撤銷列表RL,從而撤銷惡意用戶的訪問權限;否則,算法輸出追蹤失敗符號⊥并終止.
3.1 安全性分析
本文方案(BTABEDSS)通過使用區塊鏈、分布式存儲IPFS、CP-ABE和智能合約等技術實現了數據的安全可信存儲與共享,提供了數據的細粒度訪問控制和隱私保護,實現了對泄露密鑰的惡意用戶的高效追蹤并撤銷其訪問權限.此外,本文方案中智能合約的部署和調用都記錄在區塊鏈中,記錄所有用戶的存儲和訪問操作,并且可溯源、不可篡改、不可抵賴.
1)機密性.在數據存儲過程中,DO將使用AES算法加密數據的數據密文存儲在IPFS上,數據密文在IPFS上的內容哈希值也使用AES算法加密后存儲在區塊鏈上,數據以及相關信息均以加密狀態傳輸和存儲,無法獲取數據的任何有效信息.在數據共享過程中,DO使用CP-ABE加密AES算法密鑰ck時,隨機選取s計算H1(sPy)加密ck,生成的密文Cck也是隨機的.基于橢圓曲線離散對數困難問題,無法在多項式時間內從Cs和Cj中獲取關于s的任何有價值信息,進而無法計算出sPy.只有滿足訪問控制策略且是非惡意用戶的DU才能計算出sPy,從而解密出ck,進而解密數據密文獲取數據.因此,本文方案在數據安全存儲與共享過程中保證了數據的機密性.
2)完整性.在本文方案中,DO采用抗碰撞哈希函數對數據進行哈希計算,將數據的哈希值hashF存儲在區塊鏈上,區塊鏈上的數據是防篡改的,可以保證hashF的可信性和可用性.DU在訪問獲取數據后可以在區塊鏈上獲取hashF,通過抗碰撞哈希函數對數據進行哈希計算并與hashF進行對比,驗證數據的完整性.
3)抗單點故障.本文方案與傳統云存儲方案相比,在數據的存儲和訪問過程中不需要中心化的可信第三方,使用的區塊鏈和IPFS皆是分布式技術,即使部分節點發生故障,也不影響整個方案的可用性,有效解決傳統云存儲方案的單點故障問題.
5)密鑰泄露追蹤.為了實現對由于利益驅使而泄露密鑰的惡意用戶的追蹤,在密鑰生成階段,TA把用戶身份唯一標識uid通過概率加密方案計算出隨機值r,然后把r通過抗碰撞哈希函數計算出c,從而利用r和c來參與計算出用戶屬性私鑰SK.在惡意用戶泄露密鑰時,TA可以使用系統公鑰PK和系統主密鑰MSK追蹤惡意用戶,若惡意用戶偽造密鑰,其偽造密鑰是無法通過完整性檢驗的,若泄露密鑰通過完整性檢驗,則可計算出惡意用戶uid,實現密鑰泄露追蹤.
3.2 實驗分析
本文通過仿真實驗對所提出的方案進行實驗測試和性能分析,驗證其可行性和有效性.實驗利用兩臺PC,分別為PC1:Intel(R)Core(TM)i5-11320HCPU@3.20GHz 2.50GHz and 16GB of RAM、64位Windows 10操作系統和PC2:Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz 3.40GHz and 8GB of RAM、64位Windows 7操作系統.在PC1上用ganache仿真以太坊網絡,使用solidity編程語言在Remix IDE上開發和測試智能合約,通過web3j在ganache上部署和調用智能合約,使用ipfs-desktop安裝搭建IPFS,引入外部資源庫JPBC進行實驗測試.在PC2上搭建服務器仿真云存儲服務器與IPFS進行對比實驗.此外,所有實驗測試都執行多次以取平均值進行實驗分析,并將本文方案BTABEDSS與方案BPPTABE[15]、BCSWAC[16]、BMHASPHR[17]、BSSPD[19]進行對比分析.
3.2.1 智能合約成本分析
在以太坊中,Gas是可以用于衡量執行智能合約操作的價格單位,Gas值決定了智能合約操作的工作量,衡量了系統使用智能合約的成本開銷.本實驗將方案BCSWAC與本文方案BTABEDSS進行智能合約操作的Gas消耗進行對比,分別測試了智能合約的部署、上傳元數據和下載元數據操作的Gas消耗.如圖3所示,本文方案BTABEDSS的智能合約部署、上傳元數據和下載元數據操作的成本較低且均低于BCSWAC.兩個方案智能合約上傳元數據和下載元數據操作的成本都遠低于部署操作的成本,但本文方案BTABEDSS的智能合約僅需部署一次,BCSWAC的智能合約由數據所有者部署,隨著系統用戶的增加而會使系統使用智能合約的成本開銷不斷增加.因此,采用本文方案后,系統使用智能合約的成本開銷較低,更加可行與實用.
圖3 智能合約操作Gas消耗對比Fig.3 Comparison of Gas consumption for smart contract operations
3.2.2 數據存儲時間效率分析
本實驗是測試IPFS和云存儲兩種存儲方式的存取時間效率的實驗.本文將數據密文存儲在IPFS,主要是針對數據的存儲使用,在PC1上使用ipfs-desktop安裝搭建IPFS,進行數據上傳下載實驗測試,其中連接的是IPFS真實主網,由真實多節點連接構成.其中,由于IPFS內部機制,在同一文件首次上傳時是真實上傳該文件,而在其后多次上傳該文件操作則只是確認該文件是否已存在,不會進行二次存儲.針對這一問題,為了得到更可靠的測試結果,進行了同一大小的不同文件的上傳測試.與其對比的是在PC2上搭建服務器仿真云存儲服務器,進行數據上傳下載測試.在不同數據大小下,分別測試了云存儲和IPFS的數據上傳/下載時間消耗并進行了對比.如圖4所示,隨著數據大小的增加,云存儲和IPFS的數據上傳/下載時間消耗都越多,但IPFS的增幅較小.在相同數據大小下,IPFS的數據上傳/下載時間消耗均較少并少于云存儲的數據上傳/下載時間消耗,隨著數據大小的增加,優勢更加明顯.所以,采用本文方案,系統使用IPFS,不僅使數據安全存儲與訪問、緩解了區塊鏈存儲壓力,還提升了系統操作效率.
圖4 云存儲和IPFS的數據上傳/下載時間對比Fig.4 Data upload/download time comparison between cloud storage and IPFS
3.2.3 性能分析
為了驗證雙線性配對運算計算開銷大于標量乘或冪乘運算,基于JPBC庫,選擇Type d159曲線,取50次測試結果平均值,實驗結果得出一次雙線性配對運算的時間為15.56ms,一次標量乘或冪乘運算的時間為3.62ms,結果表明標量乘或冪乘運算的計算開銷優于雙線性配對運算.進一步對本文方案BTABEDSS與其他方案在CP-ABE方案中密文長度、私鑰長度和加解密計算開銷方面進行了性能對比分析.其中,T表示群元素的冪乘或標量乘運算,k表示訪問策略中的屬性個數,u表示訪問策略中每個屬性對應的撤銷列表中的用戶個數,n表示私鑰生成所用到的用戶屬性個數,d表示成功解密所用到的屬性個數,v表示OBDD中有效路徑的個數,L表示群元素長度.由表2所示,本文方案BTABEDSS在多個方面都優于其他方案.本文方案BTABEDSS中用戶屬性私鑰長度是固定的,只有3個群元素長度,而不是跟其他方案一樣正比于用戶屬性個數,這顯然降低了系統的計算和存儲開銷.數據加密階段的密文長度和計算開銷都正比于OBDD中有效路徑個數v,而不是正比于訪問策略中的屬性個數,這樣可以有效降低系統的計算和存儲開銷,特別是當v較小時.此外,本文方案BTABEDSS的數據解密階段過程的時間復雜度為O(1),只需要幾次標量乘運算,因此效率很高,而不是跟方案BPPTABE、BCSWAC、BSSPD一樣需要正比于成功解密所用到的屬性個數的雙線性配對運算.雖然方案BMHASPHR的時間復雜度也是O(1),但是需要第三方實體進行外包解密.
表2 性能對比Table 2 Performance comparison
為了更直觀地說明本文CP-ABE方案的優越性,選擇本文1.2節所舉例的訪問策略(x0AND (x1ORx2) ANDx3),進一步對本文方案BTABEDSS與方案BPPTABE、BCSWAC、BMHASPHR進行通信開銷對比,以及基于JPBC庫,選擇Type d159曲線實驗測試,進行計算開銷對比.如圖5所示,本文方案BTABEDSS的CP-ABE方案的密文長度優于其他對比方案,私鑰長度與BMHASPHR相當,優于BPPTABE和BCSWAC.因此,本文CP-ABE方案通信開銷優于其他對比方案.如圖6所示,本文方案BTABEDSS的CP-ABE方案的加密計算開銷最低,加密計算開銷優于其他對比方案.BMHASPHR的解密計算開銷最低,因為該方案使用橢圓曲線的標量乘運算,并且擁有第三方實體進行外包解密.本文CP-ABE方案也使用橢圓曲線標量乘運算,解密計算開銷遠低于需要復雜雙線性配對運算的BPPTABE和BCSWAC.
圖5 方案通信開銷對比Fig.5 Comparison of scheme communication overhead
圖6 方案計算開銷對比Fig.6 Comparison of scheme computation overhead
本文提出了一種結合區塊鏈和可追蹤CP-ABE的數據存儲與共享方案(BTABEDSS),數據所有者將數據密文存儲在IPFS上,區塊鏈上僅存儲數據的唯一標識、數據的哈希值和數據密文在IPFS檢索的內容哈希值等元數據信息,可以使數據安全可信存儲與訪問,并緩解了區塊鏈的存儲壓力.將智能合約協同CP-ABE實現對數據的細粒度訪問控制,只有滿足訪問控制策略的非惡意用戶才能訪問共享數據.使用橢圓曲線上的標量乘運算和表達性、計算性更優的OBDD訪問結構,有效降低了系統的計算和存儲開銷.使用概率加密方案將用戶身份信息隨機化處理后嵌入用戶密鑰,從而實現對惡意泄露密鑰的用戶進行高效追蹤并撤銷其訪問權限.通過安全性與實驗分析表明本文方案是安全可行的,與相關方案相比,本文方案具備更低的系統運行成本和開銷,在實際運行中更加高效與實用.在后續研究工作中,將解決可信授權機構的信任和單點失效問題,提升系統的安全性和魯棒性,同時進一步研究區塊鏈的共識算法,提高系統的運行效率.
猜你喜歡 密文密鑰區塊 探索企業創新密鑰紡織科學研究(2023年9期)2023-10-23一種針對格基后量子密碼的能量側信道分析框架電子與信息學報(2023年9期)2023-10-17一種支持動態更新的可排名密文搜索方案黑龍江大學自然科學學報(2022年1期)2022-03-29基于模糊數學的通信網絡密文信息差錯恢復計算機仿真(2021年10期)2021-11-19區塊鏈:一個改變未來的幽靈科學(2020年5期)2020-11-26密碼系統中密鑰的狀態與保護*北京電子科技學院學報(2020年2期)2020-11-20區塊鏈:主要角色和衍生應用科學(2020年6期)2020-02-06區塊鏈+媒體業的N種可能傳媒評論(2018年4期)2018-06-27讀懂區塊鏈現代企業文化(2018年13期)2018-06-09一種對稱密鑰的密鑰管理方法及系統信息安全研究(2018年1期)2018-02-07