基于區塊鏈的數據共享訪問控制模型
摘 要:
在大數據時代,不同企業或者部門間迫切需要進行數據共享。針對共享數據如何進行細粒 度控制、數據的追溯和機密性保護等問題,提出了基于區塊鏈的數據共享訪問控制模型。本模型首 先采用區塊鏈技術保證數據溯源和不可篡改;其次使用聯盟鏈的智能合約機制,進行粗粒度的訪問 控制,減少并過濾區塊鏈的惡意攻擊;最后基于改進的權重屬性基加密機制對數據進行細粒度的控 制與和機密性保護,并減少數據加解密時間開銷。通過安全性分析和實驗仿真結果表明,該模型很好地解決了數據共享問題。
內容目錄:
1 預備知識
1.1 訪問結構
1.2 同態加密算法
1.3 區塊鏈技術
2 數據共享訪問控制模型
3 方案描述
3.1 系統初始化階段
3.2 數據存儲階段
3.3 數據搜索與共享階段
4 模型分析
4.1 安全性分析
4.2 模型的對比
5 實驗與結果分析
6 結 語
在大數據時代背景下,隨著互聯網技術的發展,不同的企業或者部門之間數據共享成了一個迫切需 求。在數據共享領域,研究人員針對數據的隱私和 安全性,從醫療、物聯網、云存儲等應用場景進行 了一系列研究。文獻 [1] 在 2007 年提出一種更加靈 活可實現的密文策略屬性基加密方案(Ciphertext Policy Attribute-Based Encryption,CP-ABE),其 中由屬性集作為因子關聯密鑰,由訪問策略結構樹作為因子關聯密文。文獻 [2] 驗證了基于屬性加密的多關鍵字搜索方案中外包私鑰的正確性。文獻 [3] 提出了帶權重的屬性基加密方案,通過權重訪問策略樹實現訪問控制,從而降低密文的計算 和存儲開銷。文獻 [4] 提出了一種高效的基于非對稱素數階群而構建的基于屬性基加密(Attribute- Based Encryption,ABE) 方案, 減少樹形訪問結構 中雙線性對的運算,同時降低數據屬主端的加密和數據消費者端的解密開銷。文獻 [5] 中,通過優化 同態加密算法的方案,建立加密關鍵字索引方法實 現數據的隱私保護和檢索。文獻 [6] 中,提出了基 于可搜索加密和同態加密的匹配方法,解決物聯網云中數據的隱私泄露。文獻 [7] 提出將數據分類 理,如用戶的個人隱私相關數據放入用戶鏈中,需 要特殊處理的交易記錄以及分享的病例和診療方法放入外部鏈中。通過這個方法實現數據的共享,并通過代理重加密保證數據的安全可靠。文獻[8] 提出使用可搜索加密技術(Public Key Searchable Encryption,PEKS) 進行關鍵字的加密 和搜索, CP-ABE 機制和數字簽名技術實現數據的細粒度訪問控制和完整性保護。文獻 [9] 提出了一種基于區塊鏈的電子病例數據搜索方案,基于屬性加密機制實現了云數據的細粒度訪問控制,并利用屬性簽名 技術驗證了電子病例數據源的真實性。文獻 [10] 提 出了一種面向電子健康記錄的基于密文策略的權重屬性加密方案,通過分別計算屬性值和權重屬性值的 CP-ABE 加解密,實現數據的細粒度訪問控制。然而以上數據共享模型或者方案中,存在如下 問題:
(1)應用軟件惡意查詢等情況下,無法實現 阻攔;(2)數據搜索以關鍵字為索引,無法實現數 據預覽摘要,必須下載數據文件,造成寬度開銷;(3)不同企業或者單位,相同級別權限不一 致的數據訪問控制問題。
本文針對以上問題,提出一種基于區塊鏈的數 據共享訪問控制模型,通過利用聯盟鏈的鏈下計算鏈上存儲方式實現數據的共享和可追溯,通過基于權重屬性基的加密機制保證了數據的機密性和細粒 度訪問控制。
1.
預備知識
1.1 訪問結構
1.1.1 定義 1:訪問結構
定義訪問結構 [11]:設
為參與者集合, ?B,C, 若 B ? C 且 B ? C , 則 C ∈ A ,稱集合
是單調的。一個訪問結構A 是一個非空集合
的子集, 即
。 在 A 中的集合稱為授權集合,不在A 中的集合稱為 非授權集合。
1.1.2 定義 2:權重門限訪問結構
定義權重門限訪問結構 :設 U為全體屬性的集合,令 ω ∶ U→N為一個權重函數 ,T ∈N為門限值, 定義
,則
為N的權重門限訪問結構。
1.1.3 定義 3:屬性分割算法
屬性分割算法的輸入是一個屬性集合,系統根據屬性的重要性將屬性分割, 并賦予不同的權值。對于屬性集
中的每個屬性
允許系統 中的最大權值為
,權值為整數。將屬性集中 的每個屬性
依據權重進行分割,分割后屬性
對 應于
, 設定分割后的最小份額為 1, 其構成的集合稱為屬性權重分割集
。
1.2 同態加密算法
Paillier 等人提出了新的同態加密算法—— Paillier 公鑰加密。該算法具有同態加法的性質,并在隨機語言模型下具有抵抗適應性攻擊的特點。算法流程如下文所述。
(1)密鑰生成。首先隨機選取兩個大素數 p 和 q,這兩個大素數必須滿足條件
; 其 次 計 算 n=pq 和
; 最后再次隨機選擇整數
,必須滿足條件 式
,其中 L 可以表示為式
。那么可得公鑰就是
,私鑰就是
。
(2)加密算法。對于一個給定的明文,首先 隨機選擇一個整數
,公鑰為
,那么加密 結果為
。
(3)解密算法。對于一個給定的密文
, 使用用戶私鑰
,解密結果為
。
1.3 區塊鏈技術
區塊鏈技術是一種去中心化、去信任化的分布式數據庫技術方案。采用如圖 1 所示的 Merkle 樹的結構,按照區塊生成的時間順序鏈接一起,并通過區塊頭的哈希值保證區塊的完整性。

圖 1 Merkle 樹
區塊鏈的智能合約是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議,主要包括代碼、合約值、合約狀態 3 個部分,位于區塊鏈的中間協議層。智能合約的工作原理如圖 2 所示,通過判斷合約的狀態值是否滿足預定義的一系列的場景和條 件等,如果得到滿足就及時地響應相關動作。

圖 2 智能合約
2.
數據共享訪問控制模型
基于區塊鏈的數據訪問控制模型如圖 3 所示,涉及可信中心(Trust Centre, TC)、數據擁有者(Data Owner,DO)、 數 據請求 者(Data Request User, DRU) 、聯盟鏈(Consortium Blackchain, CB) 、云 儲存服務商(Cloud Storage Service Provider,CSP)5 個主體。為了加強數據的監管和可追溯性,保證接入節點的安全性本模型采用半中心化的 CB。此外,本模型采用全同態加密算法將數據摘要和關鍵字進行加密保護; 利用 CP-ABE 機制實現原始文件的細粒度訪問控制和機密性要求;通過簽名值對比判定數據的一致性。在數據的檢索方面,首先通過智能合約機制優先過濾一部分非法訪問,其次將關鍵字索引密文引入CB中實現快速檢索。

圖3 數據共享訪問控制模型
(1)TC負責向首次進入CB的每個使用者頒發數字證書。每個數據使用者向 TC 提交相關注冊信息(身份信息、單位、職務、密級等) ,只 有 TC 身份認證授權后才能獲得公私鑰以及屬性私 鑰和數字證書。(2) DO 主要將數據共享給其他 DRU。主要通過制定智能合約規則和訪問控制策略結構樹實現 數據的細粒度訪問控制和機密性,將數據信息摘要提取并加密模糊處理實現數據可預覽。(3) DRU 若要獲取數據,則需滿足相應權限才能訪問數據。(4) CB節點由不同部門單位、同部門不同級別單位、其他研究性機構等構成,并共同維護區塊 鏈。CB 存儲數據摘要密文和元數據,以防止數據 被惡意篡改。(5)CSP 提供存儲加密數據功能。
3.
方案描述
基于區塊鏈的數據訪問控制模型,主要分為系 統初始化階段、數據存儲階段和數據搜索與共享階 段 3 個階段。
3.1 系統初始化階段
本階段主要包含 CP-AEB 生成密鑰和 Paillier 算法生成密鑰。
CP-AEB 生成密鑰包含 Setup 和 keyGen兩個步驟。
(1)Setup 步 驟。TC 輸 入 安 全 參 數λ 和 屬 性 集 A, 輸 出 公 開 參 數 PK 和 主 密 鑰
。輸入安全參數
,設p 是一大素數,定義
是
階數為
的兩個乘法循環群,令
為群 G0生成元,定義雙線性映 射
。安全參數 λ決定群的大小。TC 隨機選擇兩個隨機數
,計算
和
,生成公開參數
和主密鑰
。
(2)KeyGen 步 驟。
表 示 系 統中用戶的屬性集合;A* 是屬性 A 對應的權重 屬性分割集,
, b 是屬性 A* 對應的 權重屬性分割集的和
表示系統中用戶的屬性所有參數集合。TC 輸入 DRU 以用戶的屬性所有參數集合 A' 和主密鑰 MK, 輸 出 屬 性 權 重 私 鑰
。 系 統 隨 機選取
,并為 A' 每個屬性
選擇一個隨機值
,則屬性權重私鑰為
Paillier算法生成密鑰,
, 其中
。
3.2 數據存儲階段
DO 分別計算出元數據(存儲索引密文 CT,數 據關鍵字和摘要密文 CH,原數據哈希值
), 并 將其存入 CB 中, 實現鏈下計算和鏈上存儲。具體 的計算步驟如下:
(1)從 TC 中獲取對稱密鑰 key,將明文數據 M對稱加密得到密文
。將
上傳至云存儲服務器,獲得存儲位置索引loc。
(2)構造訪問策略 T,如圖 4 所示,先通過預處理,將每個屬性權重相加,得到權重值的和b作為葉子節點,從而減少 CP-ABE 計算的開銷。

圖 4 訪問策略權限樹
(3) 通過 CP-ABE, 將訪問策略 T、存儲位 置索引loc、對稱密鑰 key,通過加密算法得到密 文
,設根節點滿足
是屬性所有參數集合,則:

(4)選隨機數
,計算關鍵子和數據摘 要的同態加密密文
。
(5)計算元數據的哈希值
(6)將元數據格式存入 CB 中。
3.3 數據搜索與共享階段
DRU 訪問數據的流程如圖 5 所示,先通過智 能合約機制去驗證用戶的身份密級和文件的保護期 限; 如果滿足的情況下,再查詢 CB 的數據關鍵字 和摘要信息;并通過 CP-ABE 驗證訪問策略結構樹 驗證通過后解密得到數據的索引地址和對稱密鑰; 從云服務器下載密文數據,使用對稱密鑰解密得到明文,并對比哈希值確保數據的完整性。具體的步驟如下文所述。

圖 5 數據搜索與共享訪問流程
(1) DO 設定智能合約規則,設置數據的密級 和保密期限。DRU 調用智能合約驗證自身密級和數據的密級一致性, 并針對數據的保密期限進行審查, 符合智能合約規定的密級和保密期限執行步驟(2), 否則直接拒絕訪問。設定智能合約的定時輪詢檢測功能,如果文件期限有問題,則直接提醒數據的擁 有者, 針對 CB 元數據進行更改重新上鏈。具體的算法偽代碼如下文所述。


(2) DRU 在 CB 查詢中關鍵字或摘要的密文,獲取數據文件索引密文 CT 和哈希值
使用屬性權重私鑰SK 驗證 DRU 是否滿足訪問控 制樹 T,其中 q 是 T 的一個節點,設 γ 是訪問控制樹 T 的一個根節點,如果滿足的情況下,計算
。獲得原始數據的文件索引 loc 和對稱密鑰
(3)從云存儲服務器下載數據密文
,并解密數據得到明文
(4)計算哈希值,校驗數據的一致性。
4.
模型分析
4.1 安全性分析
本模型采用鏈下計算鏈上存儲的數據共享方式,因此從數據鏈下加密計算方向和鏈上存儲方向分析數據的安全性。
4.1.1 加密算法安全性
在本模型中,結合數據加密標準(Data Encryption Standard,DES)、Paillier 算 法、CP-ABE 等 多 種 加密技術,其中 DES 算法可以保證算法的安全性。Paillier 同態加密算法 證明了在隨機語言模型下,該算法能夠抵抗適應性攻擊,具有很好的同態特性;CP-ABE 算法 通過選擇屬性和選擇明文攻擊下的不可區分性(in-distinguish ability against selective access structure and chosen plaintext attack,IND-SASCPA)游戲,證明了該算法可以達到抵抗選擇明文攻擊下的安全性。本文采用權重屬性集作為葉子節點和文獻 [16] 采用普通屬性集作為葉子節點的研究方法相同,因此證明方法也相同,可以達到抵抗選擇明文攻擊下的安全性要求。
4.1.2 數據的機密性和完整性
在本模型中 DES 對稱加密保證了云服務器存儲的數據為密文,通過 Pailler 算法同態加密保證了關鍵字和數據摘要為密文,通過 CP-ABE 加密保證了數據文件索引和對稱密鑰為密文。因此,在數據流轉過程中保證了數據的機密性,并通過元數據的哈希值,保證了原文件的完整性。
4.1.3 CB 安全性分析
在本模型中采用 CB 的方式,即數據區塊通過Merkle 樹構造,并按照時間順序鏈接保證區塊消息不能任意修改,除非全網 51% 的節點被篡改。此外,本鏈中通過 TC 的監管,保證了接入節點的安全性,且本模型將關鍵字和數據摘要的密文以及地址索引和對稱密鑰密文存儲在 CB 上,因此具備防篡改能力。
4.2 模型的對比
通過對比本文數據共享處理的模型和其他場景模型的數據共享功能分析,得到表 1。可以看出,相比文獻 [5]、文獻 [6]、文獻 [10] 中的模型,本模型具有明顯優勢。相比于文獻 [8],本模型采用權重屬性基加密,可以實現更精細的粒度控制,且適用范圍更廣;本模型采用關鍵字和摘要同態加密,可以實現摘要的預覽從而減少帶寬開銷。
表1 模型對比

5.
實驗與結果分析
為了更準確地評估本模型的實際性能,本 文對 CP-ABE 算法、Pailler 算法和智能合約機制 進行實驗仿真。實驗的硬件環境:
i5-7500 3.4 GHz 的 CPU、隨機存取存儲器(Random Access Memory,RAM) 為 8 GB。實驗環境構造: 在 VMware Workstation 12 上 安 裝 Ubuntu 16.04.7; 采用 Hyperledger Fabric 的版本 v1.4, 進行重構設計智能合約。
本文在不同的屬性策略條件下,選擇 512 字節的數據,對比文獻 [10] 和本文模型的 CP-ABE 加解密開銷。如圖 6 所示,結果表明本模型在加解密方面有明顯的優勢。其中,文獻 [10] 將屬性值和屬性權重值相分離,計算了兩次 CP-ABE 加解密,而本模型采用權重屬性總計算值作為屬性因子進行加解密可以減少大量開銷。

圖 6 CP-ABE 不同方案加解密時間開銷
本文的模型是基于區塊鏈的元數據來進行 CP- ABE 加解密,因此數據的長度有限。本文選擇 256 字節和 512 字節的數據進行實驗仿真。如圖 7 所示,結果表明 CP-ABE 加解密時間開銷隨著屬性策略的 增加時間變長,但是在實際應用在可接收范圍內。

圖7 CP-ABE不同明文長度加解密時間開銷
本模型采用 Pailler 算法針對搜索關鍵字和摘要 進行加密,根據文件摘要的長度特點本文選擇長度 為 1024 字節、2048 字節、3072 字節、4096 字節進 行實驗仿真。如圖 8 所示,隨著數據長度的增加, 加解密時間增加,但是在實際應用,加密時間在可 接收范圍內。

圖 8 Pailler 加解密時間開銷
本模型通過將智能合約機制進行仿真實驗,如圖 9 所示,隨著元數據數目增加時間開銷越低,滿足實際使用需求。

圖 9 智能合約機制的時間開銷對比
6.
結 語
本文提出了一個基于區塊鏈的數據訪問控制模型,通過采用 CB 的方式,可以保證接入 CB 的節點的安全性,實現共享數據的追溯。通過模型分析和實驗仿真表明,本模型可以解決數據共享的安全和訪問控制問題。本文的主要貢獻如下:(1)由于數據在不同的企業或者部門中流轉,傳統的檢索方法是針對關鍵字相關檢索,無法預覽共享數據摘要,造成重復多次無用下載,增加寬度開銷和存儲服務器資源使用等,本模型提供了基于同態加密算法針對共享數據的摘要進行加密,保護數據摘要的機密性同時滿足預覽需求。(2)傳統的 CP-ABE 僅對數據請求者的屬性做了訪問控制,然而數據共享中,不同部門具有相同組織架構但是對數據訪問權限不同的特殊性,本模型通過增加屬性的權重,解決數據共享不同部門的訪問控制需求,并通過改進 CP-ABE 機制,減少數據加解密開銷。(3)由于共享數據的密級應小于或者等于數據請求者密級要求,本模型利用聯盟鏈智能合約機制,優先進行數據密級匹配,減少聯盟鏈中數據惡意查詢和下載的開銷。
引用本文: 尚松超 , 陳勃翰 , 顏光偉 , 等 . 基于區塊鏈的數據共享訪問控制模型 [J]. 通信技術 ,2021,54(12):2666-2672.