亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CP-ABE和區(qū)塊鏈的數(shù)據(jù)安全共享方法①

        2019-11-15 07:06:12陳麗煒范冰冰
        關(guān)鍵詞:密文密鑰加密

        黃 穗,陳麗煒,范冰冰

        (華南師范大學(xué) 計(jì)算機(jī)學(xué)院,廣州 510631)

        1 引言

        隨著社會(huì)信息化的不斷提高,各類信息系統(tǒng)積聚著大量數(shù)據(jù)資源,這些數(shù)據(jù)普遍存在難以融合關(guān)聯(lián)的問(wèn)題,將會(huì)使產(chǎn)業(yè)間陷入“數(shù)據(jù)孤島”式困境.數(shù)據(jù)共享有效促進(jìn)各類數(shù)據(jù)交叉引用,提升數(shù)據(jù)的潛在價(jià)值,帶來(lái)巨大的社會(huì)和經(jīng)濟(jì)效益[1-4].然而,越來(lái)越多的數(shù)據(jù)涉及用戶個(gè)人隱私或相關(guān)隱私,如醫(yī)療檔案中的臨床診斷結(jié)果、出生日期、醫(yī)療卡號(hào)等,如果共享不當(dāng),將不可避免產(chǎn)生隱私泄露問(wèn)題[5,6].對(duì)于這部分?jǐn)?shù)據(jù),一般采取細(xì)粒度的訪問(wèn)控制和數(shù)據(jù)加密技術(shù)[7],在有限的范圍和時(shí)間段內(nèi)對(duì)特定的人或組織開放,按照“特定用戶—特定場(chǎng)景—特定資源”的方式進(jìn)行細(xì)粒度共享,同時(shí)對(duì)數(shù)據(jù)共享過(guò)程進(jìn)行追蹤.區(qū)塊鏈[8]具有不可篡改、可追溯和可編程的特性,基于區(qū)塊鏈構(gòu)建安全共享框架可用于滿足數(shù)據(jù)限制開放和透明監(jiān)管的安全需求.

        Xu 等人[9]根據(jù)隱私數(shù)據(jù)共享的應(yīng)用需求,提出一種將區(qū)塊鏈作為軟件連接件的系統(tǒng)架構(gòu).在區(qū)塊鏈上實(shí)現(xiàn)訪問(wèn)控制、交易驗(yàn)證、數(shù)據(jù)注冊(cè)和密鑰分發(fā)等業(yè)務(wù)邏輯,將數(shù)據(jù)存儲(chǔ)、密鑰生成、數(shù)據(jù)加密等操作放在區(qū)塊鏈下進(jìn)行,鏈上與鏈下之間通過(guò)交易和智能合約進(jìn)行數(shù)據(jù)交互.但沒(méi)有詳細(xì)闡述具體的技術(shù)細(xì)節(jié)和算法思想.Di Francesco Maesa D 等人[10]利用比特幣區(qū)塊鏈實(shí)現(xiàn)一種基于屬性的訪問(wèn)控制方案.該方案通過(guò)策略創(chuàng)建交易PCT (Policy Creation Transaction)和權(quán)限轉(zhuǎn)移交易(Right Transfer Transaction)實(shí)現(xiàn)策略的創(chuàng)建、更新、撤銷和用戶間訪問(wèn)權(quán)限轉(zhuǎn)移,區(qū)塊鏈作為分布式數(shù)據(jù)庫(kù)存儲(chǔ)XACML 策略和操作日志.資源的訪問(wèn)權(quán)限可以由最后一個(gè)權(quán)限所有者在區(qū)塊鏈上發(fā)起交易轉(zhuǎn)移到合法請(qǐng)求者,無(wú)需資源所有者處理.此外,任何用戶都可以對(duì)交易記錄進(jìn)行審計(jì),實(shí)現(xiàn)對(duì)訪問(wèn)策略全周期透明管理.該方案的區(qū)塊鏈用于維護(hù)分布式節(jié)點(diǎn)數(shù)據(jù)的一致性算法是基于算力的,因而系統(tǒng)運(yùn)作存在較大的計(jì)算開銷.文獻(xiàn)[11]提出一種結(jié)合分布式文件系統(tǒng)IPFS、以太坊區(qū)塊鏈和基于屬性加密的訪問(wèn)控制框架.在此框架下,數(shù)據(jù)擁有者能夠在區(qū)塊鏈上通過(guò)交易的方式將密鑰分發(fā)給數(shù)據(jù)請(qǐng)求者,同時(shí)指定訪問(wèn)策略來(lái)加密共享數(shù)據(jù).此外,作者通過(guò)智能合約實(shí)現(xiàn)了密文的關(guān)鍵字搜索功能,解決了傳統(tǒng)云服務(wù)器無(wú)法返回搜索結(jié)果和容易返回錯(cuò)誤結(jié)果的問(wèn)題.Jemel 等人[12]在區(qū)塊鏈和密文-策略基于屬性的加密(CP-ABE,Ciphetext-Policy Attribute-Based Encryption)基礎(chǔ)上,提出一種名為Timely CP-ABE with Blockchian 的訪問(wèn)控制方案,通過(guò)廣播交易將帶有時(shí)間屬性的訪問(wèn)策略發(fā)布到區(qū)塊鏈,只有在特定時(shí)間內(nèi)用戶屬性滿足訪問(wèn)策略的請(qǐng)求者才能獲取解密密鑰.該方案適合處理和解決開放共享環(huán)境下數(shù)據(jù)保護(hù)所面臨的細(xì)粒度問(wèn)題,既有效減少由密鑰撤回所帶來(lái)的開銷,又可追蹤用戶發(fā)布和獲取數(shù)據(jù)訪問(wèn)權(quán)限的操作記錄.然而存在以下不足:(1)區(qū)塊存儲(chǔ)容量有限,難以通過(guò)交易的形式實(shí)時(shí)部署眾多的訪問(wèn)策略.(2)數(shù)據(jù)請(qǐng)求者的屬性集合被封裝在交易信息,并被廣播到全網(wǎng)所有節(jié)點(diǎn)公開可見,極易被惡意節(jié)點(diǎn)盜用生成正確的用戶密鑰.

        本文通過(guò)借鑒上述方案的優(yōu)點(diǎn),提出了一種基于CP-ABE 和區(qū)塊鏈的數(shù)據(jù)安全共享框架,主要在以下方面進(jìn)行改進(jìn):

        (1)摒棄文獻(xiàn)[12]基于交易進(jìn)行權(quán)限管理的方式,以采用智能合約部署訪問(wèn)控制代替.

        (2)摒棄文獻(xiàn)[12]將訪問(wèn)策略和用戶屬性公開存放在區(qū)塊的方法,以將其存儲(chǔ)在區(qū)塊鏈數(shù)據(jù)庫(kù)上,并設(shè)置訪問(wèn)限制代替.

        (3)將數(shù)據(jù)集元數(shù)據(jù)發(fā)布到區(qū)塊鏈上,對(duì)數(shù)據(jù)集進(jìn)行注冊(cè)認(rèn)證,為數(shù)據(jù)的確權(quán)提供保障的同時(shí),供數(shù)據(jù)請(qǐng)求者發(fā)現(xiàn)數(shù)據(jù).

        2 框架相關(guān)技術(shù)

        2.1 區(qū)塊鏈

        區(qū)塊鏈?zhǔn)且环N以數(shù)據(jù)區(qū)塊為基本單位的按時(shí)間順序組合形成的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),并以密碼學(xué)方式保證的不可篡改和不可偽造的分布式賬本.在區(qū)塊鏈1.0 時(shí)代,區(qū)塊鏈利用共識(shí)機(jī)制和P2P 網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)區(qū)塊數(shù)據(jù)傳輸、驗(yàn)證以及冗余備份,利用加密的帶時(shí)間戳的鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),通過(guò)后序區(qū)塊對(duì)前序區(qū)塊進(jìn)行驗(yàn)證,并從時(shí)間維度進(jìn)行關(guān)聯(lián),保證區(qū)塊數(shù)據(jù)不可篡改且可追溯,僅僅是一種被用來(lái)保證去中心化架構(gòu)下數(shù)字貨幣交易可信性的技術(shù)方案的一部分[13].進(jìn)入2.0 時(shí)代,區(qū)塊鏈融合以智能合約為代表的鏈上腳本技術(shù),實(shí)現(xiàn)各種頂層復(fù)雜應(yīng)用場(chǎng)景的業(yè)務(wù)邏輯,為區(qū)塊鏈可編程特性提供了基礎(chǔ),極大拓寬了區(qū)塊鏈的應(yīng)用領(lǐng)域[14,15].區(qū)塊鏈結(jié)構(gòu)如圖1所示.

        圖1 區(qū)塊鏈結(jié)構(gòu)示意圖

        2.2 智能合約

        智能合約是一種在區(qū)塊鏈上自動(dòng)驗(yàn)證、不可逆轉(zhuǎn)、可編程執(zhí)行的計(jì)算機(jī)協(xié)議[16].最早是由密碼學(xué)家Nick Szabo 在1994年提出,設(shè)想將傳統(tǒng)合同條款轉(zhuǎn)換成代碼,并將它們嵌入到可以自動(dòng)執(zhí)行的硬件或軟件中,以便最大限度地減少交易者之間對(duì)可信第三方的依賴.區(qū)塊鏈技術(shù)的誕生,以及基于C++、Solidity 等高級(jí)語(yǔ)言的智能合約開發(fā)平臺(tái)的發(fā)布,使設(shè)計(jì)具有可用性的智能合約變成現(xiàn)實(shí).智能合約本質(zhì)上是一個(gè)狀態(tài)機(jī),包括一組可執(zhí)行函數(shù)、狀態(tài)變量以及標(biāo)識(shí)地址.合約部署者指定相關(guān)的權(quán)限確認(rèn)邏輯并把已完成編譯的合約上傳到區(qū)塊鏈后,其他用戶可以通過(guò)標(biāo)識(shí)地址向指定合約發(fā)起一筆事務(wù)(包括執(zhí)行函數(shù)所需的輸入?yún)?shù)),從而觸發(fā)對(duì)應(yīng)合約中相應(yīng)的執(zhí)行函數(shù),返回執(zhí)行結(jié)果并更新合約的狀態(tài).因此,智能合約賦予區(qū)塊鏈計(jì)算處理能力,開發(fā)者可以通過(guò)合理的邏輯函數(shù)管理和控制鏈上數(shù)據(jù).

        2.3 密文—策略基于屬性的加密

        密文—策略基于屬性的加密運(yùn)用密碼機(jī)制保護(hù)數(shù)據(jù),由發(fā)送方規(guī)定訪問(wèn)密文的策略,將屬性集合與訪問(wèn)資源相關(guān)聯(lián),接收方可以根據(jù)自己的授權(quán)屬性訪問(wèn)密文信息,適合隱私數(shù)據(jù)共享等訪問(wèn)控制類應(yīng)用[17,18].CP-ABE 主要由4 個(gè)多項(xiàng)式算法組成:

        (1)初始化:初始化算法為隨機(jī)化算法,一般在可信的密鑰分發(fā)中心上執(zhí)行.如式(1),算法輸入安全系數(shù)λ和屬性空間U,生成系統(tǒng)公鑰PSK和系統(tǒng)主密鑰MSK.

        (2)密鑰生成:密鑰生成算法為隨機(jī)化算法,一般由可信的密鑰分發(fā)中心執(zhí)行.如式(2),根據(jù)系統(tǒng)公鑰PSK、系統(tǒng)主密鑰MSK和數(shù)據(jù)請(qǐng)求者提交的屬性集合A,為數(shù)據(jù)請(qǐng)求者生成與屬性集合相關(guān)聯(lián)的用戶密鑰USK.

        (3)加密:加密算法為隨機(jī)化算法,由數(shù)據(jù)擁有者執(zhí)行.如式(3),算法輸入系統(tǒng)公鑰PSK、待加密消息T和與訪問(wèn)策略相關(guān)聯(lián)的訪問(wèn)控制結(jié)構(gòu)Acp,生成基于屬性加密的密文CT.只有擁有滿足訪問(wèn)策略的請(qǐng)求者才能解密密文CT.

        (4)解密:解密算法為確定性算法,由數(shù)據(jù)請(qǐng)求者執(zhí)行.如式(4),算法的輸入為系統(tǒng)公鑰PSK、用戶密鑰USK和密文CT,如果屬性集合A滿足訪問(wèn)策略,算法自動(dòng)解密密文并獲得相應(yīng)的明文數(shù)據(jù)T.

        3 DOB 框架

        3.1 系統(tǒng)模型

        DOB 框架由數(shù)據(jù)注冊(cè)模塊、密鑰生成模塊、策略管理模塊和傳輸模塊組成,通過(guò)4 個(gè)模塊的相互協(xié)同,實(shí)現(xiàn)數(shù)據(jù)的安全共享.DOB 框架包含3 個(gè)實(shí)體:

        1) DO:數(shù)據(jù)擁有者,實(shí)際上是擁有數(shù)據(jù)的個(gè)人或者機(jī)構(gòu).主要負(fù)責(zé)發(fā)布數(shù)據(jù)集元數(shù)據(jù),設(shè)置訪問(wèn)策略,分發(fā)密鑰和傳輸基于屬性加密的密文.

        2) DR:擁有部分屬性集合的數(shù)據(jù)請(qǐng)求者,只有屬性集合符合訪問(wèn)策略才能擁有訪問(wèn)數(shù)據(jù)集的權(quán)限.

        3) AC:可信的密鑰分發(fā)中心,負(fù)責(zé)生成公開參數(shù),為DO 和DR 生成和分發(fā)密鑰.

        3.1.1 數(shù)據(jù)注冊(cè)模塊

        數(shù)據(jù)注冊(cè)模塊將數(shù)據(jù)以相對(duì)成熟的元數(shù)據(jù)標(biāo)準(zhǔn)為核心進(jìn)行統(tǒng)一描述后,生成包含數(shù)據(jù)集哈希值、數(shù)據(jù)集所有者等特定標(biāo)識(shí)字段的元數(shù)據(jù),通過(guò)智能合約將元數(shù)據(jù)發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)上,供所有節(jié)點(diǎn)瀏覽發(fā)現(xiàn)數(shù)據(jù)集,利用區(qū)塊日志不可篡改的特性為數(shù)據(jù)集來(lái)源追蹤和數(shù)字資產(chǎn)確權(quán)提供保障.

        3.1.2 密鑰生成模塊

        密鑰生成模塊負(fù)責(zé)生成加密數(shù)據(jù)所需的密鑰.數(shù)據(jù)加密算法一般分為對(duì)稱加密算法和非對(duì)稱加密算法.對(duì)稱加密算法也稱為單密鑰算法,要求發(fā)收信雙方在建立通信之前,商定一個(gè)用于加解密數(shù)據(jù)的密鑰.非對(duì)稱加密算法需要公鑰和私鑰對(duì)數(shù)據(jù)進(jìn)行加密和解密.相比于非對(duì)稱加密,對(duì)稱加密的計(jì)算量小,加密速度快,當(dāng)加密大量數(shù)據(jù)時(shí)其實(shí)現(xiàn)效率要比非對(duì)稱加密高6-10 倍,但密鑰的分發(fā)缺乏安全,算法的安全性在很大程度上依賴于密鑰.考慮到需要加密的共享數(shù)據(jù)集數(shù)量比較大,為了保證高效的加解密效率,同時(shí)有效避免惡意攻擊者通過(guò)暴力破解的方式獲取密鑰,本模塊采用對(duì)稱加密算法AES-256 加密數(shù)據(jù),生成長(zhǎng)度為256 位的密鑰,該密鑰由一對(duì)256 位隨機(jī)數(shù)進(jìn)行加法運(yùn)算后執(zhí)行哈希算法SHA256 得出.密鑰管理和分發(fā)交由策略管理模塊和傳輸模塊處理.

        3.1.3 策略管理模塊

        策略管理模塊主要實(shí)現(xiàn)密文—策略基于屬性的加密.在此模塊里,AC 負(fù)責(zé)生成系統(tǒng)公鑰、系統(tǒng)主密鑰和用戶密鑰.DO 負(fù)責(zé)設(shè)置包含時(shí)間維度的訪問(wèn)策略,并將密鑰和訪問(wèn)策略嵌入到密文中,密文只有在有效時(shí)間內(nèi)才可被解密.DR 負(fù)責(zé)將用戶密鑰用于解密密文以獲得密鑰.

        3.1.4 傳輸模塊

        傳輸模塊主要利用智能合約設(shè)置用戶節(jié)點(diǎn)的訪問(wèn)權(quán)限,同時(shí)運(yùn)用序列化技術(shù),實(shí)現(xiàn)系統(tǒng)公鑰、用戶屬性、密文和用戶密鑰等在區(qū)塊鏈上的安全高效傳輸.

        3.2 運(yùn)作流程

        如圖2所示,DOB 框架的運(yùn)作流程為:

        圖2 DOB 框架運(yùn)作流程圖

        ① DO 隨機(jī)生成256 位密鑰對(duì)k1、k2,執(zhí)行哈希算法獲得對(duì)稱加密密鑰:k=SHA256(k1⊕k2).

        ② DO 調(diào)用智能合約在區(qū)塊鏈發(fā)布數(shù)據(jù)集元數(shù)據(jù).

        ③ DR 調(diào)用智能合約瀏覽數(shù)據(jù)集元數(shù)據(jù),查看數(shù)據(jù)集詳細(xì)描述信息.

        ④ DR 創(chuàng)建一筆交易向DO 發(fā)送訪問(wèn)請(qǐng)求,訪問(wèn)請(qǐng)求包括目標(biāo)數(shù)據(jù)集標(biāo)識(shí)名和目標(biāo)數(shù)據(jù)集MD5 值.

        ⑤ DO 收到訪問(wèn)請(qǐng)求后,調(diào)用智能合約將密鑰k1存儲(chǔ)在鏈數(shù)據(jù)庫(kù)上,設(shè)置訪問(wèn)權(quán)限僅對(duì)DR 開放訪問(wèn).

        ⑥ DR 調(diào)用智能合約從鏈數(shù)據(jù)庫(kù)中獲取密鑰k1.

        ⑦ AC 執(zhí)行CP-ABE 初始化算法,輸入安全參數(shù)和屬性空間U,生成系統(tǒng)公鑰PSK和系統(tǒng)主密鑰MSK.

        ⑧ AC 通過(guò)智能合約將系統(tǒng)公鑰PSK存儲(chǔ)在鏈數(shù)據(jù)庫(kù)上,將訪問(wèn)權(quán)限默認(rèn)設(shè)置為被所有節(jié)點(diǎn)賬戶訪問(wèn).

        ⑨ DO 和DR 調(diào)用智能合約從鏈數(shù)據(jù)庫(kù)獲取系統(tǒng)公鑰PSK.

        ⑩ DO 執(zhí)行CP-ABE 加密算法.輸入系統(tǒng)公鑰PSK、密鑰k2和訪問(wèn)策略policy,生成密文k′2.其中,訪問(wèn)策略的有效時(shí)間T設(shè)置為:T≥1552312182∪T≤1583848182.

        ? DO 調(diào)用智能合約將密文k′2存儲(chǔ)在鏈數(shù)據(jù)庫(kù)上,添加訪問(wèn)限制僅對(duì)DR 開放.

        ? DR 調(diào)用智能合約從鏈數(shù)據(jù)庫(kù)獲取密文k′2.

        ? DR 調(diào)用智能合約將其帶有當(dāng)前時(shí)間的屬性集合A存儲(chǔ)在鏈數(shù)據(jù)庫(kù)上,并添加訪問(wèn)限制僅對(duì)AC 開放.

        ? AC 調(diào)用智能合約從鏈數(shù)據(jù)庫(kù)獲取屬性集合A.

        ? AC 執(zhí)行CP-ABE 密鑰生成算法,輸入系統(tǒng)主密鑰MSK,系統(tǒng)公鑰PSK和屬性集合A,生成用戶密鑰USK.

        ? AC 調(diào)用智能合約將USK存儲(chǔ)在鏈數(shù)據(jù)庫(kù)上,添加訪問(wèn)限制僅對(duì)DR 開放.

        ? DR 調(diào)用智能合約從鏈數(shù)據(jù)庫(kù)獲取USK.

        ? DR 執(zhí)行CP-ABE 解密算法,輸入系統(tǒng)公鑰PSK、用戶密鑰USK和密文k2′,若DR 的屬性集合滿足密文中的訪問(wèn)策略policy,則自動(dòng)解密密文獲得密鑰k2,從執(zhí)行哈希運(yùn)算獲得對(duì)稱加密密鑰:k=SHA256(k1⊕k2).否則,無(wú)權(quán)訪問(wèn)數(shù)據(jù)集.

        3.3 智能合約算法細(xì)節(jié)

        DOB 框架調(diào)用的智能合約共有12 個(gè)功能入口,其算法描述如下:

        (1)發(fā)布元數(shù)據(jù):此算法只有DO 才能執(zhí)行.DO 創(chuàng)建一個(gè)多索引表,定義元數(shù)據(jù)所有字段的數(shù)據(jù)類型,將數(shù)據(jù)集標(biāo)識(shí)名設(shè)置為多索引表的主索引,最后把輸入的元數(shù)據(jù)序列化,存儲(chǔ)在多索引表中.

        算法1.發(fā)布元數(shù)據(jù)輸入:元數(shù)據(jù)(metadata),數(shù)據(jù)集標(biāo)識(shí)名(dataset’s identifier)輸出:空值?1.if vertify(DO’s account) false then 2.throw;3.end 4.else 5.typedef a multi-index table 6.set dataset’s identifier of metadata as index 7.serialize (metadata)8.break;9.end

        (2)查詢?cè)獢?shù)據(jù):此算法由DR 執(zhí)行.DR 根據(jù)數(shù)據(jù)集標(biāo)識(shí)名查找對(duì)應(yīng)的多索引表中的數(shù)據(jù)對(duì)象,如果查找成功,返回?cái)?shù)據(jù)集元數(shù)據(jù).否則,查找失敗.

        算法2.查詢?cè)獢?shù)據(jù)輸入:數(shù)據(jù)集標(biāo)識(shí)名(dataset’s identifier)輸出:元數(shù)據(jù)(metadata)?1.metadata find (dataset’s identifier)2.if metadata is null then 3.throw;4.end 5.else 6.return metadata 7.end

        (3)序列化密鑰k1:此算法由DO 執(zhí)行.DO 創(chuàng)建一個(gè)多索引表,將DO 節(jié)點(diǎn)賬戶名設(shè)置為多索引表的主索引,將輸入的密鑰k1序列化,存儲(chǔ)在多索引表中,最后設(shè)置多索引表訪問(wèn)權(quán)限僅對(duì)DR 開放.

        算法3.序列化密鑰k1輸入:密鑰k1,DO 節(jié)點(diǎn)賬戶(DO’s account)輸出:布爾值(bool)1.typedef a multi-index table 2.set DO’s account as index 3.serialize (k1)?4.authorizeUsers(DR’s account) true 5.return true;6.end

        (4)提取密鑰k1:此算法只有DR 才能執(zhí)行.算法初始會(huì)驗(yàn)證運(yùn)行節(jié)點(diǎn)賬戶是否屬于DR,若驗(yàn)證不成功,則終止算法.若驗(yàn)證成功,DR 根據(jù)DO 節(jié)點(diǎn)賬戶名查找對(duì)應(yīng)的多索引表中的密鑰k1,如果查找成功,提取密鑰k1.否則,提取失敗.

        算法4.提取密鑰k1輸入:DO 節(jié)點(diǎn)賬戶(DO’s account)輸出:密鑰k1?1.if vertify (DR’s account) false then 2 throw;3 end 4 else?5 k1 find (DO’s account)6 if k1 is null then 7 throw;8 else 9 return k1 10 end 11 end

        (5)序列化系統(tǒng)公鑰:此算法由AC 執(zhí)行.AC 創(chuàng)建一個(gè)多索引表,將其節(jié)點(diǎn)賬戶名設(shè)置為多索引表的主索引,并將系統(tǒng)公鑰序列化,存儲(chǔ)在多索引表.

        算法5.序列化系統(tǒng)公鑰輸入:系統(tǒng)公鑰(PSK),AC 節(jié)點(diǎn)賬戶(AC’s account)輸出:空值1.typedef a multi-index table 2.set AC’s account as index 3.serialize (PSK)4.break;5.end

        (6)提取系統(tǒng)公鑰:此算法由DO 和DR 執(zhí)行.根據(jù)AC 節(jié)點(diǎn)賬戶名查找對(duì)應(yīng)多索引表的系統(tǒng)公鑰,若查找成功則提取系統(tǒng)公鑰.否則,提取失敗.

        算法6.提取系統(tǒng)公鑰輸入:AC 節(jié)點(diǎn)賬戶(AC’s account)輸出:系統(tǒng)公鑰(PSK)?1.PSK find (AC’s account)2.if PSK is null then 3.throw;4.end 5.else 6.return PSK 7.end

        (7)序列化密文k′2:此算法由DO 執(zhí)行.DO 創(chuàng)建一個(gè)多索引表,將其節(jié)點(diǎn)賬戶名設(shè)置為多索引表的主索引,并把密文k′2序列化,存儲(chǔ)在多索引表中.最后設(shè)置多索引表訪問(wèn)權(quán)限僅對(duì)DR 開放.

        算法7.序列化密文k′2輸入:密鑰k1,DO 節(jié)點(diǎn)賬戶(DO’s account)輸出:布爾值(bool)1.typedef a multi-index table 2.set DO’s account as index k′2 3.serialize ( )?4.authorizeUsers (DR’s account) true 5.return true;6.end

        (8)提取密文k′2:此算法只有DR 才能執(zhí)行.初始情況下,算法會(huì)驗(yàn)證運(yùn)行節(jié)點(diǎn)賬戶是否屬于DR,若驗(yàn)證不成功,則終止算法.若驗(yàn)證成功,DR 根據(jù)DO 節(jié)點(diǎn)賬戶名查找對(duì)應(yīng)的多索引表中的密文k′2,如果查找成功,提取密文k′2.否則,提取失敗.

        算法8.提取密文k′2輸入:DO 節(jié)點(diǎn)賬戶(DO’s account)k′2輸出:密文?1.if vertify (DR’s account) false then 2.throw;3.end 4.else k′2?5.find (DO’s account)k′2 6.if is null then 7.throw;8.else k′2 9.return 10.end 11.end

        (9)序列化用戶屬性:此算法由DR 執(zhí)行.DR 創(chuàng)建一個(gè)多索引表,定義用戶屬性所有字段的數(shù)據(jù)類型,將其節(jié)點(diǎn)賬戶名設(shè)置為多索引表的主索引,最并將用戶屬性序列化,存儲(chǔ)在多索引表中.最后設(shè)置多索引表訪問(wèn)權(quán)限僅對(duì)AC 開放.

        算法9.序列化用戶屬性輸入:DR 節(jié)點(diǎn)賬戶(DR’s account),用戶屬性(attribute)輸出:布爾值(bool)1.typedef a multi-index table 2.set DR’s account as index 3.serialize (attribute)?4.authorizeUsers(AC’s account) true 5.return true;6.end

        (10)提取用戶屬性:此算法只有AC 才能執(zhí)行.算法初始會(huì)驗(yàn)證運(yùn)行節(jié)點(diǎn)是否為AC 節(jié)點(diǎn),若驗(yàn)證不成功,則終止算法.若驗(yàn)證成功,AC 根據(jù)DR 節(jié)點(diǎn)賬戶名查找對(duì)應(yīng)的多索引表中的用戶屬性,如果查找成功,提取用戶屬性.否則,提取失敗.

        算法10.提取用戶屬性輸入:DR 節(jié)點(diǎn)賬戶(DR’s account)輸出:用戶屬性(attribute)?1.if vertify (AC’s account) false then 2.throw;3.end 4.else?5.attribute find (DR’s account)6.if attribute is null then 7.throw;8.else 9.return attribute 10.end 11.end

        (11)序列化用戶密鑰:此算法由AC 執(zhí)行.AC 創(chuàng)建一個(gè)多索引表,將自身節(jié)點(diǎn)賬戶名設(shè)置為該多索引表的主索引,并將用戶密鑰序列化,存儲(chǔ)在多索引表中.最后設(shè)置多索引表訪問(wèn)權(quán)限僅對(duì)DR 開放.

        算法11.序列化用戶密鑰輸入:AC 節(jié)點(diǎn)賬戶(AC’s account),用戶密鑰(USK)輸出:布爾值(bool)1.typedef a multi-index table 2.set AC’s account as index 3.serialize (USK)?4.authorizeUsers (DR’s account) true 5.return true;6.end

        (12)提取用戶密鑰:此算法只有DR 才能執(zhí)行.算法初始會(huì)驗(yàn)證運(yùn)行節(jié)點(diǎn)是否為DR 節(jié)點(diǎn),若驗(yàn)證不成功,則終止算法.若驗(yàn)證成功,DR 根據(jù)AC 節(jié)點(diǎn)賬戶名查找對(duì)應(yīng)多索引表中的用戶密鑰,如果查找成功,提取用戶密鑰.否則,提取失敗.

        算法12.提取用戶密鑰輸入:AC 節(jié)點(diǎn)賬戶(AC’s account)輸出:用戶密鑰(USK)?1.if vertify (DR’s account) false then 2.throw;3.end 4.else?5.USK find (AC’s account)6.if USK is null then 7.throw;8.else 9.return USK 10.end 11.end

        4 實(shí)驗(yàn)結(jié)果及分析

        4.1 實(shí)驗(yàn)準(zhǔn)備

        實(shí)驗(yàn)部署在1 臺(tái)PC 機(jī)上,其配置如下:Intel Xeon(R) E5-2407 v2(2.4 GHz)8 核CPU,16 GB 內(nèi)存.操作系統(tǒng)采用Ubuntu 16.04.10 LTS desktop,區(qū)塊鏈采用EOSIO 平臺(tái)部署,智能合約采用C++開發(fā),密鑰采用Openssl 工具產(chǎn)生,密文—策略基于屬性的加密采用基于雙線性對(duì)的密碼函數(shù)庫(kù)(Pairing-Based Cryptography library,PBC)實(shí)現(xiàn).

        實(shí)驗(yàn)選取1999年1月至2008年12月期間的“130 家醫(yī)院糖尿病患者病例”數(shù)據(jù)集[19],包含一個(gè)diabetic_data.csv 文件,存有10 萬(wàn)條糖尿病患者的醫(yī)療檔案,包括醫(yī)療卡號(hào)、性別、年齡、治療情況等隱私信息.根據(jù)diabetic_data 數(shù)據(jù)集的特點(diǎn),將數(shù)據(jù)集元數(shù)據(jù)分為外部描述核自定義的內(nèi)部描述兩部分,外部描述按照數(shù)據(jù)目錄詞匯表標(biāo)準(zhǔn)[20]定義,如表1.內(nèi)部描述選用自定義描述詞匯,如表2.diabetic_data 數(shù)據(jù)集元數(shù)據(jù),如圖3.

        初始條件下,在區(qū)塊鏈網(wǎng)絡(luò)上設(shè)置兩個(gè)用戶節(jié)點(diǎn)和一個(gè)AC 節(jié)點(diǎn),每個(gè)用戶節(jié)點(diǎn)既是數(shù)據(jù)擁有者,又是數(shù)據(jù)請(qǐng)求者.實(shí)驗(yàn)通過(guò)控制變量,在同一環(huán)境上分別運(yùn)行Timely CPABE with Blockchain 方案和DOB 框架,二者皆采用相同的訪問(wèn)策略和屬性集合.實(shí)驗(yàn)一共分為7 次,每次實(shí)驗(yàn)比上次增加5 種屬性數(shù)量,每次實(shí)驗(yàn)重復(fù)10 遍,最后取得平均值.

        表1 diabetic_data 數(shù)據(jù)集外部描述詞匯

        表2 diabetic_data 數(shù)據(jù)集內(nèi)部描述詞匯

        圖3 diabetic_data 數(shù)據(jù)集元數(shù)據(jù)

        4.2 實(shí)驗(yàn)結(jié)果及分析

        4.2.1 運(yùn)行時(shí)間分析

        經(jīng)實(shí)驗(yàn)測(cè)試,兩種方案的系統(tǒng)運(yùn)行時(shí)間如圖4.

        圖4 系統(tǒng)運(yùn)行時(shí)間示意圖

        從圖4可以看出,隨著屬性數(shù)量的增加,所需傳輸?shù)拿芪暮陀脩裘荑€的空間大小逐漸增大,使得二者的系統(tǒng)運(yùn)行時(shí)間逐步增加.相對(duì)于Timely CPABE with Blockchain 方案,DOB 框架的平均系統(tǒng)運(yùn)行時(shí)間增加了31.18%,主要原因是采用序列化方法在鏈數(shù)據(jù)庫(kù)上存儲(chǔ)和傳輸密文、相關(guān)密鑰和用戶屬性,增加鏈數(shù)據(jù)庫(kù)的讀寫次數(shù).但是,系統(tǒng)運(yùn)行時(shí)間遠(yuǎn)遠(yuǎn)小于1 秒,仍處于合理范圍之內(nèi).

        4.2.2 安全性分析

        Timely CPABE with Blockchain 方案將合法請(qǐng)求者的用戶屬性公開存取在區(qū)塊,惡意節(jié)點(diǎn)可以盜用合法者的用戶屬性生成USK,從而將獲得的密鑰k2與密鑰k1結(jié)合生成數(shù)據(jù)加密密鑰k.DOB 通過(guò)在鏈數(shù)據(jù)庫(kù)上設(shè)置訪問(wèn)權(quán)限,只有授權(quán)的數(shù)據(jù)請(qǐng)求者才能提取出密文、用戶密鑰USK和密鑰k1,因此DOB 框架能降低USK被盜用的風(fēng)險(xiǎn).

        5 結(jié)論與展望

        根據(jù)數(shù)據(jù)共享的安全需求,本文提出一種基于CPABE 和區(qū)塊鏈的數(shù)據(jù)安全共享框架,通過(guò)帶有訪問(wèn)權(quán)限的智能合約部署密文—策略基于屬性的加密,提高了獲取和跟蹤共享數(shù)據(jù)訪問(wèn)許可的自動(dòng)化程度,使數(shù)據(jù)的管理使用權(quán)真正掌握在數(shù)據(jù)擁有者手中.實(shí)驗(yàn)結(jié)果表明,DOB 框架的綜合性能比Jemel 等人提出的Timely CPABE with Blockchain 方案表現(xiàn)得要好,具有一定的積極意義.由于訪問(wèn)策略是數(shù)據(jù)擁有者事先定義的,DOB 框架的訪問(wèn)機(jī)制相對(duì)固定,適用于數(shù)據(jù)集自身更新頻度小、共享范圍相對(duì)確定的場(chǎng)景,以避免數(shù)據(jù)加密的密鑰頻繁更換.當(dāng)然,方案仍存在一些值得完善的地方,例如屬性靈活撤銷、高效訪問(wèn)結(jié)構(gòu)的設(shè)計(jì)以及訪問(wèn)策略動(dòng)態(tài)更新,以應(yīng)用于動(dòng)態(tài)共享場(chǎng)景,將是下一步的研究方向.

        猜你喜歡
        密文密鑰加密
        探索企業(yè)創(chuàng)新密鑰
        一種針對(duì)格基后量子密碼的能量側(cè)信道分析框架
        一種支持動(dòng)態(tài)更新的可排名密文搜索方案
        基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
        密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
        一種基于熵的混沌加密小波變換水印算法
        一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
        基于ECC的智能家居密鑰管理機(jī)制的實(shí)現(xiàn)
        認(rèn)證加密的研究進(jìn)展
        云存儲(chǔ)中支持詞頻和用戶喜好的密文模糊檢索
        毛片免费在线观看网址| 国产福利一区二区三区在线视频| 无码人妻一区二区三区免费视频| 国产乱子伦视频大全| 久热爱精品视频在线观看久爱| 国内精品少妇久久精品| 蜜桃成熟时在线观看免费视频| 久久精品黄aa片一区二区三区| 亚洲制服中文字幕第一区| 亚洲一区日本一区二区| av网站在线观看亚洲国产| 国精产品一区一区三区有限公司杨 | 国产丝袜美腿诱惑在线观看| av在线免费观看网站,| wwww亚洲熟妇久久久久| 国产高清视频91| 熟女丝袜美腿亚洲一区二区三区 | 极品 在线 视频 大陆 国产| 亚洲av男人免费久久| 欧美又大粗又爽又黄大片视频| 亚洲av永久无码天堂网毛片 | 国产精品一区二区久久精品蜜臀| 亚洲综合中文字幕综合| 朝鲜女人大白屁股ass| 中文字幕亚洲综合久久菠萝蜜| 亚洲av无码1区2区久久| 中文岛国精品亚洲一区| 亚洲一区二区懂色av| 潮喷失禁大喷水aⅴ无码| 国产精品 视频一区 二区三区| 国产不卡一区二区三区视频| 中文字幕乱码熟女人妻在线| 亚洲国产精品va在线播放| 亚洲AV无码一区二区三区性色学| 街拍丝袜美腿美女一区| 亚洲欧美牲交| 丁香六月婷婷综合| 亚洲不卡毛片在线观看| 久久久久九九精品影院| 天堂а√在线最新版中文| 中文字幕亚洲精品第一页|