• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于集成信用度評(píng)估智能合約的安全數(shù)據(jù)共享模型

      2021-04-24 12:33:34張樂(lè)君劉智棟
      自動(dòng)化學(xué)報(bào) 2021年3期
      關(guān)鍵詞:信用度請(qǐng)求者訪問(wèn)控制

      張樂(lè)君 劉智棟 謝 國(guó) 薛 霄

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

      針對(duì)這些問(wèn)題,許多研究[5-8]提出了用于云服務(wù)器的存儲(chǔ)、管理和共享技術(shù).這些研究使用不同的密碼學(xué)技術(shù)和云技術(shù)設(shè)計(jì)EHR 共享訪問(wèn)控制模型以實(shí)現(xiàn)隱私保護(hù)和訪問(wèn)控制.盡管這些研究高度重視數(shù)據(jù)安全和隱私保護(hù),但系統(tǒng)仍然存在患者密鑰管理困難、EHR 共享透明度不高以及密鑰存在泄露風(fēng)險(xiǎn)等問(wèn)題.

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

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

      現(xiàn)有的EHR 共享研究中缺乏信用度評(píng)估機(jī)制,本文采用云服務(wù)和區(qū)塊鏈技術(shù)相結(jié)合的模式,在區(qū)塊鏈智能合約中加入用戶信用度評(píng)估機(jī)制,為患者提供動(dòng)態(tài)可調(diào)節(jié)的訪問(wèn)控制策略.本文的主要貢獻(xiàn)有以下幾個(gè)方面:

      1) 提出了一種信用度評(píng)估機(jī)制,將信用度評(píng)估機(jī)制集成到智能合約訪問(wèn)控制中,在患者缺乏對(duì)第三方信任的環(huán)境中為患者提供信用度參考.通過(guò)智能合約,患者可以動(dòng)態(tài)地調(diào)節(jié)訪問(wèn)控制策略.

      2) 提出將云存儲(chǔ)和基于權(quán)威證明(Proof of authority,PoA)共識(shí)機(jī)制的區(qū)塊鏈相結(jié)合的框架.云存儲(chǔ)用于存儲(chǔ)加密的EHR,PoA 共識(shí)區(qū)塊鏈保留加密EHR 的索引.我們對(duì)交易處理速度進(jìn)行了統(tǒng)計(jì)分析,證明了所提模型的可行性.

      3) 基于以太坊Go Ethereum 開(kāi)發(fā)了所提模型的系統(tǒng),建立了一個(gè)私有鏈測(cè)試網(wǎng)絡(luò).我們分析了系統(tǒng)中可能存在的惡意攻擊和共謀行為,并建立了基于信用度的獎(jiǎng)懲機(jī)制和監(jiān)督機(jī)制.實(shí)驗(yàn)結(jié)果表明我們的機(jī)制能有效阻止惡意攻擊行為并及時(shí)發(fā)現(xiàn)共謀行為.最后,理論分析表明,我們的模型較現(xiàn)有一些通過(guò)智能合約實(shí)現(xiàn)EHR 訪問(wèn)控制的模型更簡(jiǎn)單,交易反饋延時(shí)更少.

      1 預(yù)備知識(shí)

      本節(jié)將介紹本文用到的智能合約技術(shù)和密碼學(xué)技術(shù).

      1.1 智能合約

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

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

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

      2 基于集成信用度評(píng)估智能合約的安全數(shù)據(jù)共享模型

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

      2.1 EHR-SCAC 系統(tǒng)模型

      如圖1 所示,EHR-SCAC 分為三層架構(gòu),由數(shù)據(jù)獲取層、數(shù)據(jù)存儲(chǔ)層和數(shù)據(jù)共享層組成.

      圖1 EHR-SCAC 整體架構(gòu)Fig.1 EHR-SCAC overall framework

      2.1.1 數(shù)據(jù)獲取層

      在本層中,EHR 由醫(yī)生創(chuàng)建并發(fā)送給醫(yī)院,醫(yī)院整理格式后,由醫(yī)生簽名發(fā)送給患者.簽名的目的是確保 EHR 的完整性.EHR 的共享權(quán)和所有權(quán)屬于患者.同時(shí),機(jī)構(gòu)在研究患者 EHR 時(shí),可能發(fā)現(xiàn)EHR 存在誤診,所以機(jī)構(gòu)可以共享他們的研究報(bào)告.

      2.1.2 數(shù)據(jù)存儲(chǔ)層

      數(shù)據(jù)存儲(chǔ)層的主要功能是存儲(chǔ)加密的EHR 和給區(qū)塊鏈提供EHR 的存儲(chǔ)索引url,數(shù)據(jù)存儲(chǔ)層由以下兩部分組成.

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

      2) PoA 區(qū)塊鏈.存儲(chǔ)EHR 的索引url并實(shí)現(xiàn)EHR 共享.患者通過(guò)區(qū)塊鏈中智能合約預(yù)先定義訪問(wèn)控制策略,確保EHR 的安全共享,任何人對(duì)EHR的訪問(wèn)都將保存在區(qū)塊鏈網(wǎng)絡(luò)中.同時(shí),身份管理中心 (Identity management center,IDM)和審計(jì)節(jié)點(diǎn)充當(dāng)了鏈外數(shù)據(jù)進(jìn)入?yún)^(qū)塊鏈的媒介,起到身份認(rèn)證、審計(jì)和監(jiān)督的作用.

      2.1.3 數(shù)據(jù)共享層

      在本層中,已身份認(rèn)證過(guò)的醫(yī)療工作者、機(jī)構(gòu)可以訪問(wèn)患者的EHR.方便醫(yī)生了解患者的病歷史和給予患者更好的治療,同時(shí)也為醫(yī)療機(jī)構(gòu)提供了重要的研究資料.

      2.2 EHR-SCAC 工作流程

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

      ① 用戶身份登記:用戶將真實(shí)身份ID和身份證明VID發(fā)送給IDM,IDM 驗(yàn)證用戶身份.同時(shí),IDM 會(huì)調(diào)用智能合約對(duì)用戶進(jìn)行成員登記,用戶以太坊公鑰pk即為成員公鑰.將必要的用戶信息存儲(chǔ)在區(qū)塊鏈中.如果用戶是機(jī)構(gòu),則機(jī)構(gòu)會(huì)成為審計(jì)節(jié)點(diǎn).

      ② 身份認(rèn)證后的患者,可以調(diào)用智能合約設(shè)置EHR 的全局訪問(wèn)控制策略.

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

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

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

      ⑥ 患者使用以太坊公鑰pkp加密smk獲得,然后調(diào)用智能合約的共享EHR 接口函數(shù),將EHR 的索引等信息存入?yún)^(qū)塊鏈.智能合約檢測(cè)患者的身份注冊(cè)信息,驗(yàn)證通過(guò)后合約會(huì)記錄url與患者以太坊公鑰pkp的對(duì)應(yīng)關(guān)系,將必要的數(shù)據(jù)存儲(chǔ)到合約相關(guān)的變量中.同時(shí),合約會(huì)為該EHR初始化一個(gè)白名單并將患者加入其中.隨后,患者便可調(diào)用合約給白名單添加成員,方便非機(jī)構(gòu)用戶如醫(yī)生的訪問(wèn).

      ⑦ 機(jī)構(gòu)在研究EHR 時(shí)可能發(fā)現(xiàn)患者的EHR存在誤診,機(jī)構(gòu)可以更正EHR,將研究報(bào)告證明發(fā)布到云端.云端返回研究報(bào)告的索引r_url.機(jī)構(gòu)調(diào)用智能合約共享研究報(bào)告r_url.與預(yù)言機(jī)機(jī)制相同,合約會(huì)觸發(fā)投票事件通知審計(jì)節(jié)點(diǎn)根據(jù)研究報(bào)告索引在鏈下對(duì)報(bào)告進(jìn)行審核.審計(jì)節(jié)點(diǎn)會(huì)調(diào)用智能合約改變研究報(bào)告投票狀態(tài)變量.當(dāng)投票數(shù)超過(guò)設(shè)定的閾值,機(jī)構(gòu)便成功共享研究報(bào)告,這有利于機(jī)構(gòu)信用度的增加.同時(shí),機(jī)構(gòu)鏈下通知IDM,IDM聯(lián)系患者重新共享更正后的EHR.該過(guò)程患者重復(fù)②③④操作,EHR 的醫(yī)療糾紛也由原先的醫(yī)生負(fù)責(zé)變?yōu)闄C(jī)構(gòu)負(fù)責(zé),且需要將更正后的EHR 的索引記錄到錯(cuò)誤EHR 記錄的結(jié)構(gòu)體變量中.

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

      2.3 EHR-SCAC 的信用度評(píng)估機(jī)制

      本節(jié)提出一種信用度評(píng)估方法,同時(shí)設(shè)計(jì)信用度獎(jiǎng)懲機(jī)制和監(jiān)督機(jī)制用來(lái)維護(hù)系統(tǒng)的穩(wěn)定和安全.

      2.3.1 EHR-SCAC 信用度評(píng)估

      機(jī)構(gòu)的信用度并不能從單一特性進(jìn)行評(píng)判,本文采用模糊層次分析法(Fuzzy analytic hierarchy process,F(xiàn)AHP)[20-21]對(duì)用戶的信用度進(jìn)行評(píng)判.先將用戶的信用度分為n個(gè)特性,再把每個(gè)特性分為若干個(gè)特征類型,將模糊的用戶行為信用評(píng)估問(wèn)題轉(zhuǎn)化為簡(jiǎn)單的、明確的信用特征加權(quán)求和問(wèn)題.

      FAHP 解決問(wèn)題的步驟分為4 步:1) 分析問(wèn)題,將問(wèn)題劃分為多層次結(jié)構(gòu);2)以上一級(jí)要素為準(zhǔn),將同一層次的特征兩兩比較,獲得初始判斷矩陣;3)將初始判斷矩陣轉(zhuǎn)換為模糊判斷一致矩陣,通過(guò)計(jì)算確定各特征以及各特性的權(quán)重;4)根據(jù)規(guī)范化的特征值和權(quán)重計(jì)算出信用度.

      步驟 1.如圖2 所示,將信用度分為3 層.為了不給區(qū)塊鏈造成負(fù)擔(dān),需要建立易檢測(cè)、易收集的用戶行為特征方案.在處理合約交易時(shí)會(huì)更新機(jī)構(gòu)的這些行為特征(在第2.4 節(jié)中將作詳細(xì)說(shuō)明).

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

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

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

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

      步驟 3.使用式(3)計(jì)算服務(wù)特性下各特征的權(quán)重向量

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

      步驟 4.根據(jù)式(4)計(jì)算機(jī)構(gòu)的信用度.

      即正面信用度為正面行為特征與其權(quán)重乘積的和,負(fù)面信用度為負(fù)面行為特征與其權(quán)重乘積的和.但是,對(duì)于圖2 中s1 和s2 這類違規(guī)行為的計(jì)算需要進(jìn)行改進(jìn).對(duì)這兩個(gè)行為目的是監(jiān)督,同時(shí)考慮到機(jī)構(gòu)的誤操作會(huì)導(dǎo)致此類事件發(fā)生,所以機(jī)構(gòu)如果存在s1 和s2 違規(guī)時(shí),系統(tǒng)應(yīng)能及時(shí)對(duì)機(jī)構(gòu)的信用度進(jìn)行懲罰,并且機(jī)構(gòu)的信用度隨時(shí)間流逝能夠逐漸恢復(fù).所以,eij為s1 和s2 時(shí),這兩個(gè)行為特征的計(jì)算需乘以一個(gè)系數(shù)ε,ε如式(6)所示.nij表示機(jī)構(gòu)做出負(fù)面行為特征eij的次數(shù).bn表示當(dāng)前區(qū)塊號(hào),bnij表示負(fù)面行為特征eij最后一次發(fā)生時(shí)所在的區(qū)塊號(hào).

      2.3.2 信用度獎(jiǎng)懲機(jī)制

      比特幣和以太坊采用PoW 共識(shí)機(jī)制來(lái)維護(hù)區(qū)塊鏈的安全,使得惡意節(jié)點(diǎn)很難成功攻擊區(qū)塊鏈,除非惡意節(jié)點(diǎn)掌握了全網(wǎng)51%的算力.雖然PoW機(jī)制對(duì)于交易驗(yàn)證速度要求極高的場(chǎng)景應(yīng)用十分有限,但其思想值得學(xué)習(xí)[22].

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

      1)未經(jīng)授權(quán)訪問(wèn)行為

      機(jī)構(gòu)請(qǐng)求EHR 時(shí),url對(duì)應(yīng)的患者pkp可能會(huì)被未通過(guò)患者訪問(wèn)控制策略的機(jī)構(gòu)替換,選擇訪問(wèn)控制策略要求低的患者,從而繞過(guò)EHR 持有者的訪問(wèn)控制策略.與前面類似,未通過(guò)患者訪問(wèn)控制策略的機(jī)構(gòu)利用其他高信用度節(jié)點(diǎn)的成員公鑰pk來(lái)發(fā)送合約交易,以此達(dá)到訪問(wèn)患者EHR 的目的.

      2)偽造簽名行為

      機(jī)構(gòu)請(qǐng)求EHR 的解密密鑰前需要獲取審計(jì)節(jié)點(diǎn)的簽名sigA,所以機(jī)構(gòu)可能偽造簽名直接申請(qǐng)解密密鑰.

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

      其中,Diff表示機(jī)構(gòu)請(qǐng)求EHR 的難度.λ是一個(gè)固定值,其應(yīng)該根據(jù)機(jī)構(gòu)的普遍算力進(jìn)行設(shè)置,實(shí)際應(yīng)用中可以參考比特幣的算力更新方法,根據(jù)出塊時(shí)間即算力調(diào)整λ.本文測(cè)試了實(shí)驗(yàn)設(shè)備的PoW難度與PoW 算法執(zhí)行時(shí)間,根據(jù)測(cè)試結(jié)果將λ設(shè)為8,使機(jī)構(gòu)違規(guī)情況下PoW 算法執(zhí)行時(shí)間能夠達(dá)到懲罰目的,同時(shí)保證正常信用度機(jī)構(gòu)PoW 算法執(zhí)行時(shí)間很低.

      下面介紹機(jī)構(gòu)請(qǐng)求EHR 前解決PoW 難題的過(guò)程.如圖3 所示,1) 機(jī)構(gòu)調(diào)用智能合約請(qǐng)求索引url;2) 智能合約觸發(fā)事件隨機(jī)選舉一個(gè)審計(jì)節(jié)點(diǎn)處理機(jī)構(gòu)的請(qǐng)求;3) 審計(jì)節(jié)點(diǎn)根據(jù)機(jī)構(gòu)信用度將挑戰(zhàn)難度Diff和時(shí)間戳timestamp發(fā)送給機(jī)構(gòu);4) 機(jī)構(gòu)根據(jù)式(8)算出能夠使得out小于Diff的nonce,并將out和nonce發(fā)送給審計(jì)節(jié)點(diǎn);5) 審計(jì)節(jié)點(diǎn)對(duì)pk和url進(jìn)行簽名,并將簽名sigA發(fā)送給機(jī)構(gòu),機(jī)構(gòu)再次調(diào)用智能合約請(qǐng)求EHR 的解密密鑰,智能合約會(huì)檢測(cè)審計(jì)節(jié)點(diǎn)的簽名是否有效.

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

      圖3 機(jī)構(gòu)解決PoW 難題的過(guò)程Fig.3 The process of the institution solving the PoW problem

      其中,ng表示攻擊的區(qū)塊間隔,由當(dāng)前區(qū)塊號(hào)bn減去上一次攻擊發(fā)生的區(qū)塊號(hào)bnij獲得,可知連續(xù)攻擊時(shí)ng很小.表示未違規(guī)情況下系統(tǒng)中信用度最低的用戶對(duì)應(yīng)的難度,表示最后一次違規(guī)時(shí)機(jī)構(gòu)信用度對(duì)應(yīng)的PoW 難度,η則表示審計(jì)節(jié)點(diǎn)共謀的概率.當(dāng)η超過(guò)了合約中設(shè)定的閾值,就會(huì)觸發(fā)事件通知IDM 對(duì)共謀雙方采取相應(yīng)的懲罰.

      以上是本文通過(guò)信用度獎(jiǎng)懲機(jī)制實(shí)現(xiàn)對(duì)機(jī)構(gòu)惡意行為的約束,從而保護(hù)系統(tǒng)穩(wěn)定性的方法.

      2.4 EHR-SCAC 的智能合約訪問(wèn)控制

      在我們的系統(tǒng)中,智能合約負(fù)責(zé)所有交易的邏輯處理.客戶端利用Web3.js[23]使患者、機(jī)構(gòu)可以調(diào)用智能合約接口函數(shù).圖4 展示了合約中數(shù)據(jù)結(jié)構(gòu)和函數(shù)的設(shè)計(jì).圖中展示了變量在合約中的實(shí)際存儲(chǔ)類型、合約的內(nèi)部函數(shù)和對(duì)外的接口函數(shù)以及系統(tǒng)中涉及的結(jié)構(gòu)體.函數(shù)的參數(shù)圖中未給出,在后文算法描述過(guò)程中將給出函數(shù)的參數(shù).其中,“+”表示外部可調(diào)用,“-”表示只能是合約內(nèi)部可調(diào)用,“:”后表示數(shù)據(jù)存儲(chǔ)類型,“→”表示映射關(guān)系.

      從圖4 中可以看到智能合約分為三個(gè)部分:智能合約狀態(tài)變量、智能合約事件以及智能合約函數(shù).其中智能合約狀態(tài)變量提供了永久性存儲(chǔ)在區(qū)塊鏈中的數(shù)據(jù),為用戶身份驗(yàn)證、患者共享EHR、機(jī)構(gòu)共享研究報(bào)告、機(jī)構(gòu)信用度計(jì)算提供數(shù)據(jù)支撐;智能合約事件用于通知鏈外世界,實(shí)現(xiàn)鏈外信息與區(qū)塊鏈信息的交互;智能合約函數(shù)分為內(nèi)部函數(shù)和接口函數(shù),內(nèi)部函數(shù)用于合約內(nèi)部事務(wù)的處理,接口函數(shù)供用戶調(diào)用.表1 給出了這三個(gè)部分變量和函數(shù)的具體作用.

      以上是EHR-SCAC 系統(tǒng)合約的設(shè)計(jì),接下來(lái)將對(duì)系統(tǒng)中節(jié)點(diǎn)注冊(cè)、患者共享EHR、機(jī)構(gòu)共享研究報(bào)告、患者設(shè)置訪問(wèn)控制參數(shù)、機(jī)構(gòu)請(qǐng)求EHR 和信用度特征收集這六個(gè)過(guò)程進(jìn)行詳細(xì)描述.

      2.4.1 節(jié)點(diǎn)注冊(cè)

      算法1 由用戶和IDM 執(zhí)行,輸入的參數(shù)有用戶的真實(shí)身份ID,用戶身份證明信息VID,用戶以太坊地址Eth_address,用戶以太坊公鑰pk.該算法用于登記用戶,同時(shí)將必要的用戶信息存入?yún)^(qū)塊鏈中.

      算法 1.節(jié)點(diǎn)注冊(cè)算法

      用戶注冊(cè)了以太坊賬號(hào)后可以向IDM 申請(qǐng)將信息登記到區(qū)塊鏈中.在該過(guò)程中,IDM 驗(yàn)證用戶身份信息,身份驗(yàn)證成功后IDM 調(diào)用合約接口node_register()將用戶的信息寫入?yún)^(qū)塊鏈.如果用戶是機(jī)構(gòu),智能合約會(huì)初始化機(jī)構(gòu)的信用度屬性,屬性信息被記錄到變量pk_credit[pk]中,然后將機(jī)構(gòu)信息更新到審計(jì)節(jié)點(diǎn)變量audit_node中.節(jié)點(diǎn)注冊(cè)使得用戶成為EHR-SCAC 系統(tǒng)的一員,為患者共享EHR和機(jī)構(gòu)請(qǐng)求患者共享的EHR 做準(zhǔn)備.

      2.4.2 訪問(wèn)控制參數(shù)設(shè)置

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

      患者成功加入?yún)^(qū)塊鏈后可以調(diào)用合約設(shè)置訪問(wèn)控制參數(shù),患者調(diào)用合約函數(shù)set_strategy()創(chuàng)建交易Policy_TXID,合約通過(guò)verify_pk()驗(yàn)證患者是否完成節(jié)點(diǎn)注冊(cè),驗(yàn)證后將患者訪問(wèn)控制策略attr存入合約變量strategy[pk]指向的結(jié)構(gòu)體pk_strategy中.

      算法 2.訪問(wèn)控制參數(shù)設(shè)置算法

      2.4.3 EHR 的共享

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

      算法 3.EHR 共享算法

      圖4 EHR-SCAC 的智能合約實(shí)現(xiàn)Fig.4 Smart contract implementation of EHR-SCAC

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

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

      2.4.4 研究報(bào)告的共享

      算法4 由機(jī)構(gòu)和審核節(jié)點(diǎn)執(zhí)行,輸入的參數(shù)有研究報(bào)告索引r_url,索引的hash 值r_hash,機(jī)構(gòu)成員公鑰pkI,機(jī)構(gòu)的以太坊地址Eth_addressI,審核節(jié)點(diǎn)成員資格公鑰pkA,審核節(jié)點(diǎn)的以太坊地址Eth_addressA.交易成功返回此次交易ID:Research_TXID;失敗返回faile.

      算法 4.研究報(bào)告共享算法

      患者看病時(shí)無(wú)法避免誤診情況,機(jī)構(gòu)在發(fā)現(xiàn)患者共享的EHR 存在誤診后,可以進(jìn)行修改,并將研究報(bào)告發(fā)送到云端供審計(jì)節(jié)點(diǎn)審查.隨后機(jī)構(gòu)調(diào)用合約函數(shù)contribute_research() 共享研究報(bào)告.contribute_research()會(huì)觸發(fā)事件audit_vote(),監(jiān)聽(tīng)該事件的審計(jì)節(jié)點(diǎn)鏈下審核研究報(bào)告.審計(jì)節(jié)點(diǎn)pkA審核通過(guò)后調(diào)用合約函數(shù)agree_research()來(lái)增加con_research[r_hash].voteCount的值,重復(fù)投票不會(huì)增加投票數(shù).Research_TXID中的voteCount需在規(guī)定時(shí)間set_timestamp內(nèi)超過(guò)預(yù)先設(shè)定的閾值set_threshold.同時(shí)鏈下機(jī)構(gòu)將修改的EHR 和對(duì)EHR 的hash 值的簽名sigI發(fā)送給IDM,IDM 轉(zhuǎn)發(fā)給患者,患者重復(fù)算法3 的過(guò)程重新共享更正后的EHR,并通過(guò)調(diào)用correct_new_url()函數(shù)將更正后的url存入錯(cuò)誤EHR 的記錄中.

      2.4.5 EHR 的訪問(wèn)

      算法5 由請(qǐng)求患者EHR 的機(jī)構(gòu)執(zhí)行.輸入的參數(shù)有患者的成員資格公鑰pkp,EHR 索引hash值url_hash,請(qǐng)求者成員資格公鑰pkr,請(qǐng)求者的以太坊地址Eth_address,審計(jì)節(jié)點(diǎn)的簽名sigA,審計(jì)節(jié)點(diǎn)的成員資格公鑰pkA.交易成功返回交易ID:Requet_TXID,失敗則根據(jù)失敗類型返回illegal_request,forged,faile.

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

      算法 5.EHR 訪問(wèn)算法

      2.4.6 信用度屬性收集

      算法6 由區(qū)塊鏈中的共識(shí)節(jié)點(diǎn)執(zhí)行.輸入的參數(shù)有新區(qū)塊new_blockId,機(jī)構(gòu)成員公鑰pkI和區(qū)塊中的合約交易TXID.該算法應(yīng)該包含在算法3~ 5 中,為了方便說(shuō)明,將所有涉及改變機(jī)構(gòu)信用度屬性的交易集中到一起說(shuō)明.

      為了給患者營(yíng)造可信任的EHR 共享環(huán)境,在智能合約中我們提供了機(jī)構(gòu)信用度屬性的實(shí)時(shí)更新和計(jì)算.共識(shí)節(jié)點(diǎn)生成新區(qū)塊時(shí),智能合約在處理這些交易時(shí)會(huì)自動(dòng)更新交易中相關(guān)機(jī)構(gòu)的信用度屬性信息,即圖2 中的行為特征的值.

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

      3 理論與實(shí)驗(yàn)分析

      本節(jié)對(duì)系統(tǒng)的模型特點(diǎn)、安全性、用戶信用度以及區(qū)塊鏈性能進(jìn)行理論和實(shí)驗(yàn)分析.我們?cè)谂渲脼镮7-4720HQ 處理器、12 GB 內(nèi)存、1 TB 機(jī)械硬盤的Windows 10 系統(tǒng)下進(jìn)行實(shí)驗(yàn).我們給出了EHRSCAC 模型系統(tǒng)的實(shí)現(xiàn),如圖5 所示.區(qū)塊鏈維護(hù)方面使用geth@1.8.3-stable,智能合約的部署使用truffle@v5.1.18.使用Web3.js@1.2.6 開(kāi)發(fā)與區(qū)塊鏈交互的前端.數(shù)據(jù)分析采用MATLAB R2018a.

      圖5 EHR-SCAC 系統(tǒng)整體框架Fig.5 EHR-SCAC system overall framework

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

      3.1 系統(tǒng)模型特點(diǎn)

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

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

      3.2 安全性分析

      1) 隱私性.本文利用密碼學(xué)技術(shù)和區(qū)塊鏈技術(shù),保證共享數(shù)據(jù)的隱私性,患者EHR 中的真實(shí)身份可以采用成員公鑰pk,保證了用戶的匿名性,并且不會(huì)對(duì)監(jiān)管造成困擾.

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

      3) 透明性.請(qǐng)求者對(duì)EHR 的訪問(wèn)會(huì)記錄在區(qū)塊鏈中.請(qǐng)求EHR 交易中記錄了請(qǐng)求者的各項(xiàng)屬性和請(qǐng)求時(shí)間,這些屬性無(wú)論是通過(guò)區(qū)塊鏈獲取還是通過(guò)預(yù)言機(jī)模式獲取都是公開(kāi)可信的.患者可以在區(qū)塊鏈中查看獲取請(qǐng)求權(quán)限的訪問(wèn)者以及他們?cè)L問(wèn)的時(shí)間,保證了系統(tǒng)的透明性.

      4) 穩(wěn)定性.我們采用PoA 共識(shí)機(jī)制,只有少數(shù)節(jié)點(diǎn)需要對(duì)區(qū)塊進(jìn)行驗(yàn)證,隨著區(qū)塊鏈規(guī)模的擴(kuò)大,這項(xiàng)措施可以降低區(qū)塊的挖掘成本.同時(shí),我們的信用度獎(jiǎng)懲機(jī)制和監(jiān)督機(jī)制有效地阻止了節(jié)點(diǎn)的無(wú)效交易攻擊行為,維護(hù)了區(qū)塊鏈的穩(wěn)定性.

      3.3 用戶信用度分析

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

      得到權(quán)重?cái)?shù)據(jù)后,就可以在智能合約寫出信用度計(jì)算公式.需要注意的是目前以太坊的智能合約還不支持浮點(diǎn)數(shù)運(yùn)算,所以在實(shí)際設(shè)計(jì)中需要將這些權(quán)重?cái)U(kuò)大為整數(shù).為了模擬現(xiàn)實(shí)應(yīng)用場(chǎng)景,我們預(yù)先配置了兩家三級(jí)、兩家二級(jí)和兩家一級(jí)共6 個(gè)授權(quán)的醫(yī)院節(jié)點(diǎn)和一個(gè)IDM 節(jié)點(diǎn),其中三個(gè)級(jí)別醫(yī)院正面行為特征數(shù)值變化速度約為3:2:1,負(fù)面行為特征數(shù)值變化約為1:2:3.通過(guò)Web3.js編寫的客戶端模擬用戶發(fā)送合約交易到區(qū)塊鏈的過(guò)程,在共識(shí)節(jié)點(diǎn)處理這些合約交易時(shí),智能合約會(huì)記錄各醫(yī)院信用度屬性的變化.

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

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

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

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

      為了避免s1,s2 行為攻擊占用系統(tǒng)資源,我們將信用度和請(qǐng)求EHR 的難度相關(guān)聯(lián).醫(yī)院請(qǐng)求EHR時(shí)必須解決PoW 難題.經(jīng)過(guò)測(cè)試,難度變化與完成PoW 難題的時(shí)間如圖9 所示.根據(jù)圖9 的結(jié)果,當(dāng)醫(yī)院進(jìn)行違規(guī)操作時(shí),醫(yī)院執(zhí)行PoW 算法的時(shí)間將迅速上升.

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

      圖9 PoW 難度變化與運(yùn)行時(shí)間Fig.9 PoW difficulty change and running time

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

      圖10 展示了三個(gè)等級(jí)醫(yī)院正常信用度、s1 違規(guī)一次、s2 違規(guī)一次以及s2 違規(guī)兩次情況下請(qǐng)求EHR 交易的PoW 難度對(duì)應(yīng)圖.可以看到當(dāng)惡意攻擊發(fā)生時(shí),醫(yī)院請(qǐng)求EHR 的PoW 難度增加.

      圖11 當(dāng)機(jī)構(gòu)與審計(jì)節(jié)點(diǎn)共謀攻擊系統(tǒng)時(shí),共謀概率 η 的變化Fig.11 Changes in the collusion probability η when the organization and the audit node collude to attack the system

      在第2.3.2 節(jié)中,我們提到機(jī)構(gòu)與審計(jì)節(jié)點(diǎn)存在共謀行為并設(shè)計(jì)了監(jiān)測(cè)共謀行為的方法.圖11展示了機(jī)構(gòu)與審計(jì)節(jié)點(diǎn)共謀攻擊系統(tǒng)時(shí),系統(tǒng)監(jiān)測(cè)到的共謀概率η的變化.從圖11 中可以看出,s1 共謀攻擊更容易被監(jiān)測(cè)到.圖11(b)中高信用度的節(jié)點(diǎn)第2 次執(zhí)行s2 攻擊后,信用度懲罰不夠明顯.但是,高信用度節(jié)點(diǎn)不斷發(fā)起s2 攻擊后,系統(tǒng)監(jiān)測(cè)到的共謀概率持續(xù)上升.所以,我們制定的共謀監(jiān)測(cè)制度可以很好地維護(hù)系統(tǒng)穩(wěn)定.

      3.4 區(qū)塊鏈性能評(píng)估

      我們?cè)赑oA 私有鏈中設(shè)置了6 個(gè)節(jié)點(diǎn),以1個(gè)節(jié)點(diǎn)挖礦,其余5 個(gè)節(jié)點(diǎn)不停地發(fā)送交易.我們分別測(cè)試了發(fā)送共享EHR 和請(qǐng)求EHR 交易的處理時(shí)間.同時(shí)對(duì)PoA 私有鏈出塊時(shí)間進(jìn)行了更改,通過(guò)出塊時(shí)間與區(qū)塊中交易數(shù)的比值來(lái)觀察交易的處理速度.從表3 中可以看出交易平均處理時(shí)間在一定的范圍內(nèi)波動(dòng),出塊速度對(duì)于交易處理速度沒(méi)有影響.由于出塊速度的快慢會(huì)影響用戶客戶端的響應(yīng)速度,所以更快的出塊速度有利于及時(shí)向用戶反饋交易結(jié)果.

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

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

      為了方便比較,將區(qū)塊生成時(shí)間、同態(tài)代理重加密時(shí)間、本文的代理重加密時(shí)間分別記為TBT,THT,TRT.對(duì)文獻(xiàn)[12]和本文節(jié)點(diǎn)登記、患者共享EHR和請(qǐng)求者請(qǐng)求EHR 的分析如下:

      1) 文獻(xiàn)[12]中節(jié)點(diǎn)注冊(cè)首先由患者所在的醫(yī)療提供商調(diào)用智能合約創(chuàng)建節(jié)點(diǎn)登記交易,然后智能合約觸發(fā)事件讓投票節(jié)點(diǎn)驗(yàn)證新節(jié)點(diǎn),投票節(jié)點(diǎn)創(chuàng)建交易寫入驗(yàn)證結(jié)果,最后智能合約觸發(fā)事件通知患者節(jié)點(diǎn),患者節(jié)點(diǎn)創(chuàng)建交易寫入是否同意加入?yún)^(qū)塊鏈,所以文獻(xiàn)[12]的節(jié)點(diǎn)登記至少需要3TBT的時(shí)間.本文節(jié)點(diǎn)登記需要用戶調(diào)用合約創(chuàng)建一筆交易,即至少需要TBT的時(shí)間.

      2) 文獻(xiàn)[12]中患者共享EHR 時(shí),由醫(yī)療提供商調(diào)用智能合約創(chuàng)建交易將EHR 相關(guān)信息寫入?yún)^(qū)塊鏈.本文患者共享EHR 時(shí),由患者調(diào)用智能合約創(chuàng)建交易將EHR 相關(guān)信息寫入?yún)^(qū)塊鏈中,與文獻(xiàn)[12]類似,均至少需要TBT的時(shí)間.

      3) 文獻(xiàn)[12]中請(qǐng)求者請(qǐng)求患者EHR 時(shí),首先需要患者EHR 所在的醫(yī)療服務(wù)商調(diào)用智能合約創(chuàng)建交易驗(yàn)證請(qǐng)求者身份.然后觸發(fā)合約事件,代理重加密節(jié)點(diǎn)需要響應(yīng)事件創(chuàng)建交易將各自加密的大素?cái)?shù)p發(fā)送給智能合約,智能合約利用同態(tài)加密方法將這些大素?cái)?shù)p生成主密鑰master-p,并用請(qǐng)求者的公鑰加密,同時(shí)智能合約使用同態(tài)加密方法用master-p加密smk(用于加密EHR 的對(duì)稱密鑰)并發(fā)送給代理節(jié)點(diǎn).代理節(jié)點(diǎn)最后解密自己的部分,然后再創(chuàng)建交易發(fā)送給智能合約將部分解密后的盲信息寫入?yún)^(qū)塊鏈,最后由智能合約利用同態(tài)法計(jì)算出解密EHR 的對(duì)稱密鑰.所以在文獻(xiàn)[12]中請(qǐng)求EHR 的交易的反饋時(shí)延至少需要3TBT+THT.在本文中,請(qǐng)求者需要調(diào)用兩次合約,一個(gè)是獲取審計(jì)節(jié)點(diǎn)的簽名sigA,另一個(gè)是請(qǐng)求EHR 的解密密鑰,最終由云端執(zhí)行代理重加密將解密密鑰發(fā)給請(qǐng)求者.

      由上述分析可知,本文基于智能合約的EHR共享訪問(wèn)控制模型較文獻(xiàn)[12-13]交易反饋延時(shí)更具優(yōu)勢(shì),具體比較如表4 所示.

      表4 區(qū)塊鏈交易時(shí)延比較Table 4 Blockchain transaction delay comparison

      4 結(jié)束語(yǔ)

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

      猜你喜歡
      信用度請(qǐng)求者訪問(wèn)控制
      分 析
      意林(2023年7期)2023-06-13 13:00:55
      基于D2D 多播通信的合作內(nèi)容下載機(jī)制
      群智感知中基于云輔助的隱私信息保護(hù)機(jī)制
      基于AHP和k-means算法的電力用戶信用度評(píng)價(jià)
      漢語(yǔ)自然會(huì)話中請(qǐng)求行為的序列結(jié)構(gòu)
      ONVIF的全新主張:一致性及最訪問(wèn)控制的Profile A
      基于差值誘導(dǎo)的Web服務(wù)評(píng)價(jià)可信度的評(píng)估
      動(dòng)態(tài)自適應(yīng)訪問(wèn)控制模型
      淺析云計(jì)算環(huán)境下等級(jí)保護(hù)訪問(wèn)控制測(cè)評(píng)技術(shù)
      基于聲譽(yù)的C2C電子商務(wù)信用評(píng)價(jià)模型研究
      大邑县| 丰顺县| 大田县| 榆林市| 黄冈市| 平安县| 陇南市| 桦川县| 张家界市| 新安县| 舒兰市| 木兰县| 陇南市| 台南县| 井陉县| 湟中县| 黄石市| 景东| 凉城县| 小金县| 商洛市| 清镇市| 郸城县| 闻喜县| 嘉荫县| 炉霍县| 固阳县| 天镇县| 黑山县| 嘉祥县| 麻江县| 桃园县| 赫章县| 额尔古纳市| 香格里拉县| 察隅县| 桂东县| 新昌县| 磐石市| 丰县| 文成县|