基於分層注意力網絡的方面情感分析
劉彥松1, 夏琦1, 李柱1, 夏虎1, 張小松1, 高建彬2
1 電子科技大學計算機科學與工程學院,四川 成都 611731
2 電子科技大學資源與環境學院,四川 成都 611731
摘要:針對人們在日益增長的數位化交互過程中越來越多地出現隱私直接或間接洩露的問題,主要研究基於區塊鏈網絡建立一套鏈上數據安全共享體系,基於密文策略的屬性加密的訪問控制算法以及同態加密算法實現鏈上數據的可靠共享,提出了一種鏈上數據共享架構,最後進行了仿真實驗,並分析了實驗結果。這項工作有效解決了惡意參與方利用區塊鏈的交易透明性進行數據分析的問題,並保證了用戶數據在共享流程中的隱私安全。
關鍵詞:數據共享;區塊鏈;基於密文策略的屬性加密;同態加密;隱私安全
論文引用格式:
劉彥松,夏琦,李柱, 等. 基於區塊鏈的鏈上數據安全共享體系研究[J]. 大數據, 2020, 6(5): 92-105.
LIU Y S, XIA QI, LI Z, et al. Research on secure data sharing system based on blockchain[J]. Big Data Research, 2020, 6(5): 92-105.
1 引言
隨著網際網路時代的發展,用戶對網絡安全的需求越來越大,生活中無時無刻不在產生大量網絡支付和社交活動等數據,而在不同的行業中,多領域、多企業的複雜交互式業務場景也會涉及多方數據的匯總,這些海量的異構數據不僅蘊含巨大價值,也隱含大量的個人隱私,繼而產生數據權屬與數據安全等多方信任問題。在醫療領域,以新型冠狀病毒肺炎疫情為例,為了控制疫情的擴散以及精準把控疫情的進展,各地政府、高校及研究機構搭建了新型冠狀病毒大數據交叉學科研究平臺,對患者的數據進行分析和統計,在這個過程中,一旦一個環節出錯就會導致數據洩露。
隨著區塊鏈技術越來越多地出現在人們的視野,其去中心化的特性顛覆性地解決了許多「信任」問題,為多企業、多單位共同參與項目提供了一致性的保障,為數據安全、數據增值、成果認定提供了平臺支撐,促使各參與方更精於合作,更專注於研究工作本身,減少數據洩密帶來的風險。
然而,區塊鏈技術的交易公開性也有弊端,數據請求方的數據屬性集合被封裝在交易信息中,使用共識算法將其廣播到區塊鏈網絡,使得所有節點公開可見。但數據屬性集合極易被惡意參與方盜用,並且生成對應的用戶密鑰,從而竊取區塊鏈上(以下簡稱「鏈上」)的交易數據。可見區塊鏈架構本身並不一定是高可用的,維護區塊鏈系統的可運維性不僅需要在技術上突破,更應從法律、行業實踐及標準化層面加以約束 。
本文針對當前第三方傳統中心化數據共享平臺和機構上存在的數據管理、多方交互數據不可信以及當前區塊鏈共享平臺交易公開等關鍵問題,將醫療數據共享中患者體檢報告中的各項指標數據作為本文的數據分析主體,研究智能合約(smart contract)、基於屬性加密的訪問控制算法、同態加密(homomorphic encryption)算法等,探索基於區塊鏈技術的鏈上數據安全共享體系,設計基於智能合約及密文策略的屬性加密的訪問控制方案以及基於同態加密的數據處理模塊,旨在為用戶信息提供加密保護,合理管理共享數據,可靠保證用戶的數據主權與數據完整性,最終建立一套完備的數據權屬體系與數據安全保障規範。
2 研究現狀
數據管理是指對各類數據進行採集、存儲、分類、檢索和傳輸等的過程。隨著計算機以及網絡技術的發展,數據管理技術從最早的20世紀50年代的人工數據檢索方式,到20世紀60年代的文件系統管理方式,最後在20世紀60年代後期演化為現在一直沿用的資料庫系統管理方式。而針對數據應用場景與應用需求,數據管理又可被細分為科學數據管理、信息管理、內容管理等。本文提到的基於區塊鏈的鏈上數據安全共享體系更多地依賴於科學數據管理以及內容管理中的關鍵技術,以此保證數據的安全共享與有效利用。
美國是較早對開放數據進行科學管理與共享的國家,通過頒布《信息自由法》和《版權法》等法案將政府作為數據開放共享的主體,其通過政府主動開放自身數據並吸引企業投資的方式來深化政府數據的創新應用,形成政府主導模式,同時也對數據進行監管,防止對其的二次泛濫利用。歐洲各國同樣也針對政府和企業出臺了很多科學數據管理與共享的相關政策,旨在保障數據的質量與精度。
我國的科學數據管理與共享工作起步略晚,雖然已開展了關於地質調查、氣象、海洋、水文、環境和地震等方面的數據監測,監測得來的數據量很大,但科學數據的有效利用率始終很低。直到2002年科學數據共享工程在科學技術部和相關管理部門的共同努力下正式啟動,我國的科學數據管理與共享工作才有了較快發展,為科學研究以及大數據分析奠定了基礎,但對科學數據進行安全有效的管理與共享依舊是需要持續研究的課題。
目前,我國在科學數據管理與共享利用方面取得了一些成績,但科學數據共享觀念淡薄,很多科研院所和政府管理職能部門的數據共享仍缺乏有效的政策法規保障。而大數據時代的到來使得傳統關係型資料庫也顯得力不從心,NoSQL技術在一定程度上滿足了大數據時代的數據 管理需求,但面對數據量的急劇增加以及數據敏感度的日益提升,數據的一致性、可用性以及安全性等方面仍限制了NoSQL的發展。如何在保證數據安全的基礎上對數據進行安全共享,繼而有效利用,是數據管理領域的一個重要挑戰。基於區塊鏈的數據共享技術為數據共享的創新開拓了新的思路。
2016年, Sun J J等人提出了一種基於區塊鏈的共享服務的概念模型,用於促進數據共享。然而,研究僅僅側重於概念和模型,沒有提出實際解決方案 。Yue X等人提出一個基於區塊鏈的醫療數據架構,在不破壞隱私的前提下,幫助用戶安全和輕鬆地掌握並且分享自己的醫療數據。他們提出一種基於目的的訪問模型,實現了患者持有並掌握自己的醫療數據。雖然他們提到了安全多方計算的潛在前景,卻沒有提出具體的實現方案。
2017年,Zik ratov I等人提出了一個雲環境下的基於區塊鏈的醫療數據共享框架,該框架充分解決了在雲環境中存儲的敏感數據相關訪問控制問題,但普適性還稍有欠缺。
201 8年,Zhang P等人提出一種FHIRChain原型,用於向用戶提供互動性更高的醫療診斷服務。該方案實現了用戶身份識別、認證、安全數據交換等一系列要求 。同年,Zhang A等人提出一種基於安全和隱私保護的、基於區塊鏈的個人醫療信息共享方案。通過應用基於公鑰密碼學的可搜索加密,該方案允許用戶的醫療信息被安全和受控地訪問及用於改善醫療診斷服務。李康等人歸納並總結了基於零知識證明的隱私保護方案在區塊鏈技術中的應用。祝烈煌等人介紹了以混幣機制為代表的區塊鏈交易數據隱私保護方案。
2019 年,Muzammal M等人將區塊鏈和資料庫結合,提出一種去中心化、分布式和可審計的數據系統。該方案是第一個基於區塊鏈的防篡改的資料庫,提供了對分布式數據的高效 檢索。同年,張超等人設計了一個基於實用拜佔庭容錯算法的聯盟式醫療區塊鏈系統,該系統能夠防止數據被洩露和篡改 。
在數據流通方面,閆樹等人在區塊鏈改造授權存證環節、數據溯源和智能合約實現等研究領域梳理了區塊鏈技術在數據流通中的應用。
3 相關背景技術
3.1 區塊鏈技術
區塊鏈的結構構想早在20世紀90年代就被提出,而到2008年區塊鏈才真正進入了大眾的視線。區塊鏈技術作為一個由多方共同維護、去中心化的分布式帳本技術,核心在於通過對等(peer to peer, P2P)網絡協議、共識算法、非對稱加密、哈希等關鍵技術解決數據傳遞與交換過程中的信任問題。區塊鏈的鏈式結構是一種將數據區塊按時間戳順序相連,進行數據存儲與驗證的一種數據結構,是一種憑藉共識算法對數據進行廣播交易,基於密碼學原理保證數據傳輸和訪問的安全性;具備難以篡改性和難以偽造性的分布式帳本技術。其可利用智能合約來編程和操作數據。
3.2 智能合約
智能合約是20世紀90年代由尼克·薩博(Nick Szabo)提出的理念。Nick Szabo將其描述為「一套以數字形式描述的承諾,以及合約參與方履行這些約定的協議」。智能合約是一種鏈上代碼,是以信息化方式傳播、驗證或執行合同的計算機協議,解決了傳統交易系統中需要第三方機構進行交易監管的問題。智能合約不僅是形式上的數位化合約,更是一組可以在一臺計算機或計算機網絡中按預置設定自動執行規則的契約。智能合約由預定義的多行代碼和用於執行該代碼的軟體組成,軟體中內置了合同條款和輸出結果的內容。
3.3 基於密文策略的屬性加密
在基於密文策略的屬性加密(ciphertext-policy attribute-based encry ption,CP-ABE)算法中,密文對應於一個訪問控制結構,密鑰則對應於屬性的集合,當訪問用戶的屬性能夠滿足對應的訪問控制結構時,解密才能成功。密鑰通常是由用戶根據自身條件和屬性從屬性機構中獲取的,而加密者基於消息來設計訪問控制結構,即由發送方規定訪問密文的策略,將屬性集合與訪問資源關聯,接收方可以根據自己的授權屬性訪問密文信息。CP-ABE算法流程主要由4個階段構成。
● 初始設置:基於CP-ABE算法進行隨機初始化,初始化數據包含隱藏的安全參數λ、系統公鑰PK以及系統主密鑰MK,由密鑰分發中心進行密鑰的初始化分發。
● 加密階段:加密階段仍是一個隨機算法,算法輸入為系統公鑰PK、待加密消息m和與訪問策略相關聯的訪問控制結構Acp,生成基於屬性加密的密文Em。只有擁有訪問策略的請求者才能解密密文Em。
● 密鑰生成:密鑰生成階段仍是一個隨機算法,輸入一組屬性Y、系統主密鑰MK、系統公鑰PK,輸出一個供數據請求方使用的解密密鑰UK。
● 解密階段:基於訪問結構Acp加密的密文Em、對應屬性組Y的解密密鑰UK和系統公鑰PK,若Y∈Acp,則輸出消息m。
3.4 同態加密技術
同態加密技術根據密文運算的次數與種類以及其時間順序的發展階段分為部分同態加密(partial homomorphic encryption, PHE)、類同態加密(somewhat homomorphic encryption,SHE)、全同態加密(fully homomorphic encryption, FHE)。目前同態加密技術在雲計算環境中的可信計算與基於密文的檢索方面應用十分廣泛,用戶隱私數據在雲端始終以密文形式進行存儲,雲服務商沒有密鑰則無法獲取用戶的真實明文數據。而同態加密技術則是用戶在雲環境中進行數據挖掘與分析計算的可靠助力與安全基礎。本文將區塊鏈技術與同態加密技術結合 ,通過引入Paillier加密算法來實現共享數據的密文處理。
Paillier密碼機制如下。
選取兩個大素數p和q,計算n=pq, λ(n)=lcm(p-1,q-1),其中lcm(a,b)表示求a和b的最小公倍數。隨機選取參數g, ,且。令 Sn=,對於任意u∈Sn,定義函數,則生成公鑰(n,g),私鑰(p,q)或λ。
加密算法:對於任意明文m∈Zn,隨機選取整數,則加密後的密文為C=E(m)=gm·rnmod n2。
解密算法:利用私鑰解密得到明文。
4 DSOC架構
本文基於區塊鏈技術、基於密文策略的屬性加密技術以及同態加密技術,針對當前醫療信息共享中的數據易洩露,以及通過分析用戶相關數據之間的關聯性來獲取用戶隱私等問題,提出鏈上數據共享(data sharing on chain,DSOC)架構,並以醫療領域中的數據結構為背景,闡述了DSOC架構在醫療數據共享中的應用流程。
4.1 流通數據分析
在DSOC架構中採用的數據案例為傳統醫療系統中使用的患者體檢報告。患者體檢報告數據見表1(患者張三,病歷號為1234567,年齡25歲,性別男)。
在傳統醫療數據平臺中,用戶體檢數據的各項指標皆為明文顯示,在數據共享過程中極易洩露用戶隱私。本文提出的DSOC架構對用戶體檢數據的各指標值進行加密,利用哈希算法中的MD5算法將進行單項加密顯示,將用戶病歷號作為ID。首先數據擁有者設置訪問結構Acp,以患者體檢報告數據為例,數據請求方的數據屬性集合為,用戶屬性集合為。一旦數據屬性集合與數據擁有者設置的訪問結構不匹配,則駁回數據請求,此次數據共享失敗;若匹配,則可以進行下一步數據分析。在數據分析中,本文引入加法同態加密算法,通過將結果值與最大正常參考值進行密文的加減法計算,對最終結果進行同態加密的範圍型驗證(驗證是否超出正常值)。而數據請求方只會獲得該指標是否超標的結果,並不清楚具體數值以及超出正常值的範圍。
4.2 系統模塊
DSOC架構由用戶模塊、密鑰分發模塊、訪問控制策略模塊以及數據分析模塊構成。
用戶模塊由數據擁有者及數據訪問者構成。其中數據擁有者將可共享的數據發送至區塊鏈網絡,同時可對數據訪問者設置訪問策略。數據訪問者則基於自身的數據屬性集合來判定是否擁有訪問數據的權限,取得數據訪問權限後可對數據進行進一步的分析操作。
密鑰分發模塊主要由密鑰分發中心進行控制。密鑰分發中心在訪問控制階段和數據處理階段都會參與密鑰分發和數據加密過程。在訪問控制階段,因共享數據集龐大,考慮到加密效率問題,採用對稱加密算法對共享數據屬性集進行加密。為了保證較高的加解密效率,同時有效避免因暴力破解而導致的密鑰洩露,本模塊採用對稱加密算法AES-192加密共享數據,該生成密鑰由一對192位的隨機數進行加法運算後執行哈希算法SHA192得出。
訪問控制模塊基於CP-ABE算法實現基於密文策略的屬性加密。其中密鑰分發中心結合安全參數生成系統公鑰、系統主密鑰以及用戶的解密密鑰。數據擁有者設置訪問策略,並將公鑰和訪問策略嵌入密文中。數據訪問者使用解密密鑰來獲取密文。
數據分析模塊基於Paillier算法對數據進行加法同態加密,對最終結果進行範圍型驗證,得出結論,並將結論告知數據訪問者。
4.3 總體架構與算法流程
DSOC架構如圖1所示。
圖1 DSOC架構
(1)初始階段
為保證算法運行效率,採用對稱加密算法來實現共享數據屬性集的加密,繼而生成對稱密鑰。數據擁有者隨機生成192位的密鑰對(k1,k2),則對稱密鑰Ak=SHA192(k1⊕k2)。之後數據擁有者通過調用智能合約模塊上傳(k1,DataSet)至區塊鏈網絡。其中DataSet為數據擁有者可進行共享的數據集合。
數據訪問者調用相應智能合約查看鏈上數據集信息,根據數據描述選擇自己需要的數據集合,並向數據擁有者發送包含目標數據屬性集合標識的哈希值,數據擁有者收到數據請求後,對比收到的哈希值,並查找數據訪問者想要訪問的數據集合,開始制定訪問策略Acp。
(2)訪問控制階段
密鑰分發中心基於CP-ABE算法進行初始化,初始化數據包含隱藏的安全參數、系統公鑰以及系統主密鑰,即(λ,PK,MK)。
密鑰分發中心通過調用智能合約將PK存儲於鏈上,而數據擁有者和數據訪問者從鏈上獲取PK。
數據擁有者獲取PK後執行CP-ABE算法的加密操作,生成密文Ek2,並通過智能合約將生成的密文Ek2上傳至區塊鏈。
數據訪問者將目標屬性集合DataSetpartial存儲於鏈上,並利用智能合約觸發密鑰分發中心,進行下一步生成解密密鑰的操作。
密鑰分發中心從鏈上獲取目標屬性集合DataSetpartial,並基於CP-ABE算法執行密鑰生成的功能函數來生成解密密鑰UK。
密鑰分發中心將UK存放於鏈上。
數據訪問者通過調用智能合約從鏈上獲取UK後,基於CP-ABE算法執行解密階段的功能函數,若符合訪問控制策略Acp,則自動獲得密鑰k2。
這時數據訪問者將k2上傳至鏈上,通過智能合約計算SHA192(k1⊕k2)是否等於Ak。若相等,則數據請求方是合規的用戶,激活觸發器進入數據分析階段。
(3)數據分析階段
觸發器從鏈上取得目標數據集後,通過調用加法同態加密智能合約對數據進行加密處理。這時,密鑰分發中心進行密鑰生成。首先生成兩個大素數p和q,且n=p×q,則歐拉函數φ(n)=(p-1)(q-1),Carmichael函數λ(n)=lcm(p-1,q-1)(為方便描述,用λ代替λ(n)),任意選取,滿足,定義集合 ,對於任意u∈Sn,定義函數,選取哈希函數h,。因此生成公鑰(n,g)PAK,生成私鑰(p,q)或λSAK。
密鑰分發中心生成隨機參數r,對目標數據m1進行加密,得到密文C1。
同樣,對數據將要進行操作的閾值(例如醫療數據中感冒患者的血紅蛋白的正常值)m2進行加密,得到密文C2。
在數據處理模塊中進行加法同態加密運算。
最後用戶通過私鑰對運算結果進行解密。
最終結果通過範圍驗證m≤0或m≥0 (m為目標數據m1與閾值數據m2的差值)來判斷該患者的特定指標是否在正常範圍之外。
4.4 智能合約算法實現
算法1 訪問控制算法(Access)
在訪問控制算法中首先驗證數據訪問者DU是否為合規節點,若是,則密鑰分發中心把用戶的解密密鑰傳給DU。之後驗證DU的屬性集合,若屬性集合與數據擁有者設置的訪問控制策略相匹配,則可獲得共享數據,並跳轉到數據處理模塊。
算法2 同態加密算法(Analyze)
在同態加密的數據處理算法中,首先需要判定觸發器狀態,數據經過訪問控制模塊處理後將激活觸發器,使得數據直接傳入數據處理模塊中。首先需要獲得數據訪問者DU的地址,然後生成交易,交易包含密文數據Data、合約地址address和合約接口abi,之後對密文數據進行基於Paillier算法的同態加密計算。判斷最大正常參考值與結果值的差,若該差值大於0,則返回true,即結果正常;若小於0,則返回false,即該項指標結果異常。
5 實驗與分析
5.1 實驗環境準備
本文提出的鏈上數據共享方法基於迅鰩區塊鏈即服務(Ray blockchain as a service,RayBaaS)平臺開發智能合約,實現數據的安全共享。RayBaaS平臺是擁有自主智慧財產權的分布式帳本系統,是區塊鏈3.0標準下的區塊鏈應用內核,可以讓用戶簡便、快捷、高效地構建基於區塊鏈的服務和應用。硬體設備採用Intel CoreTM i7、8核CPU以及16 384 MB的RAM的移動工作棧進行實驗。區塊鏈底層平臺基於CentOS7.6作業系統進行部署,並安裝了Java1.8.0、Docker18.09、MySQL5.7.21等組件。本實驗所用數據截取自個人用戶的體檢數據報告。
RayBaaS平臺提供了快速部署區塊鏈網絡的功能,在用戶端中,從區塊鏈管理模塊點擊創建區塊鏈即可搭建所需的測試聯盟鏈,如圖2所示。
其中需要選擇共識方式,共識節點用於共識計算,而記帳節點則用於存儲鏈上數據。平臺支持自定義添加共識節點和記帳節點數量,實驗中為方便測試與快速搭建,各生成一個節點。
為了使節點間能夠相互通信,需要設置節點的http埠以及grpc通信埠,兩種埠號需設置得不同。
在配置好節點信息後,RayBaaS平臺支持一鍵組網,可快速構建測試網絡。至此區塊鏈網絡搭建成功,可進行智能合約的相關測試。
圖2 創建區塊鏈
在區塊鏈網絡構建成功後,將訪問控制模塊以及數據處理模塊的智能合約上傳至RayBaaS平臺即可完成合約的部署,如圖3所示。RayBaaS平臺內置了區塊鏈網絡的基礎合約,因此只需部署實現系統關鍵邏輯部分的智能合約。
圖3 智能合約部署
5.2 數據處理的同態性與範圍型驗證
原始用戶體檢報告數據見表1。通過訪問控制與同態加密模塊後,數據訪問者調用鏈上的用戶數據時是密文狀態,通過區塊鏈瀏覽器查看鏈上信息,如圖4所示。而從鏈上將數據導出成表後,用戶相關屬性信息除病歷號外皆通過哈希函數加密,而具體指標信息則經過同態加密處理。加密處理後的鏈上數據如圖5所示。
圖4 鏈上交易信息
圖5 加密處理後的鏈上數據
數據訪問者進行數據處理時,可通過最大正常參考值減去結果值來判斷該份報告的用戶指標是否正常,處理結果也不顯示明文,而是以範圍型驗證的方式告知用戶結果,這樣即使數據訪問者拿到數據結果,也不能得知該指標數值的溢出程度,只知道該指標是否達標。數據結果是否為明文顯示則可根據用戶需求進行調整。數據處理結果如圖6所示。
圖6 數據處理結果
由圖6可知,數據密文處理後的結果與明文處理後的結果一致(明文結果哈希化後得到的是密文的處理結果,這裡直接以表格形式輸出),證明了該體系架構的可行性,該體系架構可有效地保障用戶隱私以及共享數據的安全。
5.3 改進性分析
在該架構中,目前筆者只實現了加法同態加密的相關分析操作以及一些簡單的數據共享處理業務,還不能支持乘法同態加密的相關數據操作,同時在數據量過大情況下的系統並發性還未進行論證,這些將是下一階段的研究目標。
6 結束語
本文提出的DSOC架構是基於區塊鏈實現的鏈上數據共享體系。通過CPABE算法實現用戶的訪問控制,之後基於Paillier算法的加法同態加密實現了數據共享中的部分業務場景,通過RayBaaS平臺搭建測試聯盟鏈,得到的實驗結果論證了數據的同態性以及範圍型驗證的可行性,說明該架構能夠有效地保障數據的安全共享。
作者簡介
劉彥松(1996-),男,電子科技大學計算機科學與工程學院碩士生,主要研究方向為數據安全與區塊鏈 。
夏琦(1979-),女,博士,電子科技大學計算機科學與工程學院教授,電子科技大學網絡空間安全研究中心副主任/區塊鏈研究所執行所長,四川省大數據共享與安全工程實驗室執行主任,中國計算機學會(CCF)區塊鏈專業委員會委員,美國賓夕法尼亞大學訪問學者,主要研究方向為網絡安全技術及其應用、大數據安全、區塊鏈 。
李柱(1995-),男,電子科技大學計算機科學與工程學院碩士生,主要研究方向為數據安全與區塊鏈 。
夏虎(1981-),男,博士,電子科技大學計算機科學與工程學院副研究員,主要研究方向為大數據挖掘與分析、數據安全與區塊鏈 。
張小松(1968-),男,博士,電子科技大學計算機科學與工程學院長江學者特聘教授,政府治理大數據國家工程實驗室專家委員會副主任委員,中國電子學會區塊鏈分會副主任委員,電子科技大學網絡空間安全研究院院長,主要研究方向為網絡信息技術安全和應用 。
高建彬(1976-),男,博士,電子科技大學資源與環境學院副教授,CCF區塊鏈專業委員會委員,美國賓夕法尼亞大學訪問學者,主要研究方向為數據分析與挖掘、圖像處理、區塊鏈、智能決策等 。
聯繫我們:
大數據期刊
《大數據(Big Data Research,BDR)》雙月刊是由中華人民共和國工業和信息化部主管,人民郵電出版社主辦,中國計算機學會大數據專家委員會學術指導,北京信通傳媒有限責任公司出版的期刊,已成功入選中文科技核心期刊、中國計算機學會會刊、中國計算機學會推薦中文科技期刊,並被評為2018年國家哲學社會科學文獻中心學術期刊資料庫「綜合性人文社會科學」學科最受歡迎期刊。
關注《大數據》期刊微信公眾號,獲取更多內容