• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2019-11-15 07:06:12陳麗煒范冰冰
    計算機系統(tǒng)應用 2019年11期
    關鍵詞:密文密鑰加密

    黃 穗,陳麗煒,范冰冰

    (華南師范大學 計算機學院,廣州 510631)

    1 引言

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

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

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

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

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

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

    2 框架相關技術

    2.1 區(qū)塊鏈

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

    圖1 區(qū)塊鏈結構示意圖

    2.2 智能合約

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

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

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

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

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

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

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

    3 DOB 框架

    3.1 系統(tǒng)模型

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

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

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

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

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

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

    3.1.2 密鑰生成模塊

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

    3.1.3 策略管理模塊

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

    3.1.4 傳輸模塊

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

    3.2 運作流程

    如圖2所示,DOB 框架的運作流程為:

    圖2 DOB 框架運作流程圖

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

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

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

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

    ⑤ DO 收到訪問請求后,調用智能合約將密鑰k1存儲在鏈數(shù)據(jù)庫上,設置訪問權限僅對DR 開放訪問.

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

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

    ⑧ AC 通過智能合約將系統(tǒng)公鑰PSK存儲在鏈數(shù)據(jù)庫上,將訪問權限默認設置為被所有節(jié)點賬戶訪問.

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

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

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

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

    ? DR 調用智能合約將其帶有當前時間的屬性集合A存儲在鏈數(shù)據(jù)庫上,并添加訪問限制僅對AC 開放.

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

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

    ? AC 調用智能合約將USK存儲在鏈數(shù)據(jù)庫上,添加訪問限制僅對DR 開放.

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

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

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

    DOB 框架調用的智能合約共有12 個功能入口,其算法描述如下:

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

    算法1.發(fā)布元數(shù)據(jù)輸入:元數(shù)據(jù)(metadata),數(shù)據(jù)集標識名(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)查詢元數(shù)據(jù):此算法由DR 執(zhí)行.DR 根據(jù)數(shù)據(jù)集標識名查找對應的多索引表中的數(shù)據(jù)對象,如果查找成功,返回數(shù)據(jù)集元數(shù)據(jù).否則,查找失敗.

    算法2.查詢元數(shù)據(jù)輸入:數(shù)據(jù)集標識名(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)建一個多索引表,將DO 節(jié)點賬戶名設置為多索引表的主索引,將輸入的密鑰k1序列化,存儲在多索引表中,最后設置多索引表訪問權限僅對DR 開放.

    算法3.序列化密鑰k1輸入:密鑰k1,DO 節(jié)點賬戶(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í)行.算法初始會驗證運行節(jié)點賬戶是否屬于DR,若驗證不成功,則終止算法.若驗證成功,DR 根據(jù)DO 節(jié)點賬戶名查找對應的多索引表中的密鑰k1,如果查找成功,提取密鑰k1.否則,提取失敗.

    算法4.提取密鑰k1輸入:DO 節(jié)點賬戶(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)建一個多索引表,將其節(jié)點賬戶名設置為多索引表的主索引,并將系統(tǒng)公鑰序列化,存儲在多索引表.

    算法5.序列化系統(tǒng)公鑰輸入:系統(tǒng)公鑰(PSK),AC 節(jié)點賬戶(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é)點賬戶名查找對應多索引表的系統(tǒng)公鑰,若查找成功則提取系統(tǒng)公鑰.否則,提取失敗.

    算法6.提取系統(tǒng)公鑰輸入:AC 節(jié)點賬戶(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)建一個多索引表,將其節(jié)點賬戶名設置為多索引表的主索引,并把密文k′2序列化,存儲在多索引表中.最后設置多索引表訪問權限僅對DR 開放.

    算法7.序列化密文k′2輸入:密鑰k1,DO 節(jié)點賬戶(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í)行.初始情況下,算法會驗證運行節(jié)點賬戶是否屬于DR,若驗證不成功,則終止算法.若驗證成功,DR 根據(jù)DO 節(jié)點賬戶名查找對應的多索引表中的密文k′2,如果查找成功,提取密文k′2.否則,提取失敗.

    算法8.提取密文k′2輸入:DO 節(jié)點賬戶(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)建一個多索引表,定義用戶屬性所有字段的數(shù)據(jù)類型,將其節(jié)點賬戶名設置為多索引表的主索引,最并將用戶屬性序列化,存儲在多索引表中.最后設置多索引表訪問權限僅對AC 開放.

    算法9.序列化用戶屬性輸入:DR 節(jié)點賬戶(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í)行.算法初始會驗證運行節(jié)點是否為AC 節(jié)點,若驗證不成功,則終止算法.若驗證成功,AC 根據(jù)DR 節(jié)點賬戶名查找對應的多索引表中的用戶屬性,如果查找成功,提取用戶屬性.否則,提取失敗.

    算法10.提取用戶屬性輸入:DR 節(jié)點賬戶(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)建一個多索引表,將自身節(jié)點賬戶名設置為該多索引表的主索引,并將用戶密鑰序列化,存儲在多索引表中.最后設置多索引表訪問權限僅對DR 開放.

    算法11.序列化用戶密鑰輸入:AC 節(jié)點賬戶(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í)行.算法初始會驗證運行節(jié)點是否為DR 節(jié)點,若驗證不成功,則終止算法.若驗證成功,DR 根據(jù)AC 節(jié)點賬戶名查找對應多索引表中的用戶密鑰,如果查找成功,提取用戶密鑰.否則,提取失敗.

    算法12.提取用戶密鑰輸入:AC 節(jié)點賬戶(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 實驗結果及分析

    4.1 實驗準備

    實驗部署在1 臺PC 機上,其配置如下: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 平臺部署,智能合約采用C++開發(fā),密鑰采用Openssl 工具產(chǎn)生,密文—策略基于屬性的加密采用基于雙線性對的密碼函數(shù)庫(Pairing-Based Cryptography library,PBC)實現(xiàn).

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

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

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

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

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

    4.2 實驗結果及分析

    4.2.1 運行時間分析

    經(jīng)實驗測試,兩種方案的系統(tǒng)運行時間如圖4.

    圖4 系統(tǒng)運行時間示意圖

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

    4.2.2 安全性分析

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

    5 結論與展望

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

    猜你喜歡
    密文密鑰加密
    探索企業(yè)創(chuàng)新密鑰
    一種針對格基后量子密碼的能量側信道分析框架
    一種支持動態(tài)更新的可排名密文搜索方案
    基于模糊數(shù)學的通信網(wǎng)絡密文信息差錯恢復
    密碼系統(tǒng)中密鑰的狀態(tài)與保護*
    一種基于熵的混沌加密小波變換水印算法
    一種對稱密鑰的密鑰管理方法及系統(tǒng)
    基于ECC的智能家居密鑰管理機制的實現(xiàn)
    電信科學(2017年6期)2017-07-01 15:45:06
    認證加密的研究進展
    云存儲中支持詞頻和用戶喜好的密文模糊檢索
    岳池县| 泰宁县| 裕民县| 手游| 香港| 绥江县| 上虞市| 长沙市| 麟游县| 榕江县| 清河县| 太湖县| 广水市| 疏附县| 黔西| 汾西县| 涿鹿县| 应用必备| 绥江县| 海伦市| 东丽区| 元谋县| 饶平县| 丹寨县| 伊金霍洛旗| 西乌珠穆沁旗| 和政县| 旺苍县| 仙居县| 二连浩特市| 肥乡县| 武鸣县| 恩施市| 伊宁市| 汤阴县| 乐清市| 安宁市| 岳西县| 泰州市| 渝中区| 苍山县|