国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

結(jié)合區(qū)塊鏈和可追蹤C(jī)P-ABE的數(shù)據(jù)存儲與共享研究

2024-04-22 02:39:58曾志兵吳曉鸰
關(guān)鍵詞:密文密鑰區(qū)塊

曾志兵,吳曉鸰,凌 捷

(廣東工業(yè)大學(xué) 計算機(jī)學(xué)院,廣州 510006)

0 引 言

隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等信息技術(shù)的發(fā)展,隨之產(chǎn)生的數(shù)據(jù)正以指數(shù)級的速度增長.其隱藏的巨大潛在價值亟需挖掘利用,同時也存在“數(shù)據(jù)孤島”式困境,其有效的解決途徑是建立安全高效的數(shù)據(jù)存儲與共享模型[1].實(shí)現(xiàn)數(shù)據(jù)充分共享的前提是保證數(shù)據(jù)的安全與可信[2].通常資源受限的個人和企業(yè)用戶傾向于將數(shù)據(jù)外包給具有豐富的存儲和計算資源的云進(jìn)行存儲與共享.然而,基于中心化的云存儲容易出現(xiàn)許多安全和隱私問題,例如單點(diǎn)故障、虛假數(shù)據(jù)注入、sybil攻擊漏洞、參與者之間的信任問題以及文件訪問和檢索操作中的問題[3],造成數(shù)據(jù)泄露、篡改或無法訪問,威脅用戶隱私,給用戶造成不可彌補(bǔ)的損失.因此,如何在實(shí)現(xiàn)數(shù)據(jù)充分共享中保證數(shù)據(jù)存儲的安全性和數(shù)據(jù)共享的可信性是目前的研究熱點(diǎn).區(qū)塊鏈?zhǔn)潜忍貛诺牡讓蛹夹g(shù),可以不依賴可信的第三方構(gòu)建分布式數(shù)據(jù)庫,具有去中心化、防篡改、可溯源、公開透明等特性[4],保證數(shù)據(jù)的可信性和可用性,為數(shù)據(jù)的安全存儲與共享帶來了新的解決方案.然而,區(qū)塊鏈的存儲空間存在瓶頸,需進(jìn)行優(yōu)化.星際文件系統(tǒng)(InterPlanetary File System,IPFS)是面向全球的點(diǎn)對點(diǎn)分布式文件系統(tǒng),數(shù)據(jù)在IPFS上分布式持久化存儲,沒有單點(diǎn)故障問題,節(jié)點(diǎn)間不需要相互信任,支持重復(fù)數(shù)據(jù)刪除、高吞吐量、按內(nèi)容尋址,可以作為區(qū)塊鏈的數(shù)據(jù)存儲方案,優(yōu)化區(qū)塊鏈存儲空間.

在傳統(tǒng)云存儲中安全存儲與共享數(shù)據(jù)時通常用加密技術(shù)保證機(jī)密性,同時需要對數(shù)據(jù)進(jìn)行訪問控制.Bethencourt等[5]首次提出了密文策略屬性基加密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE)方案,允許數(shù)據(jù)所有者加密與訪問策略相關(guān)聯(lián)的數(shù)據(jù),當(dāng)用戶的屬性集滿足數(shù)據(jù)密文中的訪問策略時才能解密獲得數(shù)據(jù),實(shí)現(xiàn)了對數(shù)據(jù)的機(jī)密性保護(hù)和細(xì)粒度訪問控制,廣泛應(yīng)用在云環(huán)境下安全存儲與共享數(shù)據(jù).傳統(tǒng)的CP-ABE方案大多都存在計算開銷較大的雙線性配對運(yùn)算,很難適用于資源受限的用戶.一些工作[6,7]通過將CP-ABE方案中大量的計算開銷外包給云端來減輕用戶的負(fù)擔(dān),但就整個系統(tǒng)來說,并沒有有效降低計算開銷,反而增加了云端的成本和通信開銷.為了從根本上降低計算開銷,Odelu等[8]提出了基于橢圓曲線的CP-ABE方案,使用較輕量級的標(biāo)量乘替代雙線性配對運(yùn)算,從算法方面來降低加解密計算開銷.經(jīng)過實(shí)驗(yàn)測試,在同一橢圓曲線下,一次雙線性配對計算開銷比一次標(biāo)量乘計算開銷大2~3倍.CP-ABE方案中還存在惡意用戶為謀取非法利益,向非授權(quán)用戶共享其解密私鑰的情況,而解密私鑰僅取決于用戶的屬性,因此無法確定其身份.為了追蹤惡意泄露私鑰的用戶身份,文獻(xiàn)[9]提出了首個白盒可追蹤C(jī)P-ABE方案.文獻(xiàn)[10]則在該方案中加入了用戶撤銷功能.針對文獻(xiàn)[10]存在隱私保護(hù)、合謀攻擊等問題,文獻(xiàn)[11]在其基礎(chǔ)上實(shí)現(xiàn)了隱私保護(hù)功能,但仍存在效率低下,訪問結(jié)構(gòu)表達(dá)能力和靈活性較差等不足.Li等[12]基于有序二元決策圖(Ordered Binary Decision Diagram,OBDD)提出了一種新型的CP-ABE方案,該訪問結(jié)構(gòu)可同時支持屬性的正負(fù)值,具有豐富的表達(dá)能力和計算高效性,但仍存在雙線性配對運(yùn)算.Ding等[13]基于OBDD訪問結(jié)構(gòu)提出了一種新型的無配對CP-ABE方案,降低了方案整體的存儲和計算開銷.

目前,已有大量工作將區(qū)塊鏈技術(shù)應(yīng)用到數(shù)據(jù)安全存儲與共享的研究中.文獻(xiàn)[14]提出了一個基于區(qū)塊鏈的個人數(shù)據(jù)管理系統(tǒng),數(shù)據(jù)所有者可以采用訪問控制策略控制其數(shù)據(jù),但是該方案在加密共享數(shù)據(jù)時使用的是對稱加密,在共享數(shù)據(jù)時需要給每個用戶單獨(dú)授權(quán),這給系統(tǒng)管理密鑰和訪問控制策略帶來了挑戰(zhàn).文獻(xiàn)[15]將CP-ABE方案應(yīng)用于區(qū)塊鏈,以實(shí)現(xiàn)數(shù)據(jù)隱私保護(hù)和細(xì)粒度共享,也支持對惡意泄露密鑰用戶的追蹤,但數(shù)據(jù)存儲在區(qū)塊鏈上容易遭遇存儲瓶頸.文獻(xiàn)[16]使用以太坊區(qū)塊鏈技術(shù)結(jié)合CP-ABE方案提出了一種新的云存儲安全訪問控制框架,在不需要可信的第三方下實(shí)現(xiàn)云存儲中共享數(shù)據(jù)的細(xì)粒度訪問控制.文獻(xiàn)[17]為了安全共享患者的健康記錄,基于區(qū)塊鏈在不需要第三方參與的情況下提供安全通信,使用層次化訪問結(jié)構(gòu)的CP-ABE方案實(shí)現(xiàn)對共享數(shù)據(jù)的層次化訪問控制.文獻(xiàn)[16,17]都將共享數(shù)據(jù)存儲在中心化的云存儲上,存在安全和隱私問題并且不支持對惡意泄露密鑰用戶的追蹤.文獻(xiàn)[18]針對P2P網(wǎng)絡(luò)中數(shù)據(jù)存儲和數(shù)據(jù)共享分發(fā)時存在網(wǎng)絡(luò)失信、非法訪問及溯源難等安全問題,基于信任模型構(gòu)建的P2P分發(fā)平臺,提出一種結(jié)合區(qū)塊鏈和屬性基加密的可信數(shù)據(jù)分發(fā)機(jī)制,并利用IPFS作為數(shù)據(jù)的鏈下存儲平臺,實(shí)現(xiàn)鏈上鏈下協(xié)同管理數(shù)據(jù).文獻(xiàn)[19]將區(qū)塊鏈、CP-ABE和IPFS結(jié)合起來,提出了一種基于區(qū)塊鏈的個人數(shù)據(jù)安全共享和隱私保護(hù)方案,數(shù)據(jù)所有者對其數(shù)據(jù)進(jìn)行細(xì)粒度訪問控制,并將共享數(shù)據(jù)安全可信地存儲在IPFS上,支持在不影響其他用戶的情況下從屬性級撤銷特定的用戶,但仍不支持對惡意泄露密鑰用戶的追蹤.

綜上所述,本文提出了一種結(jié)合區(qū)塊鏈和可追蹤C(jī)P-ABE的數(shù)據(jù)存儲與共享方案(BTABEDSS),主要貢獻(xiàn)如下.

1)本文提出了一種結(jié)合區(qū)塊鏈和可追蹤C(jī)P-ABE的數(shù)據(jù)存儲與共享方案模型.數(shù)據(jù)所有者將數(shù)據(jù)密文存儲在IPFS上,區(qū)塊鏈上僅存儲數(shù)據(jù)的唯一標(biāo)識、數(shù)據(jù)的哈希值和數(shù)據(jù)密文在IPFS檢索的內(nèi)容哈希值等元數(shù)據(jù)信息,這樣不僅保證數(shù)據(jù)的安全可信存儲與訪問,還有效解決了區(qū)塊鏈的存儲瓶頸問題.利用智能合約和CP-ABE協(xié)同實(shí)現(xiàn)數(shù)據(jù)所有者對其數(shù)據(jù)進(jìn)行細(xì)粒度訪問控制,只有滿足訪問控制策略的非惡意用戶才能訪問共享數(shù)據(jù).

2)使用橢圓曲線上的標(biāo)量乘運(yùn)算和表達(dá)性、計算性更優(yōu)的OBDD訪問結(jié)構(gòu),有效降低了系統(tǒng)的計算和存儲開銷.

3)采用概率加密方案將用戶身份信息隨機(jī)化處理后嵌入用戶密鑰,從而實(shí)現(xiàn)對惡意泄露密鑰的用戶進(jìn)行高效追蹤并撤銷其訪問權(quán)限.

4)進(jìn)行了安全性與實(shí)驗(yàn)分析,結(jié)果表明本文方案是安全可行的,與對比方案相比,降低了系統(tǒng)運(yùn)行成本和開銷,提升了系統(tǒng)操作效率,更加高效與實(shí)用.

1 相關(guān)知識

1.1 橢圓曲線加密

橢圓曲線加密(ECC)是一種基于橢圓曲線離散對數(shù)問題(ECDLP)的非對稱加密算法,橢圓曲線E在有限域FG(p)上定義,表示為公式(1):

y2=x3+ax+b(modp),4a3+27b2≠0

(1)

3)私鑰解密.根據(jù)公鑰Q對應(yīng)的私鑰d和密文C,通過計算M+cQ-d(cG)=M,即可計算出明文消息M.

1.2 OBDD訪問結(jié)構(gòu)

有序二元決策圖(OBDD)是一個有根、有向的非循環(huán)圖G=(V,E),在一個預(yù)定義變量序的布爾變量集{x0,x1,…,xn-1}上表示一個布爾函數(shù)f(x0,x1,…,xn-1)[20].其中布爾變量描述屬性,n為集合中屬性的數(shù)量,OBDD具有以下特性.

1)圖G中V不是非終端節(jié)點(diǎn)就是終端節(jié)點(diǎn).

2)每個非終端節(jié)點(diǎn)表示一個變量(屬性)xi,并有兩個子節(jié)點(diǎn).當(dāng)xi賦值為1,其子節(jié)點(diǎn)記為high(xi)稱作高子節(jié)點(diǎn);當(dāng)xi賦值為0,其子節(jié)點(diǎn)記為low(xi)稱作低子節(jié)點(diǎn).每個非終端節(jié)點(diǎn)用一個四元組(i,id,low(v),high(v))來標(biāo)記,其中i∈I是該節(jié)點(diǎn)表示的屬性序號,id∈ID是為標(biāo)識該節(jié)點(diǎn)的唯一編號,low(v)和high(v)分別表示指向該節(jié)點(diǎn)的低子節(jié)點(diǎn)和高子節(jié)點(diǎn).I是訪問結(jié)構(gòu)中的屬性集合,ID是非終端節(jié)點(diǎn)的編號集合.

3)終端節(jié)點(diǎn)被標(biāo)為0或1,不表示屬性也沒有子節(jié)點(diǎn).

4)從根節(jié)點(diǎn)到終端節(jié)點(diǎn)的任一有向路徑上,每個變量(屬性)xi都以同樣的順序且至多一次出現(xiàn).

對于屬性集S,判斷S是否滿足OBDD訪問結(jié)構(gòu):從根節(jié)點(diǎn)開始,對于具有屬性i的非終端節(jié)點(diǎn),若i∈S,將沿high(v)轉(zhuǎn)到高子節(jié)點(diǎn);否則,將沿low(v)轉(zhuǎn)到低子節(jié)點(diǎn).重復(fù)上述過程直到終端節(jié)點(diǎn),若終端節(jié)點(diǎn)為1,則S滿足OBDD訪問結(jié)構(gòu);否則,S不滿足OBDD訪問結(jié)構(gòu).

假設(shè)系統(tǒng)定義的屬性集為{x0,x1,…,xn-1},訪問策略包括系統(tǒng)定義的所有屬性.xi的屬性值為正,表示訪問策略要求滿足訪問策略的屬性集需要有屬性xi;xi的屬性值為負(fù),表示訪問策略要求滿足訪問策略的屬性集不需要有屬性xi.若有一訪問策略(x0AND (x1ORx2) ANDx3),則表示屬性集{x0,x1,x3}或{x0,x2,x3}的用戶滿足訪問策略,將該訪問策略轉(zhuǎn)換成布爾函數(shù)為f(x0,x1,x2,x3)=x0x1x3+x0x2x3,預(yù)定義變量序?yàn)閤0→x1→x2→x3,生成對應(yīng)的OBDD訪問結(jié)構(gòu)如圖1所示.非終端節(jié)點(diǎn)由圓圈表示,終端節(jié)點(diǎn)由方塊表示,實(shí)線指向高子節(jié)點(diǎn),虛線指向低子節(jié)點(diǎn).在OBDD中,從根節(jié)點(diǎn)到終端節(jié)點(diǎn)為1的路徑被稱為滿足訪問策略的有效路徑.例如路徑(x0=1)→(x1=0)→(x2=1)→(x3=1)→1是一條有效路徑.

圖1 OBDD訪問結(jié)構(gòu)Fig.1 OBDD access structure

1.3 智能合約和以太坊

Buterin在以太坊白皮書[21]中率先引入了智能合約,提出了第一個內(nèi)置圖靈完備語言的以太坊區(qū)塊鏈.以太坊內(nèi)置有成熟的圖靈完備的編程語言來編寫智能合約,智能合約本質(zhì)上是一個用戶自定義的計算機(jī)協(xié)議程序,在一些外部或內(nèi)部條件的觸發(fā)下自動運(yùn)行在以太坊虛擬機(jī)上,借助其專用加密貨幣以太幣來計量和控制程序執(zhí)行的資源開銷,使用區(qū)塊鏈來同步和保存系統(tǒng)狀態(tài).由于區(qū)塊鏈存儲了智能合約的程序代碼、狀態(tài)、數(shù)據(jù),從而使智能合約的使用具有去中心化、防篡改、可溯源等特性.

2 結(jié)合區(qū)塊鏈和可追蹤C(jī)P-ABE的數(shù)據(jù)存儲與共享方案

2.1 方案架構(gòu)

本文方案使用的相關(guān)符號及其含義如表1所示.系統(tǒng)模型如圖2所示,主要由訪問中心(AC)、可信授權(quán)機(jī)構(gòu)(TA)、數(shù)據(jù)所有者(DO)、數(shù)據(jù)使用者(DU)、區(qū)塊鏈和IPFS組成,每個實(shí)體的具體描述如下.

表1 相關(guān)符號描述Table 1 Description of related notations

圖2 系統(tǒng)模型Fig.2 System model

1)訪問中心(AC):是系統(tǒng)的半可信實(shí)體,負(fù)責(zé)在區(qū)塊鏈上部署系統(tǒng)的智能合約,對每個加入系統(tǒng)的用戶進(jìn)行嚴(yán)格的資格審查.通過資格審查后方可注冊為系統(tǒng)用戶,為系統(tǒng)用戶公開系統(tǒng)合約調(diào)用信息,定義系統(tǒng)屬性集N,為系統(tǒng)每個用戶分配一個用戶屬性集S和用戶身份唯一標(biāo)識uid,調(diào)用系統(tǒng)合約的注冊函數(shù),將系統(tǒng)用戶的uid和區(qū)塊鏈賬戶信息進(jìn)行注冊,使系統(tǒng)用戶擁有調(diào)用系統(tǒng)合約的訪問權(quán)限.同時維護(hù)一個惡意用戶撤銷列表RL,注銷RL中的每個惡意用戶并調(diào)用系統(tǒng)合約的撤銷函數(shù),撤銷每個惡意用戶調(diào)用系統(tǒng)合約的訪問權(quán)限.此外,為系統(tǒng)用戶存儲和檢索共享數(shù)據(jù)的元數(shù)據(jù)信息.

2)可信授權(quán)機(jī)構(gòu)(TA):是系統(tǒng)的可信實(shí)體,根據(jù)AC定義的系統(tǒng)屬性集N,負(fù)責(zé)為系統(tǒng)生成系統(tǒng)公鑰PK、系統(tǒng)主密鑰MSK和用戶屬性私鑰SK.此外,還負(fù)責(zé)對惡意泄露的密鑰進(jìn)行追蹤,追蹤到惡意用戶uid后發(fā)送給AC,AC將此uid加入惡意用戶撤銷列表RL.

3)數(shù)據(jù)所有者(DO):是可信的數(shù)據(jù)擁有者,在區(qū)塊鏈上注冊賬戶信息并向AC注冊為系統(tǒng)用戶,根據(jù)系統(tǒng)中定義的屬性和相關(guān)信息,為需要安全存儲與共享的數(shù)據(jù)制定訪問控制策略,對數(shù)據(jù)及相關(guān)元數(shù)據(jù)信息進(jìn)行加密,然后將數(shù)據(jù)的密文和相關(guān)元數(shù)據(jù)信息分別上傳到IPFS、AC和區(qū)塊鏈.

4)數(shù)據(jù)使用者(DU):是不可信的數(shù)據(jù)訪問者,同樣需要注冊區(qū)塊鏈賬戶并向AC注冊為系統(tǒng)用戶.當(dāng)DU需要訪問共享數(shù)據(jù)時,只有當(dāng)DU是非惡意用戶且其用戶屬性集S滿足DO為數(shù)據(jù)制定的訪問控制策略時,才能成功解密數(shù)據(jù),還可以驗(yàn)證數(shù)據(jù)的完整性.DU是不可信的,可能因利益驅(qū)使而惡意泄露其用戶屬性私鑰SK,在無法解密一些數(shù)據(jù)密文的情況下發(fā)起合謀攻擊.

5)區(qū)塊鏈:AC在區(qū)塊鏈上部署了系統(tǒng)合約,系統(tǒng)用戶通過調(diào)用系統(tǒng)合約在區(qū)塊鏈上傳和下載數(shù)據(jù)的相關(guān)元數(shù)據(jù)信息.

6)IPFS:IPFS為DO去中心化存儲數(shù)據(jù)密文,然后根據(jù)數(shù)據(jù)密文內(nèi)容生成在IPFS檢索的內(nèi)容哈希值并返回給DO,被授權(quán)的DU可以根據(jù)該內(nèi)容哈希值從IPFS下載數(shù)據(jù)密文.

本文方案主要包括以下算法:

1)系統(tǒng)初始化算法.Setup(1λ,N)→(PK,MSK,RL):TA運(yùn)行該算法,輸入安全參數(shù)λ和系統(tǒng)屬性集N,輸出系統(tǒng)公鑰PK和系統(tǒng)主密鑰MSK.同時AC初始化一個空的惡意用戶撤銷列表RL.

2)密鑰生成算法.KeyGen(PK,MSK,S,uid)→SK:TA運(yùn)行該算法,輸入系統(tǒng)公鑰PK、系統(tǒng)主密鑰MSK、用戶屬性集S和用戶身份唯一標(biāo)識uid,輸出用戶屬性私鑰SK.

3)數(shù)據(jù)加密算法.Encrypt(PK,OBDD,ck)→CTck:DO運(yùn)行該算法,輸入系統(tǒng)公鑰PK、OBDD訪問結(jié)構(gòu)和AES算法對稱密鑰ck,輸出密鑰ck的密文CTck.

4)數(shù)據(jù)解密算法.Decrypt(PK,SK,CTck,RL,uid)→ck/⊥:DU運(yùn)行該算法,輸入系統(tǒng)公鑰PK、用戶屬性私鑰SK、密鑰ck的密文CTck、惡意用戶撤銷列表RL和用戶身份唯一標(biāo)識uid,輸出AES算法對稱密鑰ck或解密失敗符號⊥.

5)密鑰追蹤算法.Trace(PK,MSK,SK)→uid/⊥:TA運(yùn)行該算法,輸入系統(tǒng)公鑰PK、系統(tǒng)主密鑰MSK和惡意泄露的用戶屬性私鑰SK,先驗(yàn)證SK是否滿足完整性檢驗(yàn)條件,若滿足并可追蹤到SK對應(yīng)的惡意用戶uid,則輸出該uid;否則,輸出追蹤失敗符號⊥.

2.2 詳細(xì)設(shè)計

2.2.1 系統(tǒng)初始化

2.2.2 密鑰生成

2.2.3 數(shù)據(jù)加密

DO為需要安全存儲與共享的數(shù)據(jù)明文F設(shè)置數(shù)據(jù)明文唯一標(biāo)識fid并生成AES算法對稱密鑰ck,利用ck加密數(shù)據(jù)明文F得到數(shù)據(jù)密文Eck(F),將Eck(F)存儲至IPFS得到Eck(F)在IPFS檢索的內(nèi)容哈希值hashipfs,利用ck加密內(nèi)容哈希值hashipfs得到Eck(hashipfs).通過計算hashF=H2(F)得到數(shù)據(jù)明文F的哈希值hashF.隨后DO調(diào)用系統(tǒng)合約,將fid、hashF和Eck(hashipfs)存儲在區(qū)塊鏈上,其中fid和hashF、Eck(hashipfs)是映射關(guān)系.

最后輸出密鑰ck的密文CTck,然后DO將fid和CTck上傳至AC.

2.2.4 數(shù)據(jù)解密

DU在AC上檢索需要訪問的共享數(shù)據(jù)時可以獲取對應(yīng)的元數(shù)據(jù)信息fid、CTck和RL.

Decrypt(PK,SK,CTck,RL,uid)→ck/⊥:DU運(yùn)行該算法,算法首先輸入DU的用戶身份唯一標(biāo)識uid,若uid∈RL,則輸出解密失敗符號⊥并終止算法,DU訪問共享數(shù)據(jù)失敗;若uid?RL,算法繼續(xù)執(zhí)行,只有當(dāng)DU的用戶屬性集S滿足DO定義的OBDD訪問結(jié)構(gòu),才能成功執(zhí)行解密操作獲取密鑰ck,具體步驟如下:

1)先找出OBDD中id=2的節(jié)點(diǎn),記為當(dāng)前節(jié)點(diǎn).

2)在當(dāng)前節(jié)點(diǎn)提取(i,id,low(v),high(v)),若屬性i∈S,算法跳轉(zhuǎn)到步驟3)執(zhí)行;否則,跳轉(zhuǎn)到步驟4)執(zhí)行.

3)找出當(dāng)前節(jié)點(diǎn)的高子節(jié)點(diǎn).若高子節(jié)點(diǎn)是終端節(jié)點(diǎn)0,算法終止執(zhí)行并返回解密失敗;若高子節(jié)點(diǎn)是終端節(jié)點(diǎn)1,算法跳轉(zhuǎn)到步驟5)執(zhí)行;若高子節(jié)點(diǎn)是非終端節(jié)點(diǎn),將高子節(jié)點(diǎn)記為當(dāng)前節(jié)點(diǎn),算法跳轉(zhuǎn)到步驟2)執(zhí)行.

4)找出當(dāng)前節(jié)點(diǎn)的低子節(jié)點(diǎn).若低子節(jié)點(diǎn)是終端節(jié)點(diǎn)0,算法終止執(zhí)行并返回解密失敗;若低子節(jié)點(diǎn)是終端節(jié)點(diǎn)1,算法跳轉(zhuǎn)到步驟5)執(zhí)行;若低子節(jié)點(diǎn)是非終端節(jié)點(diǎn),將低子節(jié)點(diǎn)記為當(dāng)前節(jié)點(diǎn),算法跳轉(zhuǎn)到步驟2)執(zhí)行.

5)若DU的用戶屬性集S滿足OBDD訪問結(jié)構(gòu)中的某一條有效路徑Rj,然后算法進(jìn)行如下計算.

最后,通過計算ck=Cck⊕H1(sPy)獲取密鑰ck.若DU成功獲取密鑰ck,DU使用fid調(diào)用系統(tǒng)合約從區(qū)塊鏈上獲取hashF和Eck(hashipfs),使用密鑰ck解密Eck(hashipfs)得到hashipfs,從而在IPFS上獲取數(shù)據(jù)密文Eck(F),最終利用ck解密Eck(F)得到數(shù)據(jù)明文F并利用hashF驗(yàn)證數(shù)據(jù)的完整性;否則,DU訪問共享數(shù)據(jù)失敗.

2.2.5 密鑰追蹤

Trace(PK,MSK,SK)→uid/⊥:TA運(yùn)行該算法,該算法由驗(yàn)證和追蹤兩個階段組成.

1)驗(yàn)證階段.對惡意泄露的用戶屬性私鑰SK進(jìn)行完整性檢驗(yàn).若SK通過完整性檢驗(yàn),則SK是有效的用戶屬性私鑰,進(jìn)入追蹤階段;否則,SK是非法的用戶屬性私鑰,算法輸出追蹤失敗符號⊥并終止,檢驗(yàn)過程如下:

2)追蹤階段.若惡意泄露的用戶屬性私鑰SK通過完整性檢驗(yàn),通過計算Decek((D2-y)/D3)=Decek(r)=uid,即可追蹤到SK對應(yīng)的惡意用戶uid,TA將惡意用戶uid發(fā)送給AC,AC將惡意用戶uid加入到惡意用戶撤銷列表RL,從而撤銷惡意用戶的訪問權(quán)限;否則,算法輸出追蹤失敗符號⊥并終止.

3 安全性與實(shí)驗(yàn)分析

3.1 安全性分析

本文方案(BTABEDSS)通過使用區(qū)塊鏈、分布式存儲IPFS、CP-ABE和智能合約等技術(shù)實(shí)現(xiàn)了數(shù)據(jù)的安全可信存儲與共享,提供了數(shù)據(jù)的細(xì)粒度訪問控制和隱私保護(hù),實(shí)現(xiàn)了對泄露密鑰的惡意用戶的高效追蹤并撤銷其訪問權(quán)限.此外,本文方案中智能合約的部署和調(diào)用都記錄在區(qū)塊鏈中,記錄所有用戶的存儲和訪問操作,并且可溯源、不可篡改、不可抵賴.

1)機(jī)密性.在數(shù)據(jù)存儲過程中,DO將使用AES算法加密數(shù)據(jù)的數(shù)據(jù)密文存儲在IPFS上,數(shù)據(jù)密文在IPFS上的內(nèi)容哈希值也使用AES算法加密后存儲在區(qū)塊鏈上,數(shù)據(jù)以及相關(guān)信息均以加密狀態(tài)傳輸和存儲,無法獲取數(shù)據(jù)的任何有效信息.在數(shù)據(jù)共享過程中,DO使用CP-ABE加密AES算法密鑰ck時,隨機(jī)選取s計算H1(sPy)加密ck,生成的密文Cck也是隨機(jī)的.基于橢圓曲線離散對數(shù)困難問題,無法在多項(xiàng)式時間內(nèi)從Cs和Cj中獲取關(guān)于s的任何有價值信息,進(jìn)而無法計算出sPy.只有滿足訪問控制策略且是非惡意用戶的DU才能計算出sPy,從而解密出ck,進(jìn)而解密數(shù)據(jù)密文獲取數(shù)據(jù).因此,本文方案在數(shù)據(jù)安全存儲與共享過程中保證了數(shù)據(jù)的機(jī)密性.

2)完整性.在本文方案中,DO采用抗碰撞哈希函數(shù)對數(shù)據(jù)進(jìn)行哈希計算,將數(shù)據(jù)的哈希值hashF存儲在區(qū)塊鏈上,區(qū)塊鏈上的數(shù)據(jù)是防篡改的,可以保證hashF的可信性和可用性.DU在訪問獲取數(shù)據(jù)后可以在區(qū)塊鏈上獲取hashF,通過抗碰撞哈希函數(shù)對數(shù)據(jù)進(jìn)行哈希計算并與hashF進(jìn)行對比,驗(yàn)證數(shù)據(jù)的完整性.

3)抗單點(diǎn)故障.本文方案與傳統(tǒng)云存儲方案相比,在數(shù)據(jù)的存儲和訪問過程中不需要中心化的可信第三方,使用的區(qū)塊鏈和IPFS皆是分布式技術(shù),即使部分節(jié)點(diǎn)發(fā)生故障,也不影響整個方案的可用性,有效解決傳統(tǒng)云存儲方案的單點(diǎn)故障問題.

5)密鑰泄露追蹤.為了實(shí)現(xiàn)對由于利益驅(qū)使而泄露密鑰的惡意用戶的追蹤,在密鑰生成階段,TA把用戶身份唯一標(biāo)識uid通過概率加密方案計算出隨機(jī)值r,然后把r通過抗碰撞哈希函數(shù)計算出c,從而利用r和c來參與計算出用戶屬性私鑰SK.在惡意用戶泄露密鑰時,TA可以使用系統(tǒng)公鑰PK和系統(tǒng)主密鑰MSK追蹤惡意用戶,若惡意用戶偽造密鑰,其偽造密鑰是無法通過完整性檢驗(yàn)的,若泄露密鑰通過完整性檢驗(yàn),則可計算出惡意用戶uid,實(shí)現(xiàn)密鑰泄露追蹤.

3.2 實(shí)驗(yàn)分析

本文通過仿真實(shí)驗(yàn)對所提出的方案進(jìn)行實(shí)驗(yàn)測試和性能分析,驗(yàn)證其可行性和有效性.實(shí)驗(yàn)利用兩臺PC,分別為PC1:Intel(R)Core(TM)i5-11320HCPU@3.20GHz 2.50GHz and 16GB of RAM、64位Windows 10操作系統(tǒng)和PC2:Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz 3.40GHz and 8GB of RAM、64位Windows 7操作系統(tǒng).在PC1上用ganache仿真以太坊網(wǎng)絡(luò),使用solidity編程語言在Remix IDE上開發(fā)和測試智能合約,通過web3j在ganache上部署和調(diào)用智能合約,使用ipfs-desktop安裝搭建IPFS,引入外部資源庫JPBC進(jìn)行實(shí)驗(yàn)測試.在PC2上搭建服務(wù)器仿真云存儲服務(wù)器與IPFS進(jìn)行對比實(shí)驗(yàn).此外,所有實(shí)驗(yàn)測試都執(zhí)行多次以取平均值進(jìn)行實(shí)驗(yàn)分析,并將本文方案BTABEDSS與方案BPPTABE[15]、BCSWAC[16]、BMHASPHR[17]、BSSPD[19]進(jìn)行對比分析.

3.2.1 智能合約成本分析

在以太坊中,Gas是可以用于衡量執(zhí)行智能合約操作的價格單位,Gas值決定了智能合約操作的工作量,衡量了系統(tǒng)使用智能合約的成本開銷.本實(shí)驗(yàn)將方案BCSWAC與本文方案BTABEDSS進(jìn)行智能合約操作的Gas消耗進(jìn)行對比,分別測試了智能合約的部署、上傳元數(shù)據(jù)和下載元數(shù)據(jù)操作的Gas消耗.如圖3所示,本文方案BTABEDSS的智能合約部署、上傳元數(shù)據(jù)和下載元數(shù)據(jù)操作的成本較低且均低于BCSWAC.兩個方案智能合約上傳元數(shù)據(jù)和下載元數(shù)據(jù)操作的成本都遠(yuǎn)低于部署操作的成本,但本文方案BTABEDSS的智能合約僅需部署一次,BCSWAC的智能合約由數(shù)據(jù)所有者部署,隨著系統(tǒng)用戶的增加而會使系統(tǒng)使用智能合約的成本開銷不斷增加.因此,采用本文方案后,系統(tǒng)使用智能合約的成本開銷較低,更加可行與實(shí)用.

圖3 智能合約操作Gas消耗對比Fig.3 Comparison of Gas consumption for smart contract operations

3.2.2 數(shù)據(jù)存儲時間效率分析

本實(shí)驗(yàn)是測試IPFS和云存儲兩種存儲方式的存取時間效率的實(shí)驗(yàn).本文將數(shù)據(jù)密文存儲在IPFS,主要是針對數(shù)據(jù)的存儲使用,在PC1上使用ipfs-desktop安裝搭建IPFS,進(jìn)行數(shù)據(jù)上傳下載實(shí)驗(yàn)測試,其中連接的是IPFS真實(shí)主網(wǎng),由真實(shí)多節(jié)點(diǎn)連接構(gòu)成.其中,由于IPFS內(nèi)部機(jī)制,在同一文件首次上傳時是真實(shí)上傳該文件,而在其后多次上傳該文件操作則只是確認(rèn)該文件是否已存在,不會進(jìn)行二次存儲.針對這一問題,為了得到更可靠的測試結(jié)果,進(jìn)行了同一大小的不同文件的上傳測試.與其對比的是在PC2上搭建服務(wù)器仿真云存儲服務(wù)器,進(jìn)行數(shù)據(jù)上傳下載測試.在不同數(shù)據(jù)大小下,分別測試了云存儲和IPFS的數(shù)據(jù)上傳/下載時間消耗并進(jìn)行了對比.如圖4所示,隨著數(shù)據(jù)大小的增加,云存儲和IPFS的數(shù)據(jù)上傳/下載時間消耗都越多,但I(xiàn)PFS的增幅較小.在相同數(shù)據(jù)大小下,IPFS的數(shù)據(jù)上傳/下載時間消耗均較少并少于云存儲的數(shù)據(jù)上傳/下載時間消耗,隨著數(shù)據(jù)大小的增加,優(yōu)勢更加明顯.所以,采用本文方案,系統(tǒng)使用IPFS,不僅使數(shù)據(jù)安全存儲與訪問、緩解了區(qū)塊鏈存儲壓力,還提升了系統(tǒng)操作效率.

圖4 云存儲和IPFS的數(shù)據(jù)上傳/下載時間對比Fig.4 Data upload/download time comparison between cloud storage and IPFS

3.2.3 性能分析

為了驗(yàn)證雙線性配對運(yùn)算計算開銷大于標(biāo)量乘或冪乘運(yùn)算,基于JPBC庫,選擇Type d159曲線,取50次測試結(jié)果平均值,實(shí)驗(yàn)結(jié)果得出一次雙線性配對運(yùn)算的時間為15.56ms,一次標(biāo)量乘或冪乘運(yùn)算的時間為3.62ms,結(jié)果表明標(biāo)量乘或冪乘運(yùn)算的計算開銷優(yōu)于雙線性配對運(yùn)算.進(jìn)一步對本文方案BTABEDSS與其他方案在CP-ABE方案中密文長度、私鑰長度和加解密計算開銷方面進(jìn)行了性能對比分析.其中,T表示群元素的冪乘或標(biāo)量乘運(yùn)算,k表示訪問策略中的屬性個數(shù),u表示訪問策略中每個屬性對應(yīng)的撤銷列表中的用戶個數(shù),n表示私鑰生成所用到的用戶屬性個數(shù),d表示成功解密所用到的屬性個數(shù),v表示OBDD中有效路徑的個數(shù),L表示群元素長度.由表2所示,本文方案BTABEDSS在多個方面都優(yōu)于其他方案.本文方案BTABEDSS中用戶屬性私鑰長度是固定的,只有3個群元素長度,而不是跟其他方案一樣正比于用戶屬性個數(shù),這顯然降低了系統(tǒng)的計算和存儲開銷.數(shù)據(jù)加密階段的密文長度和計算開銷都正比于OBDD中有效路徑個數(shù)v,而不是正比于訪問策略中的屬性個數(shù),這樣可以有效降低系統(tǒng)的計算和存儲開銷,特別是當(dāng)v較小時.此外,本文方案BTABEDSS的數(shù)據(jù)解密階段過程的時間復(fù)雜度為O(1),只需要幾次標(biāo)量乘運(yùn)算,因此效率很高,而不是跟方案BPPTABE、BCSWAC、BSSPD一樣需要正比于成功解密所用到的屬性個數(shù)的雙線性配對運(yùn)算.雖然方案BMHASPHR的時間復(fù)雜度也是O(1),但是需要第三方實(shí)體進(jìn)行外包解密.

表2 性能對比Table 2 Performance comparison

為了更直觀地說明本文CP-ABE方案的優(yōu)越性,選擇本文1.2節(jié)所舉例的訪問策略(x0AND (x1ORx2) ANDx3),進(jìn)一步對本文方案BTABEDSS與方案BPPTABE、BCSWAC、BMHASPHR進(jìn)行通信開銷對比,以及基于JPBC庫,選擇Type d159曲線實(shí)驗(yàn)測試,進(jìn)行計算開銷對比.如圖5所示,本文方案BTABEDSS的CP-ABE方案的密文長度優(yōu)于其他對比方案,私鑰長度與BMHASPHR相當(dāng),優(yōu)于BPPTABE和BCSWAC.因此,本文CP-ABE方案通信開銷優(yōu)于其他對比方案.如圖6所示,本文方案BTABEDSS的CP-ABE方案的加密計算開銷最低,加密計算開銷優(yōu)于其他對比方案.BMHASPHR的解密計算開銷最低,因?yàn)樵摲桨甘褂脵E圓曲線的標(biāo)量乘運(yùn)算,并且擁有第三方實(shí)體進(jìn)行外包解密.本文CP-ABE方案也使用橢圓曲線標(biāo)量乘運(yùn)算,解密計算開銷遠(yuǎn)低于需要復(fù)雜雙線性配對運(yùn)算的BPPTABE和BCSWAC.

圖5 方案通信開銷對比Fig.5 Comparison of scheme communication overhead

圖6 方案計算開銷對比Fig.6 Comparison of scheme computation overhead

4 結(jié)束語

本文提出了一種結(jié)合區(qū)塊鏈和可追蹤C(jī)P-ABE的數(shù)據(jù)存儲與共享方案(BTABEDSS),數(shù)據(jù)所有者將數(shù)據(jù)密文存儲在IPFS上,區(qū)塊鏈上僅存儲數(shù)據(jù)的唯一標(biāo)識、數(shù)據(jù)的哈希值和數(shù)據(jù)密文在IPFS檢索的內(nèi)容哈希值等元數(shù)據(jù)信息,可以使數(shù)據(jù)安全可信存儲與訪問,并緩解了區(qū)塊鏈的存儲壓力.將智能合約協(xié)同CP-ABE實(shí)現(xiàn)對數(shù)據(jù)的細(xì)粒度訪問控制,只有滿足訪問控制策略的非惡意用戶才能訪問共享數(shù)據(jù).使用橢圓曲線上的標(biāo)量乘運(yùn)算和表達(dá)性、計算性更優(yōu)的OBDD訪問結(jié)構(gòu),有效降低了系統(tǒng)的計算和存儲開銷.使用概率加密方案將用戶身份信息隨機(jī)化處理后嵌入用戶密鑰,從而實(shí)現(xiàn)對惡意泄露密鑰的用戶進(jìn)行高效追蹤并撤銷其訪問權(quán)限.通過安全性與實(shí)驗(yàn)分析表明本文方案是安全可行的,與相關(guān)方案相比,本文方案具備更低的系統(tǒng)運(yùn)行成本和開銷,在實(shí)際運(yùn)行中更加高效與實(shí)用.在后續(xù)研究工作中,將解決可信授權(quán)機(jī)構(gòu)的信任和單點(diǎn)失效問題,提升系統(tǒng)的安全性和魯棒性,同時進(jìn)一步研究區(qū)塊鏈的共識算法,提高系統(tǒng)的運(yùn)行效率.

猜你喜歡
密文密鑰區(qū)塊
探索企業(yè)創(chuàng)新密鑰
一種針對格基后量子密碼的能量側(cè)信道分析框架
一種支持動態(tài)更新的可排名密文搜索方案
基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯恢復(fù)
區(qū)塊鏈:一個改變未來的幽靈
科學(xué)(2020年5期)2020-11-26 08:19:12
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
區(qū)塊鏈:主要角色和衍生應(yīng)用
科學(xué)(2020年6期)2020-02-06 08:59:56
區(qū)塊鏈+媒體業(yè)的N種可能
傳媒評論(2018年4期)2018-06-27 08:20:12
讀懂區(qū)塊鏈
一種對稱密鑰的密鑰管理方法及系統(tǒng)
南华县| 民乐县| 博野县| 上犹县| 专栏| 武夷山市| 尖扎县| 东台市| 沈丘县| 乐都县| 淮南市| 渝北区| 柯坪县| 鹤岗市| 桐庐县| 罗江县| 理塘县| 韶关市| 虞城县| 长泰县| 汾阳市| 平定县| 桃园县| 南部县| 抚州市| 巨鹿县| 疏勒县| 焦作市| 保康县| 大化| 平邑县| 凉山| 颍上县| 中牟县| 南木林县| 桦南县| 肇东市| 凤城市| 环江| 康乐县| 邵阳市|