999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于集成信用度評估智能合約的安全數據共享模型

2021-04-24 12:33:34張樂君劉智棟
自動化學報 2021年3期
關鍵詞:智能用戶

張樂君 劉智棟 謝 國 薛 霄

云輔助電子病歷(Electronic health record,EHR) 系統的廣泛部署顯示出在管理醫療機構和EHR 方面的巨大好處[1],世界各地紛紛采用新技術來管理EHR.然而除了巨大的優勢之外,EHR 在云上的存儲還面臨著安全問題[2-3]:1)未經患者授權的第三方可能會惡意訪問EHR,這對于EHR共享中數據的完整性、隱私性和安全性存在不利影響[4].2)患者很難跟蹤和管理存儲在云中的EHR.

針對這些問題,許多研究[5-8]提出了用于云服務器的存儲、管理和共享技術.這些研究使用不同的密碼學技術和云技術設計EHR 共享訪問控制模型以實現隱私保護和訪問控制.盡管這些研究高度重視數據安全和隱私保護,但系統仍然存在患者密鑰管理困難、EHR 共享透明度不高以及密鑰存在泄露風險等問題.

隨著區塊鏈技術的發展,其特有的去中心化、可追溯性和隱私性推動了信息互聯網向價值互聯網的轉變[9].越來越多的學者開始研究基于區塊鏈的EHR 共享模型.MedRec[10]是一種使用區塊鏈技術處理EHR 的新型的、分布式的管理系統.MedRec將模塊化設計與醫療提供商現有的本地數據存儲解決方案集成在一起.薛騰飛等[11]提出基于改進的DPOS(Delegated proof of stake)共識的區塊鏈醫療共享模型,詳細介紹了模型的組件以及實現原理.基于以太坊區塊鏈的Ancile[12]利用智能合約增強訪問控制和數據混淆.文中詳細描述了患者、EHR 提供商和第三方之間的交互過程.MedChain[13]與 Ancile 類似,通過精心設計智能合約實現訪問控制,同時,MedChain 加入了激勵機制,給出了計算EHR質量的方法.張超等[14]提出基于PBFT (Practical Byzantine fault tolerance)的聯盟式醫療區塊鏈系統,具有較好的適用性.文獻[10-14]為現有分散在各個機構的醫療數據提供基于區塊鏈的訪問控制模型,但分散在各個醫療服務商手中的數據仍然存在被破壞的風險.

另一部分研究人員將云服務和區塊鏈技術相結合來實現EHR 的共享.Xia 等[15]提出BBDS(Blockchain-based data sharing)模型,該模型利用用戶的身份和成員加密密鑰來驗證用戶是否可以從共享池中獲取數據.但是,對于成功加入共享組的成員沒有其他限制.Tang 等[16]著重研究了基于區塊鏈的云存儲模式下EHR 共享的身份驗證問題,提出了多方授權的身份簽名模型,并具有很好的抗共謀能力.Liu 等[17]設計了基于CP-ABE (Ciphertext-policy attribute based encryption)的訪問控制機制和內容提取簽名模型,在數據共享方面提供了強大的隱私保護.此外,通過在智能合約中預設訪問權限確保數據被安全共享.文獻[15-17]采用云服務和區塊鏈技術相結合的新模式,但它們的訪問控制策略較單一,無法滿足患者對EHR 動態訪問控制的需求.

現有的EHR 共享研究中缺乏信用度評估機制,本文采用云服務和區塊鏈技術相結合的模式,在區塊鏈智能合約中加入用戶信用度評估機制,為患者提供動態可調節的訪問控制策略.本文的主要貢獻有以下幾個方面:

1) 提出了一種信用度評估機制,將信用度評估機制集成到智能合約訪問控制中,在患者缺乏對第三方信任的環境中為患者提供信用度參考.通過智能合約,患者可以動態地調節訪問控制策略.

2) 提出將云存儲和基于權威證明(Proof of authority,PoA)共識機制的區塊鏈相結合的框架.云存儲用于存儲加密的EHR,PoA 共識區塊鏈保留加密EHR 的索引.我們對交易處理速度進行了統計分析,證明了所提模型的可行性.

3) 基于以太坊Go Ethereum 開發了所提模型的系統,建立了一個私有鏈測試網絡.我們分析了系統中可能存在的惡意攻擊和共謀行為,并建立了基于信用度的獎懲機制和監督機制.實驗結果表明我們的機制能有效阻止惡意攻擊行為并及時發現共謀行為.最后,理論分析表明,我們的模型較現有一些通過智能合約實現EHR 訪問控制的模型更簡單,交易反饋延時更少.

1 預備知識

本節將介紹本文用到的智能合約技術和密碼學技術.

1.1 智能合約

智能合約是存儲在區塊鏈上自動運行的腳本.1994 年Nick Szabo 提出相關概念,將智能合約定義為一種通過代碼程序自動執行的交易協議.滿足合約條款的交易相關者,無需第三方管理者的監督就可自動執行交易.由于缺乏可支撐合約自動執行的平臺和相關技術,直到區塊鏈技術的出現,才使得智能合約這項技術得到應用.隨著區塊鏈的不斷發展,以太坊的出現[18]首次將區塊鏈和智能合約結合,通過以太坊虛擬機(Ethereum virtual machine,EVM)來處理區塊鏈上的交易.區塊鏈確保了智能合約的用戶在可信的環境下遵循合約規則自動執行合約代碼,同時利用區塊鏈的透明性和可追溯性,跟蹤合約狀態.智能合約的可擴展性、自動化為EHR共享提供了便利.利用區塊鏈中存儲的醫療數據、支持外部數據的預言機[19]以及信用度機制,患者可以在智能合約中設置信用度閾值和其他訪問控制參數,實現復雜的訪問控制策略.

智能合約預言機機制[19]驗證外部數據.在智能合約中使用合約自帶的函數ecrecover 可以驗證外部數據寫入者的簽名,該函數需要數據的Hash 值和簽名對{v,r,s}.所以對數據的簽名需要遵循ecrecover 函數的規則.實際上,數據需要經過兩次sha256的Hash 操作后才能進行簽名,簽名結果中32 字節的r和s來自橢圓曲線數字簽名算法(Elliptic curve digital signature algorithm,ECDSA)的輸出值,一個字節的v則是用于恢復簽名結果的標識,以太坊中為27 或28.

在智能合約中,數據主要分為Storage 和Memory兩種類型,Storage 類型數據也可稱為合約的狀態變量,會永久存儲在區塊鏈中;Memory 則是臨時變量,交易處理完成后該類型變量會被清空.所以在編寫合約時,需要為永久存儲的數據定義Storage 類型變量,而不僅僅是處理交易邏輯.

2 基于集成信用度評估智能合約的安全數據共享模型

本節設計了一種基于智能合約的電子病歷共享訪問控制模型(EHR smart contract access control model),為方便描述,將其簡稱為EHR-SCAC.下面分別從模型的整體框架和工作流程進行介紹.

2.1 EHR-SCAC 系統模型

如圖1 所示,EHR-SCAC 分為三層架構,由數據獲取層、數據存儲層和數據共享層組成.

圖1 EHR-SCAC 整體架構Fig.1 EHR-SCAC overall framework

2.1.1 數據獲取層

在本層中,EHR 由醫生創建并發送給醫院,醫院整理格式后,由醫生簽名發送給患者.簽名的目的是確保 EHR 的完整性.EHR 的共享權和所有權屬于患者.同時,機構在研究患者 EHR 時,可能發現EHR 存在誤診,所以機構可以共享他們的研究報告.

2.1.2 數據存儲層

數據存儲層的主要功能是存儲加密的EHR 和給區塊鏈提供EHR 的存儲索引url,數據存儲層由以下兩部分組成.

1) 云存儲.存儲患者加密的EHR,給出EHR的存儲索引url.

2) PoA 區塊鏈.存儲EHR 的索引url并實現EHR 共享.患者通過區塊鏈中智能合約預先定義訪問控制策略,確保EHR 的安全共享,任何人對EHR的訪問都將保存在區塊鏈網絡中.同時,身份管理中心 (Identity management center,IDM)和審計節點充當了鏈外數據進入區塊鏈的媒介,起到身份認證、審計和監督的作用.

2.1.3 數據共享層

在本層中,已身份認證過的醫療工作者、機構可以訪問患者的EHR.方便醫生了解患者的病歷史和給予患者更好的治療,同時也為醫療機構提供了重要的研究資料.

2.2 EHR-SCAC 工作流程

如圖1 所示,模型的工作流程大致如下:

① 用戶身份登記:用戶將真實身份ID和身份證明VID發送給IDM,IDM 驗證用戶身份.同時,IDM 會調用智能合約對用戶進行成員登記,用戶以太坊公鑰pk即為成員公鑰.將必要的用戶信息存儲在區塊鏈中.如果用戶是機構,則機構會成為審計節點.

② 身份認證后的患者,可以調用智能合約設置EHR 的全局訪問控制策略.

③ EHR 的生成:該過程參與的實體有醫生、醫院和患者.為了確保EHR 的完整性,在醫院將EHR發給患者前,醫生需要對EHR 的Hash 值ehr_hash使用以太坊私鑰進行簽名,記為sigd.如果EHR 存在問題,則醫療糾紛的責任最終由醫生承擔,這也符合實際情況.醫院將EHR、醫生的簽名sigd發給患者.

④ 患者從醫院獲取到EHR 和sigd后,患者的本地客戶端隨機生成一個對稱密鑰smk加密EHR,得到[EHR]smk.

⑤ 患者將[EHR]smk和ehr_hash上傳到云端,云端返回EHR 的存儲索引url.

⑥ 患者使用以太坊公鑰pkp加密smk獲得,然后調用智能合約的共享EHR 接口函數,將EHR 的索引等信息存入區塊鏈.智能合約檢測患者的身份注冊信息,驗證通過后合約會記錄url與患者以太坊公鑰pkp的對應關系,將必要的數據存儲到合約相關的變量中.同時,合約會為該EHR初始化一個白名單并將患者加入其中.隨后,患者便可調用合約給白名單添加成員,方便非機構用戶如醫生的訪問.

⑦ 機構在研究EHR 時可能發現患者的EHR存在誤診,機構可以更正EHR,將研究報告證明發布到云端.云端返回研究報告的索引r_url.機構調用智能合約共享研究報告r_url.與預言機機制相同,合約會觸發投票事件通知審計節點根據研究報告索引在鏈下對報告進行審核.審計節點會調用智能合約改變研究報告投票狀態變量.當投票數超過設定的閾值,機構便成功共享研究報告,這有利于機構信用度的增加.同時,機構鏈下通知IDM,IDM聯系患者重新共享更正后的EHR.該過程患者重復②③④操作,EHR 的醫療糾紛也由原先的醫生負責變為機構負責,且需要將更正后的EHR 的索引記錄到錯誤EHR 記錄的結構體變量中.

⑧ 如⑥中所述,若請求者在EHR 的白名單中,則可以直接查詢到解密密鑰.否則,請求者需要調用智能合約獲取EHR 的請求權限,智能合約會觸發事件隨機選擇一個審計節點對請求者發起工作量證明 (Proof of work,PoW)難度挑戰(第2.3.2 節中將詳細介紹).完成PoW 挑戰后,請求者獲得審計節點的簽名sigA,然后請求者再次調用智能合約請求EHR 的解密密鑰.智能合約根據患者制定的訪問控制策略驗證請求者.通過訪問控制策略后,請求者會被加入患者EHR 的白名單中,同時合約觸發代理重加密事件,IDM 通知患者生成重加密密鑰[K]p-r并發送給云端,云端執行代理重加密任務,生成并發給請求者,請求者可以調用智能合約將解密密鑰存入智能合約中.

2.3 EHR-SCAC 的信用度評估機制

本節提出一種信用度評估方法,同時設計信用度獎懲機制和監督機制用來維護系統的穩定和安全.

2.3.1 EHR-SCAC 信用度評估

機構的信用度并不能從單一特性進行評判,本文采用模糊層次分析法(Fuzzy analytic hierarchy process,FAHP)[20-21]對用戶的信用度進行評判.先將用戶的信用度分為n個特性,再把每個特性分為若干個特征類型,將模糊的用戶行為信用評估問題轉化為簡單的、明確的信用特征加權求和問題.

FAHP 解決問題的步驟分為4 步:1) 分析問題,將問題劃分為多層次結構;2)以上一級要素為準,將同一層次的特征兩兩比較,獲得初始判斷矩陣;3)將初始判斷矩陣轉換為模糊判斷一致矩陣,通過計算確定各特征以及各特性的權重;4)根據規范化的特征值和權重計算出信用度.

步驟 1.如圖2 所示,將信用度分為3 層.為了不給區塊鏈造成負擔,需要建立易檢測、易收集的用戶行為特征方案.在處理合約交易時會更新機構的這些行為特征(在第2.4 節中將作詳細說明).

圖2 用戶行為特征分類Fig.2 Classification of user behavior characteristics

步驟 2.建立行為特征矩陣C=[cij]n×m,n為特性個數,m為特性中行為特征個數的最大值,不足的項用零表示.由于各特征的值區別較大,我們需要對矩陣C進行歸一化處理,將值規范為[0,1]的特征矩陣E=[eij]n×m. 將同一特性下的特征的重要性兩兩比較獲得初始判斷矩陣EQ=[eqij]v×v,v是某個特性下行為特征的個數,如服務特性P下v=5.

以服務特性為例,其特征矩陣Ep=[e1,e2,···,ev],利用式(1)獲得初始判斷矩陣EQ.

然后,通過式(2)將初始判斷矩陣轉化為模糊判斷一致矩陣Q=[qij]v×v.

步驟 3.使用式(3)計算服務特性下各特征的權重向量

從而得到wP=[wp1,wp2,wp3,wp4,wp5].對于其他特性,同樣利用式(1)~ (3)可得可靠特性R的特征權重向量wR=[wr1,wr2],安全特性S的特征權重向量wS=[ws1,ws2],以及特性權重向量wF=[wf1,wf2,wf3].

步驟 4.根據式(4)計算機構的信用度.

即正面信用度為正面行為特征與其權重乘積的和,負面信用度為負面行為特征與其權重乘積的和.但是,對于圖2 中s1 和s2 這類違規行為的計算需要進行改進.對這兩個行為目的是監督,同時考慮到機構的誤操作會導致此類事件發生,所以機構如果存在s1 和s2 違規時,系統應能及時對機構的信用度進行懲罰,并且機構的信用度隨時間流逝能夠逐漸恢復.所以,eij為s1 和s2 時,這兩個行為特征的計算需乘以一個系數ε,ε如式(6)所示.nij表示機構做出負面行為特征eij的次數.bn表示當前區塊號,bnij表示負面行為特征eij最后一次發生時所在的區塊號.

2.3.2 信用度獎懲機制

比特幣和以太坊采用PoW 共識機制來維護區塊鏈的安全,使得惡意節點很難成功攻擊區塊鏈,除非惡意節點掌握了全網51%的算力.雖然PoW機制對于交易驗證速度要求極高的場景應用十分有限,但其思想值得學習[22].

第2.3.1 節給出了計算信用度的方法.從第2.3.1節中的圖2 可以看到兩種惡意行為,在介紹信用度獎懲機制前首先了解兩種惡意行為.

1)未經授權訪問行為

機構請求EHR 時,url對應的患者pkp可能會被未通過患者訪問控制策略的機構替換,選擇訪問控制策略要求低的患者,從而繞過EHR 持有者的訪問控制策略.與前面類似,未通過患者訪問控制策略的機構利用其他高信用度節點的成員公鑰pk來發送合約交易,以此達到訪問患者EHR 的目的.

2)偽造簽名行為

機構請求EHR 的解密密鑰前需要獲取審計節點的簽名sigA,所以機構可能偽造簽名直接申請解密密鑰.

在我們的系統中,患者共享EHR 時,智能合約會記錄url與患者的成員公鑰pk的關系.IDM 在用戶通過系統身份認證后調用智能合約將以太坊地址和成員公鑰pk的對應關系寫入了區塊鏈.同時,智能合約的ecrecover 函數可以驗證簽名.所以,以上行為可以得到阻止.但系統無法阻止惡意節點發送大量此類的無效交易,如果不能有效制約,將會對系統的穩定性造成影響.考慮到比特幣和以太坊通過PoW 機制使得惡意節點的攻擊成本很高.所以本文設計了基于信用度的PoW 獎懲機制.在我們的系統中,智能合約記錄了機構的信用度屬性(即圖2 中的行為特征),一旦檢測到違規行為,違規行為會被保存到信用度屬性中,機構的信用度也隨之下降.式(7)給出了PoW 難度與信用度的關系

其中,Diff表示機構請求EHR 的難度.λ是一個固定值,其應該根據機構的普遍算力進行設置,實際應用中可以參考比特幣的算力更新方法,根據出塊時間即算力調整λ.本文測試了實驗設備的PoW難度與PoW 算法執行時間,根據測試結果將λ設為8,使機構違規情況下PoW 算法執行時間能夠達到懲罰目的,同時保證正常信用度機構PoW 算法執行時間很低.

下面介紹機構請求EHR 前解決PoW 難題的過程.如圖3 所示,1) 機構調用智能合約請求索引url;2) 智能合約觸發事件隨機選舉一個審計節點處理機構的請求;3) 審計節點根據機構信用度將挑戰難度Diff和時間戳timestamp發送給機構;4) 機構根據式(8)算出能夠使得out小于Diff的nonce,并將out和nonce發送給審計節點;5) 審計節點對pk和url進行簽名,并將簽名sigA發送給機構,機構再次調用智能合約請求EHR 的解密密鑰,智能合約會檢測審計節點的簽名是否有效.

通過審計節點發起PoW 挑戰是一個可行辦法,但審計節點不是IDM 這樣的可信政府機構.所以,如果攻擊者買通了大部分的審計節點,則攻擊者可以直接拿到審計節點的簽名sigA,這樣依舊可以短時間發起大量攻擊.為了遏止審計節點的共謀行為,需要在智能合約中建立檢測共謀行為的機制,及時通知IDM 采取相應的懲罰.注意到如果攻擊者連續攻擊,式(6)中nij就會起到關鍵作用,攻擊者的信用度會快速下降,所以攻擊者的挑戰難度會隨之升高.定義

圖3 機構解決PoW 難題的過程Fig.3 The process of the institution solving the PoW problem

其中,ng表示攻擊的區塊間隔,由當前區塊號bn減去上一次攻擊發生的區塊號bnij獲得,可知連續攻擊時ng很小.表示未違規情況下系統中信用度最低的用戶對應的難度,表示最后一次違規時機構信用度對應的PoW 難度,η則表示審計節點共謀的概率.當η超過了合約中設定的閾值,就會觸發事件通知IDM 對共謀雙方采取相應的懲罰.

以上是本文通過信用度獎懲機制實現對機構惡意行為的約束,從而保護系統穩定性的方法.

2.4 EHR-SCAC 的智能合約訪問控制

在我們的系統中,智能合約負責所有交易的邏輯處理.客戶端利用Web3.js[23]使患者、機構可以調用智能合約接口函數.圖4 展示了合約中數據結構和函數的設計.圖中展示了變量在合約中的實際存儲類型、合約的內部函數和對外的接口函數以及系統中涉及的結構體.函數的參數圖中未給出,在后文算法描述過程中將給出函數的參數.其中,“+”表示外部可調用,“-”表示只能是合約內部可調用,“:”后表示數據存儲類型,“→”表示映射關系.

從圖4 中可以看到智能合約分為三個部分:智能合約狀態變量、智能合約事件以及智能合約函數.其中智能合約狀態變量提供了永久性存儲在區塊鏈中的數據,為用戶身份驗證、患者共享EHR、機構共享研究報告、機構信用度計算提供數據支撐;智能合約事件用于通知鏈外世界,實現鏈外信息與區塊鏈信息的交互;智能合約函數分為內部函數和接口函數,內部函數用于合約內部事務的處理,接口函數供用戶調用.表1 給出了這三個部分變量和函數的具體作用.

以上是EHR-SCAC 系統合約的設計,接下來將對系統中節點注冊、患者共享EHR、機構共享研究報告、患者設置訪問控制參數、機構請求EHR 和信用度特征收集這六個過程進行詳細描述.

2.4.1 節點注冊

算法1 由用戶和IDM 執行,輸入的參數有用戶的真實身份ID,用戶身份證明信息VID,用戶以太坊地址Eth_address,用戶以太坊公鑰pk.該算法用于登記用戶,同時將必要的用戶信息存入區塊鏈中.

算法 1.節點注冊算法

用戶注冊了以太坊賬號后可以向IDM 申請將信息登記到區塊鏈中.在該過程中,IDM 驗證用戶身份信息,身份驗證成功后IDM 調用合約接口node_register()將用戶的信息寫入區塊鏈.如果用戶是機構,智能合約會初始化機構的信用度屬性,屬性信息被記錄到變量pk_credit[pk]中,然后將機構信息更新到審計節點變量audit_node中.節點注冊使得用戶成為EHR-SCAC 系統的一員,為患者共享EHR和機構請求患者共享的EHR 做準備.

2.4.2 訪問控制參數設置

算法2 由患者執行,輸入的參數有患者成員公鑰pkp,患者以太坊地址Eth_address,訪問控制參數集attr.交易成功返回交易ID:Policy_TXID,失敗則返回faile.

患者成功加入區塊鏈后可以調用合約設置訪問控制參數,患者調用合約函數set_strategy()創建交易Policy_TXID,合約通過verify_pk()驗證患者是否完成節點注冊,驗證后將患者訪問控制策略attr存入合約變量strategy[pk]指向的結構體pk_strategy中.

算法 2.訪問控制參數設置算法

2.4.3 EHR 的共享

算法3 由患者執行,輸入的參數有EHR 的索引url,url的hash 值url_hash,患者成員公鑰pkp,患者以太坊地址Eth_address,患者加密EHR 的對稱密鑰,EHR 的hash 值ehr_hash,醫院的成員公鑰pkh,醫生的簽名sigd.交易成功返回交易ID:EHR_TXID,失敗則返回faile.

算法 3.EHR 共享算法

圖4 EHR-SCAC 的智能合約實現Fig.4 Smart contract implementation of EHR-SCAC

表1 EHR-SCAC 智能合約變量和函數說明Table 1 Description of EHR-SCAC smart contract variables and functions

該過程的執行前提是患者已經完成第2.2 節工作流程的②③兩步,得到必要的參數后患者調用合約函數contribute_EHR()創建共享EHR 合約交易EHR_TXID.合約內部執行函數verify_pk()驗證患者注冊身份,驗證通過后,EHR 的相關信息存入EHR_share[url_hash]變量中,該變量指向EHR_sharing結構體,同時合約為該EHR 初始化白名單url_whitelist[url_hash],將患者的信息以及解密密鑰存入該白名單所指向的結構體pk_whitelist中.最后,合約調用內部函數set_url_pk()將患者與EHR 的關系記錄到變量url_pk[url_hash]中.

2.4.4 研究報告的共享

算法4 由機構和審核節點執行,輸入的參數有研究報告索引r_url,索引的hash 值r_hash,機構成員公鑰pkI,機構的以太坊地址Eth_addressI,審核節點成員資格公鑰pkA,審核節點的以太坊地址Eth_addressA.交易成功返回此次交易ID:Research_TXID;失敗返回faile.

算法 4.研究報告共享算法

患者看病時無法避免誤診情況,機構在發現患者共享的EHR 存在誤診后,可以進行修改,并將研究報告發送到云端供審計節點審查.隨后機構調用合約函數contribute_research() 共享研究報告.contribute_research()會觸發事件audit_vote(),監聽該事件的審計節點鏈下審核研究報告.審計節點pkA審核通過后調用合約函數agree_research()來增加con_research[r_hash].voteCount的值,重復投票不會增加投票數.Research_TXID中的voteCount需在規定時間set_timestamp內超過預先設定的閾值set_threshold.同時鏈下機構將修改的EHR 和對EHR 的hash 值的簽名sigI發送給IDM,IDM 轉發給患者,患者重復算法3 的過程重新共享更正后的EHR,并通過調用correct_new_url()函數將更正后的url存入錯誤EHR 的記錄中.

2.4.5 EHR 的訪問

算法5 由請求患者EHR 的機構執行.輸入的參數有患者的成員資格公鑰pkp,EHR 索引hash值url_hash,請求者成員資格公鑰pkr,請求者的以太坊地址Eth_address,審計節點的簽名sigA,審計節點的成員資格公鑰pkA.交易成功返回交易ID:Requet_TXID,失敗則根據失敗類型返回illegal_request,forged,faile.

如果機構在患者EHR 白名單中,則可以直接查詢到存儲的解密密鑰.否則機構執行該算法前需要獲取申請該EHR 的權限,所以機構需要先調用函數request_EHR()獲取審計節點的簽名sigA.拿到簽名sigA后機構調用合約函數request_smk_pk(),智能合約執行函數verify_pk(),verify_url(),verify_request()驗證請求者是否存在違規行為,其中第一個驗證函數檢測s1 違規行為,其余兩個驗證函數檢測s2 違規行為.一旦驗證出請求者存在違規,就會計算審計節點的共謀概率η,η超過閾值則會觸發事件collusion()通知IDM,IDM 鏈下給與共謀雙方懲罰.通過驗證以及患者訪問控制策略strategy[pkp]后,合約觸發事件store_smk_pk(),IDM通知患者生成重加密密鑰[K]p-r,患者將重加密密鑰發送到云端,云端執行代理重加密后將解密密鑰發給請求者.

算法 5.EHR 訪問算法

2.4.6 信用度屬性收集

算法6 由區塊鏈中的共識節點執行.輸入的參數有新區塊new_blockId,機構成員公鑰pkI和區塊中的合約交易TXID.該算法應該包含在算法3~ 5 中,為了方便說明,將所有涉及改變機構信用度屬性的交易集中到一起說明.

為了給患者營造可信任的EHR 共享環境,在智能合約中我們提供了機構信用度屬性的實時更新和計算.共識節點生成新區塊時,智能合約在處理這些交易時會自動更新交易中相關機構的信用度屬性信息,即圖2 中的行為特征的值.

算法 6.信用度屬性收集算法

3 理論與實驗分析

本節對系統的模型特點、安全性、用戶信用度以及區塊鏈性能進行理論和實驗分析.我們在配置為I7-4720HQ 處理器、12 GB 內存、1 TB 機械硬盤的Windows 10 系統下進行實驗.我們給出了EHRSCAC 模型系統的實現,如圖5 所示.區塊鏈維護方面使用geth@1.8.3-stable,智能合約的部署使用truffle@v5.1.18.使用Web3.js@1.2.6 開發與區塊鏈交互的前端.數據分析采用MATLAB R2018a.

圖5 EHR-SCAC 系統整體框架Fig.5 EHR-SCAC system overall framework

通過Go Ethereum[24]我們建立了PoA[25]私有區塊鏈.Web 客戶端通過Web3.js 發送交易并與用Solidity[26]編寫的智能合約進行交互.

3.1 系統模型特點

與其他訪問控制模型相比,EHR-SCAC 具有一定的優勢.EHR-SCAC 采用模糊層次分析法,提供具有參考性的信用度計算方法.且機構信用度屬性的動態變化使得機構的信用度具有實時性,較文獻[15]的組織成員訪問控制和文獻[17]中屬性訪問控制更具動態性.患者可以根據合約中提供的參數,動態地修改訪問控制策略,較文獻[12-13]的訪問控制更加靈活,智能合約的設計更輕量.表2展示了EHR-SCAC 模型與其他文獻模型的對比.

表2 EHR-SCAC 與其他模型功能特性的對比Table 2 Comparison of the functional characteristics of EHR-SCAC and other models

3.2 安全性分析

1) 隱私性.本文利用密碼學技術和區塊鏈技術,保證共享數據的隱私性,患者EHR 中的真實身份可以采用成員公鑰pk,保證了用戶的匿名性,并且不會對監管造成困擾.

2) 不可偽造性.在患者將EHR 上傳到云服務器之前,醫生需要簽署EHR.當患者將EHR 上傳到云時,必須將醫生的簽名一起上傳.這不僅劃定了醫療糾紛責任歸屬,還確保了電子病歷的完整性.

3) 透明性.請求者對EHR 的訪問會記錄在區塊鏈中.請求EHR 交易中記錄了請求者的各項屬性和請求時間,這些屬性無論是通過區塊鏈獲取還是通過預言機模式獲取都是公開可信的.患者可以在區塊鏈中查看獲取請求權限的訪問者以及他們訪問的時間,保證了系統的透明性.

4) 穩定性.我們采用PoA 共識機制,只有少數節點需要對區塊進行驗證,隨著區塊鏈規模的擴大,這項措施可以降低區塊的挖掘成本.同時,我們的信用度獎懲機制和監督機制有效地阻止了節點的無效交易攻擊行為,維護了區塊鏈的穩定性.

3.3 用戶信用度分析

第2.3.1 節中介紹了信用度的計算方法,使用FAHP 對行為特征的重要性程度進行劃分,最后計算出各部分的特征權重和特性權重.其中:功能特性P的重要性劃分為p2 >p1=p3 >p4=p5,可靠特性R的重要性劃分為r1=r2,安全特性的重要性劃分為s1 >s2,特性的重要性劃分為S>R>P.通過MATLAB 計算出各特性下特征的權重以及特性的權重分別為

得到權重數據后,就可以在智能合約寫出信用度計算公式.需要注意的是目前以太坊的智能合約還不支持浮點數運算,所以在實際設計中需要將這些權重擴大為整數.為了模擬現實應用場景,我們預先配置了兩家三級、兩家二級和兩家一級共6 個授權的醫院節點和一個IDM 節點,其中三個級別醫院正面行為特征數值變化速度約為3:2:1,負面行為特征數值變化約為1:2:3.通過Web3.js編寫的客戶端模擬用戶發送合約交易到區塊鏈的過程,在共識節點處理這些合約交易時,智能合約會記錄各醫院信用度屬性的變化.

當PoA 私有鏈運行一段時間后,可以看到三種級別的醫院信用度的波動范圍,如圖6 所示,三個級別醫院信用度最終分別在0.94,0.86 和0.73 左右波動.高等級的機構擁有雄厚的資金和人力去研究醫學難題,隨著機構等級的降低,機構信用度下降,這不僅符合實驗結果,也符合實際情況.

圖6 三種信用度變化趨勢Fig.6 Three levels of credit changes

圖7 違規行為s1 信用度變化Fig.7 Changes in credit rating of s1 violation

待系統運行穩定后,對三個級別的醫院分別執行違規行為s1 操作,信用度變化如圖7 所示,其中三甲醫院一開始信用度處于恒定不變的原因是該醫院此階段信用度屬性是系統中最高的,由于要對信用度屬性進行歸一化操作(系統中信用屬性最低值均為0),所以三甲醫院各項信用度屬性歸一化后的值保持不變.然后對三個級別的醫院執行違規行為s2 操作,信用度變化如圖8 所示.從這兩張圖可以看出,機構在做出違規行為s1 操作后,信用度有明顯的下降,而做出違規行為s2 操作后,機構信用度的下降不是很明顯.隨著時間的推移,三個級別醫院的信用度逐漸恢復到原來的水平.違規行為s2 操作對醫院信用度懲罰不是很明顯,在合約中我們記錄了醫院違規行為的次數,如式(6)中所示,如果醫院再進行一次違規行為s2 操作,其信用度將快速下降.

為了避免s1,s2 行為攻擊占用系統資源,我們將信用度和請求EHR 的難度相關聯.醫院請求EHR時必須解決PoW 難題.經過測試,難度變化與完成PoW 難題的時間如圖9 所示.根據圖9 的結果,當醫院進行違規操作時,醫院執行PoW 算法的時間將迅速上升.

圖8 違規行為s2 信用度變化Fig.8 Changes in credit rating of s2 violation

圖9 PoW 難度變化與運行時間Fig.9 PoW difficulty change and running time

圖10 基于信用度的PoW 難度Fig.10 PoW difficulty based on credit

圖10 展示了三個等級醫院正常信用度、s1 違規一次、s2 違規一次以及s2 違規兩次情況下請求EHR 交易的PoW 難度對應圖.可以看到當惡意攻擊發生時,醫院請求EHR 的PoW 難度增加.

圖11 當機構與審計節點共謀攻擊系統時,共謀概率 η 的變化Fig.11 Changes in the collusion probability η when the organization and the audit node collude to attack the system

在第2.3.2 節中,我們提到機構與審計節點存在共謀行為并設計了監測共謀行為的方法.圖11展示了機構與審計節點共謀攻擊系統時,系統監測到的共謀概率η的變化.從圖11 中可以看出,s1 共謀攻擊更容易被監測到.圖11(b)中高信用度的節點第2 次執行s2 攻擊后,信用度懲罰不夠明顯.但是,高信用度節點不斷發起s2 攻擊后,系統監測到的共謀概率持續上升.所以,我們制定的共謀監測制度可以很好地維護系統穩定.

3.4 區塊鏈性能評估

我們在PoA 私有鏈中設置了6 個節點,以1個節點挖礦,其余5 個節點不停地發送交易.我們分別測試了發送共享EHR 和請求EHR 交易的處理時間.同時對PoA 私有鏈出塊時間進行了更改,通過出塊時間與區塊中交易數的比值來觀察交易的處理速度.從表3 中可以看出交易平均處理時間在一定的范圍內波動,出塊速度對于交易處理速度沒有影響.由于出塊速度的快慢會影響用戶客戶端的響應速度,所以更快的出塊速度有利于及時向用戶反饋交易結果.

表3 不同出塊時間區塊吞吐量和交易處理速度Table 3 Block throughput and transaction processing speed at different block generation times

本文是通過智能合約實現訪問控制,而文獻[14,16]主要使用密碼學技術實現訪問控制,與本文差異較大,性能上不適合進行比較.文獻[12-13]與本文均采用智能合約進行訪問控制的設計.文獻[12-13]通過觸發合約事件通知代理重加密節點,使用同態代理重加密技術為請求者重新加密解密EHR 的對稱密鑰[smk]pk.不同于文獻[12-13],本文由患者生成重加密密鑰[K]p-r,再由云端鏈下為請求者重新加密解密EHR 的對稱密鑰.文獻[13]與文獻[12]的智能合約類似,所以我們僅討論文獻[12]中的交易流程.為了更好地研究本文智能合約訪問控制性能,我們將節點登記、患者共享EHR 和請求者請求EHR三個主要交易的交易反饋時延與文獻[12]進行比較.

為了方便比較,將區塊生成時間、同態代理重加密時間、本文的代理重加密時間分別記為TBT,THT,TRT.對文獻[12]和本文節點登記、患者共享EHR和請求者請求EHR 的分析如下:

1) 文獻[12]中節點注冊首先由患者所在的醫療提供商調用智能合約創建節點登記交易,然后智能合約觸發事件讓投票節點驗證新節點,投票節點創建交易寫入驗證結果,最后智能合約觸發事件通知患者節點,患者節點創建交易寫入是否同意加入區塊鏈,所以文獻[12]的節點登記至少需要3TBT的時間.本文節點登記需要用戶調用合約創建一筆交易,即至少需要TBT的時間.

2) 文獻[12]中患者共享EHR 時,由醫療提供商調用智能合約創建交易將EHR 相關信息寫入區塊鏈.本文患者共享EHR 時,由患者調用智能合約創建交易將EHR 相關信息寫入區塊鏈中,與文獻[12]類似,均至少需要TBT的時間.

3) 文獻[12]中請求者請求患者EHR 時,首先需要患者EHR 所在的醫療服務商調用智能合約創建交易驗證請求者身份.然后觸發合約事件,代理重加密節點需要響應事件創建交易將各自加密的大素數p發送給智能合約,智能合約利用同態加密方法將這些大素數p生成主密鑰master-p,并用請求者的公鑰加密,同時智能合約使用同態加密方法用master-p加密smk(用于加密EHR 的對稱密鑰)并發送給代理節點.代理節點最后解密自己的部分,然后再創建交易發送給智能合約將部分解密后的盲信息寫入區塊鏈,最后由智能合約利用同態法計算出解密EHR 的對稱密鑰.所以在文獻[12]中請求EHR 的交易的反饋時延至少需要3TBT+THT.在本文中,請求者需要調用兩次合約,一個是獲取審計節點的簽名sigA,另一個是請求EHR 的解密密鑰,最終由云端執行代理重加密將解密密鑰發給請求者.

由上述分析可知,本文基于智能合約的EHR共享訪問控制模型較文獻[12-13]交易反饋延時更具優勢,具體比較如表4 所示.

表4 區塊鏈交易時延比較Table 4 Blockchain transaction delay comparison

4 結束語

在當今信息爆炸的時代,數據共享對各行各業的發展起著至關重要的作用.本文就醫療行業中EHR 共享的特點和安全隱私問題,提出一種基于集成信用度評估智能合約的安全數據共享訪問控制模型.我們將信用度評估和訪問控制策略集成到智能合約中,并提出信用度獎懲機制和共謀監督機制來維護區塊鏈的安全和穩定.同時,借助區塊鏈所具有的不可篡改、可追溯、透明性的特點,為患者提供了安全可信的EHR 共享平臺.實驗表明,該模型可以有效地分析用戶行為,動態更新用戶的信用度屬性和動態控制EHR 的訪問.未來我們將研究多鏈合作,將信用度、審計、共享等分隔開來,形成各功能領域的去中心化和全局上的統一.

猜你喜歡
智能用戶
智能制造 反思與期望
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
智能制造·AI未來
商周刊(2018年18期)2018-09-21 09:14:46
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
主站蜘蛛池模板: 久久久无码人妻精品无码| 一本一本大道香蕉久在线播放| 国产91精品久久| 91福利在线观看视频| 亚洲国产综合精品一区| 亚洲第一区在线| 风韵丰满熟妇啪啪区老熟熟女| 欧美午夜在线视频| 老色鬼欧美精品| 伊人久久大香线蕉综合影视| 国产真实自在自线免费精品| 日韩欧美网址| 久久永久精品免费视频| 任我操在线视频| 亚洲 日韩 激情 无码 中出| 农村乱人伦一区二区| 韩日无码在线不卡| 91香蕉国产亚洲一二三区| 无码国产伊人| 熟女日韩精品2区| 热这里只有精品国产热门精品| 99re66精品视频在线观看| 亚洲国产一区在线观看| 亚洲精品久综合蜜| 日韩欧美国产成人| 又爽又大又黄a级毛片在线视频| 无码内射中文字幕岛国片| 亚洲AⅤ综合在线欧美一区| 欧美一区二区三区欧美日韩亚洲| 亚洲综合色区在线播放2019| 国产精品毛片一区| jizz亚洲高清在线观看| 色综合久久88色综合天天提莫| 又爽又黄又无遮挡网站| 亚洲成av人无码综合在线观看| 亚洲无码精彩视频在线观看| 国产成人1024精品| 色视频国产| 天天色天天操综合网| 在线一级毛片| 久久精品aⅴ无码中文字幕| 亚洲不卡网| 免费毛片全部不收费的| 91在线视频福利| 国产精品无码翘臀在线看纯欲| 一级毛片无毒不卡直接观看| 欧美一级专区免费大片| 国产欧美网站| 国产毛片不卡| 国产91小视频| 国产aaaaa一级毛片| 国产高清自拍视频| 欧美天堂在线| 伊人91在线| 欧美日韩一区二区在线播放| 香蕉久人久人青草青草| 欧美午夜网| 欧美性猛交一区二区三区| 熟妇无码人妻| 色婷婷成人网| 久久久久久久久亚洲精品| 国产精品一区不卡| 一级片免费网站| 一级全免费视频播放| 国产美女精品人人做人人爽| 婷婷六月激情综合一区| 国内老司机精品视频在线播出| 国产女人18毛片水真多1| 精品一区二区三区视频免费观看| 亚洲第一成网站| 尤物视频一区| 在线播放国产99re| 国产精品伦视频观看免费| 26uuu国产精品视频| 99视频精品全国免费品| 国产在线视频二区| 国产高清不卡| 中文字幕亚洲综久久2021| 老司机精品久久| 中文字幕在线日本| 亚洲成在线观看| 欧美成人亚洲综合精品欧美激情|