?

基于區塊鏈的真實世界數據共享系統研究

2022-01-12 04:45劉尚麟廖思捷楊春霞
信息安全研究 2022年1期
關鍵詞:數據表哈希真實世界

劉尚麟 廖思捷 楊春霞 范 佳

1(工業信息安全(四川)創新中心公司技術研究部 成都 610041)2(中國電子科技網絡信息安全有限公司區塊鏈研究中心 成都 610041)

(sccdhanshan@sohu.com)

真實世界數據,指的是由非隨機對照研究(簡稱RCT)而來的臨床數據,主要來源于電子病歷、醫保索賠、患者報告結果、患者和疾病登記、前瞻性觀察研究、生物標志物研究、可穿戴設備傳感器、移動健康數據等.隨機對照研究被定義為最高級別的循證證據,經常作為藥品審批上市、臨床診療指南更新的證據.根據以往規定,新藥獲準上市要經過臨床試驗RCT周期Ⅱ期、Ⅲ期等,過程至少需要8~10年.相比之下,真實世界臨床數據來源更具多樣性,可以評價藥械的實際效果和安全性,并可觀察到更長期的治療效果以及不同特征人群的效果,能夠為新藥械上市開辟新的途徑,帶動醫療科技創新[1].

真實世界數據需要轉化為真實世界證據才會發揮價值.要完成這種轉化必須進行數據整合,同時解決數據可溯源性、隱私保護等問題.因為真實世界數據必須經過整合以后才能使用,這牽扯到同一數據庫中數據表內容整合、不同數據庫內容的整合,同時對缺失數據進行補全.數據整合后必須解決以下2方面的問題:

1) 可溯源性.整合數據需具備可追溯性,為分析結果提供可信證據.讓分析結果可追溯,可查找原因.

2) 隱私保護.真實世界研究的數據,如患者的信息有可能會成為長期的研究資料,患者本身在某種程度上已成為“受試者”, 因此真實世界研究需要符合倫理要求、知情同意等,必須提供完善的隱私保護機制,防止用戶隱私泄露.

我國醫療數量大,加上就診醫院、地域的不同,易形成信息孤島,要實現開放利用需要突破數據可溯源性、隱私保護等關鍵技術,打通數據壁壘,將數據整合形成全面的多維數據鏈條,構建具有可溯源和隱私保護能力的真實世界數據共享體系.

本文的貢獻在于對上述傳統技術的增強:對于文本和數值型數據溯源,設計了最小哈希(MinHash)和局部敏感哈希(LSH)算法進行相似性比較,查找世系證據;對于隱私保護,提出了基于控制流圖的程序身份指紋提取及驗證算法,同時使用區塊鏈對數據哈希特征指紋、計算程序指紋進行登記,實現數據溯源以及處理程序溯源.另外,設計了容器和虛擬機雙層隔離保護的隱私計算隔離區,將加密發布的真實世界數據下載到隔離區內,解密后分析處理,用后數據立刻銷毀,隔離區外不出現明文,從而防止個人隱私泄露.

1 總體框架和工作流程

真實世界數據共享體系框架圖如圖1所示:

圖1 真實世界數據共享體系框架圖

主要包括數據整合治理、加密發布存儲、數據分析程序應用和區塊鏈等模塊,其中:

數據整合治理.主要按照標準表格,對來自各種數據源的數據進行內容整合導入,補全缺失數據.數據補全采取datawig機器學習算法[2].

補全數據.使用RCT數源的,需要記錄數據源URL(數據表),補全之前的數據集合最小哈希MinHash;補全數據集合的最小哈希和補全算法.并采用區塊鏈登記其最小哈希;

加密發布存儲.采用分布式存儲系統IPFSOrbitDB數據庫,將標準化數據加密發布,提供目錄方便授權管理以及數據使用.

隱私保護區.將通過授權的加密數據下載到隔離區,解密后采用分析程序進行處理,計算結果輸出后,解密明文用后立即銷毀,防止數據泄露.同時,使用區塊鏈[3]對數據分析程序指紋特征和訪問用戶進行登記,實現數據使用可證、計算結果可信.

區塊鏈模塊.采用Hyperledger進行存證,登記的原始數據存儲于IPFSOrbitDB數據庫.

2 算法設計

2.1 數據溯源算法

文本和數據類數據溯源采用基于最小哈希的局部敏感哈希算法,計算數據相似度,追溯數據的演變過程[4].

算法1.數據溯源算法.

輸入:文件(文本或者數據);

輸出:LSH相似度.

計算過程:

第1步.數據分割k-shingles:將數據文件切分為小數據集合.

第2步.最小哈希MinHash降維:將數據集合轉化為短簽名,將數據比較轉化為簽名比較.

第3步.局部敏感哈希(LSH)降維,最小哈希MinHash得到的簽名數據集依然很大,通過LSH進一步縮減處理的數據量.只是比較存在高相似概率的簽名.下面重點介紹MinHash和LSH.

Jaccard系數是常見的衡量2個向量(或集合)相似度的度量:A,B兩個集合,其相似性Jaccard系數為Jaccard(A,B)=(A∩B)/(A∪B),其值域為[0,1].

Jaccard(A,B)可采用MinHash的計算,步驟如下:

1) 對A,B的n個維度,作一個隨機置換(即對索引i1,i2,…,in隨機打亂).

2) 分別取向量A,B的第1個非0行的索引值,即為MinHash值,得到A,B的MinHash值后,可以有以下重要結論:

P[MinHash(A)=MinHash(B)]=
Jaccard(A,B).

具體計算時,首先會對向量A,B作m次置換permutation(m一般為幾百或更小,通常遠小于原向量的長度n),每一次置換permutation得到MinHash值的映射記為h1,h2,…,hm,那么向量A,B就分別被轉換為2個簽名signature向量:

Sig(A)= [h1(A),h2(A),…,hm(A)],
Sig(B)= [h1(B),h2(B),…,hm(B)].

向量A,B的Jaccard相似度:

Jaccard(A,B)=(Sig(A)∩Sig(B))/
(Sig(A)∪Sig(B)).

計算Sig(A)和Sig(B)與向量MinHash值相等的比例.

局部敏感哈希LSH算法,在MinHash簽名signature向量的基礎上,將每一個向量分為幾段,稱之為band,每一個向量,每一段有r行MinHash值.計算任意一個band的哈希,放到哈希桶中,作為候選相似數據集進行比較.

設2個向量的相似度為t,則其任意一個band所有行相同的概率為tr,至少有一行不同的概率為1-tr, 則所有band都不同的概率為(1-tr)b,至少有一個band相同的概率為 1-(1-tr)b,令s≈(1/b)1/r,s(一般由實驗或者經驗確定)作為閾值,決定將數據分到相同的哈希桶中,作為LSH計算相似度的候選集合.

同源數據可以定義為LSH相似度超過一定值的數據文件.整合治理其本質就從各種數據源抽取內容填寫標準化數據表,同時補全缺失內容.真實世界數據可溯源性就是由系列同源性證據組成的鏈條.基于最小哈希局部敏感哈希數據相似度登記以及查找溯源,計算過程如圖2所示:

圖2 基于最小哈希局部敏感哈希數據溯源流程

溯源驗證算法分為登記和驗證2個階段:

1) 登記階段.主要涉及整合過程的數據源表.

計算獲取源數據MinHash哈希Hmin,將Hmin,k-shingles參數登記到數據庫,作為數據溯源依據.

2) 驗證階段.主要涉及整合后的數據表、數據世系(從源系統抽取數據開始,經過數據轉換到最終的數據形成的過程信息)證據.

將需要溯源的數據表計算最小哈希,在已登記所有數據的最小哈希集合中,搜索計算TOP-3數據集合及LSH相似度作為同世系數據依據.

2.2 隱私保護技術

2.2.1 程序身份指紋提取及驗證算法

程序身份指紋基于控制流圖實現.控制流圖(CFG)是有向圖,代表了程序執行過程中會遍歷到的所有路徑,它用圖的形式表示程序所有基本塊執行的可能流向, 也能反映程序實時執行過程.主要研究了常用的Python程序身份提取驗證算法.

Python程序CFG使用執行函數以及函數調用關系構建,具體過程如圖3所示.

圖3 Python程序動態驗證步驟示意圖

算法2.程序身份指紋提取及驗證.

輸入:Python可執行文件;

輸出:Python文件指紋特征相似度.

算法過程:分為提取和驗證2個步驟.

1) 提取階段

① 采用靜態分析工具(Pyan)提取1個或多個Python源文件,整理形成所有對象以及函數之間的調用關系CFG dot格式文件文件1,對dot圖文件的頂點以及邊的命名進行格式標準化(靜態和動態CFG提取由于采用軟件包不同,因此形成的圖的描述會有差異,標準化后便于比較);

② 使用軟件包graph-tool計算標準化dot文件文件中有向圖的MSA以及最小哈希HfGC1,作為程序特征指紋登記寫入區塊鏈.

2) 驗證階段

① 采用pycallgraph軟件包動態提取程序執行過程中函數以及函數之間的調用關系CFG,輸出dot格式文件文件2,標準化后計算文件2中有向圖的MSA以及最小哈希HfGC2;

② 搜索區塊鏈登記的所有最小哈希文件集合、 TOP-3程序及LSH相似度,作為程序指紋驗證依據.

2.2.2 數據用后即毀技術

隱私保護區是基于kata虛擬機和容器2層隔離環境,采用Web jupyter的開放交互式方式,安裝數據防泄露系統,對數據流向進行管控,加密數據可以從發布存儲設備下載到該環境,進行解密計算,計算結果經過審計后輸出到指定網盤,解密明文使用后銷毀;數據使用過程都基于區塊鏈生成了不可篡改的記錄,可以像“錄像機”一樣回播數據使用細節,進行追責.

3 實驗結果

3.1 數據溯源實驗

使用美國data.word醫療數據集Medical-records-10-yrs,該數據集包含大量患者的實驗室結果、診斷、用藥詳細數據.選用medication_fulfilment.csv數據表的pharmacy_name列進行文本數據補全實驗,選用dose列進行數值補全實驗.文本數據實驗步驟如下:

1) 采用Order_ID逆序排序,計算文檔最小哈希H1,寫入數據庫,使用區塊鏈存證;

2) 保持Order_ID逆序排序,隨機選10%,刪除pharmacy_name列的數值;

3) 采用datawig機器學習文本補全算法,對數據表進行補全,計算數據表最小哈希H2;

4) 在數據庫中,搜索TOP-3 LSH相似度文件.

數值數據實驗步驟和上述步驟相同,只是數據列選擇為dose列,數據補全算法選用datawig機器學習數值補全算法.實驗結果如表1所示:

表1 數據溯源實驗結果

3.2 程序身份指紋驗證實驗

步驟如下:

1) Python scikit-learn線性回歸算法程序skregression.py,靜態提取CFG圖,計算最小哈希指紋特征集合Hs,寫入數據庫進行登記,基于區塊鏈存證;

2) 運行skregression.py,動態提取CFG圖,計算最小哈希指紋Hd,在數據庫中,搜索TOP-3 LSH相似度文件.

程序身份指紋驗證實驗結果如表2所示:

表2 程序身份指紋驗證實驗結果

3.3 實驗結果分析

實驗對以下2點進行了驗證:1)文本和數值型數據最小哈希和局部敏感哈希算法世系證據搜索,補全數據;2)Python程序控制流圖CFG最小哈希和局部敏感哈希相似度.

從結果來看,文本數據世系采用TOP-3 LSH搜索算法,可保證已登記數據世系證據的準確性.數值型數據其相似度較文本型數據低6.6%,主要原因是,將數值當作文本處理,而沒有考慮數值型數據分布特征.對于數值型,可考慮使用DTW(dynamic time warping)[5]動態時間規整等數值相似性比較的專門算法,以提高準確性.

Python程序控制流圖CFG MSA最小哈希和局部敏感哈希相似度算法,同一程序,靜態提取的指紋和動態提取的指紋相似度為97%,采用TOP-3 LSH搜索算法可保證已登記數據計算程序指紋驗證準確性.沒有達到理論相似度(99%)的原因是,提取工具的CFG圖根節點表達差異以及程序動態執行路徑.

4 相關工作

數據溯源方法可歸納為2大類,即基于批注(annotation-based)的方法和非批注(non-annotation-based)的方法.基于批注的方法將每個數據項變換為三元組標簽,通過在數據處理過程中進行標簽傳播,實現數據的勾連,以支持數據溯源.對于非批注的方法,在處理數據的過程中不需要對源數據和目標數據(處理的結果)附加額外的信息,但是,需要日志庫記錄存儲、計算等過程中對數據進行了何種處理[6].非標注的數據溯源可用于數據變換、數據集成過程的調試,當源數據與目標數據之間的數據模式改變時, 非批注方法具有較大實用價值.本文使用了文本和數值型數據基于MinHash的LSH相似度世系證據搜索算法,利用數據本身LSH相似度,參考區塊鏈數據溯源研究成果[7],記錄數據世系及演化過程.

程序函數CFG信息安全領域主要用來識別惡意軟件[8],本文把這種方法擴展到整個程序,用來提取整個程序的指紋特征.為了降低特征維度,引入了MSA,并計算其最小哈希和局部敏感哈希相似度算法,來比較程序文件相似度.

在隱私保護方面,當前常用手段是數據防泄露技術[9],通過文本和數據特征識別,結合深度檢測技術,防止敏感數據泄露出安全域.本文參考云安全虛擬架構[10],采用容器和虛擬機雙層隔離保護機制,結合用后即毀,降低數據計算環節泄露風險.

5 結 語

文本和數值型數據基于MinHash的LSH相似度世系證據搜索算法,Python程序控制流圖CFG MSA基于MinHashLSH相似度比較算法,結合容器和虛擬機雙層隔離保護隔離區內數據分析、用后數據立刻銷毀,輔助基于區塊鏈的數據溯源、數據分析程序指紋驗證,可以跟蹤數據演變以及被哪些計算處理,可為真實世界數據共享提供一種有效的解決思路.

猜你喜歡
數據表哈希真實世界
基于真實世界證據的人工髖關節假體臨床使用研究
基于真實世界研究分析輸尿管軟鏡手術前留置輸尿管支架管的必要性
真實世界中聯用丙戊酸鹽對奧氮平血藥濃度的影響
哈希值處理 功能全面更易用
Windows哈希值處理不犯難
文件哈希值處理一條龍
湖北省新冠肺炎疫情數據表(2.26-3.25)
湖北省新冠肺炎疫情數據表
湖北省新冠肺炎疫情數據表
基于關聯規則Apriori算法的真實世界復方苦參注射液治療惡性腫瘤聯合用藥藥理作用特征的回顧分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合