国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于區(qū)塊鏈的電子病歷共享模型研究

2023-12-13 02:20:14翟社平白喜芳
關(guān)鍵詞:密文病歷共識(shí)

翟社平,白喜芳,童 彤

1(西安郵電大學(xué) 計(jì)算機(jī)學(xué)院,西安 710121) 2(西安郵電大學(xué) 陜西省網(wǎng)絡(luò)數(shù)據(jù)分析與智能處理重點(diǎn)實(shí)驗(yàn)室,西安 710121)

1 引 言

在醫(yī)療信息化建設(shè)進(jìn)程中,電子病歷(Electronic Medical Record,EMR)早已代替?zhèn)鹘y(tǒng)紙質(zhì)數(shù)據(jù)成為數(shù)據(jù)記錄的主力,患者診斷、治療信息存儲(chǔ)電子化使得醫(yī)療數(shù)據(jù)管理更加便捷,電子病歷的使用也隨著患者數(shù)量的增加而日益突出[1].然而,在智慧醫(yī)療快速發(fā)展的同時(shí)也不可避免的帶來(lái)一些問(wèn)題:各醫(yī)療機(jī)構(gòu)數(shù)據(jù)記錄存儲(chǔ)系統(tǒng)在共享過(guò)程中極易出現(xiàn)患者個(gè)人隱私敏感信息泄露,對(duì)患者健康數(shù)據(jù)造成損害甚至引發(fā)醫(yī)患矛盾[2].因此,如何保證共享過(guò)程中的數(shù)據(jù)安全成為公共健康和智慧醫(yī)療領(lǐng)域的研究熱點(diǎn).

區(qū)塊鏈?zhǔn)且粋€(gè)由不完全信任的多方共同交換、存儲(chǔ)和記錄交易的分布式系統(tǒng),融合多種加密機(jī)制,具有數(shù)據(jù)不可篡改、可追溯等特性[3].區(qū)塊鏈從去中心化程度分為公有鏈、私有鏈和聯(lián)盟鏈,公有鏈不需要準(zhǔn)入許可機(jī)制,所有節(jié)點(diǎn)都可加入,私有鏈?zhǔn)且环N完全由中心節(jié)點(diǎn)管理控制的區(qū)塊鏈.而聯(lián)盟鏈介于兩者之間,只允許特定網(wǎng)絡(luò)節(jié)點(diǎn)訪問(wèn),節(jié)點(diǎn)數(shù)量有限且易達(dá)成共識(shí),相比于其它兩種,聯(lián)盟鏈更適合多方協(xié)作的場(chǎng)景,因此廣泛應(yīng)用于多主體參與、部分去中心化的場(chǎng)合[4].

作為區(qū)塊鏈技術(shù)的核心,共識(shí)算法保證了區(qū)塊鏈系統(tǒng)的數(shù)據(jù)一致性,各節(jié)點(diǎn)均持有一份完整數(shù)據(jù)副本以實(shí)現(xiàn)去中心環(huán)境下數(shù)據(jù)的高度統(tǒng)一,而各類共識(shí)算法的優(yōu)劣直接影響區(qū)塊鏈系統(tǒng)的性能[5].相較于其他共識(shí)算法,由Castro和Liskov提出的實(shí)用拜占庭容錯(cuò)算法(Practical Byzantine Fault Tolerance,PBFT)[6]不需要消耗大量算力資源,且共識(shí)速度快、效率高,因此,基于PBFT共識(shí)算法的不同改進(jìn)方案被提出以適應(yīng)更多應(yīng)用場(chǎng)景下的性能需求[7].為了實(shí)現(xiàn)大規(guī)模網(wǎng)絡(luò)中低時(shí)延、高吞吐量和安全性目標(biāo),文獻(xiàn)[8]提出一種改進(jìn)的RBFT共識(shí)機(jī)制,將網(wǎng)絡(luò)進(jìn)行分片,組內(nèi)外采用不同方法進(jìn)行共識(shí),但未考慮聯(lián)盟鏈中隱私隔離性差的問(wèn)題.文獻(xiàn)[9]基于特征信任模型提出一種優(yōu)化的實(shí)用拜占庭容錯(cuò)算法(Practical Byzantine Fault Tolerance consensus algorithm based on Eigen Trust model,T-PBFT),采用交易方式評(píng)估節(jié)點(diǎn)信任度選取適合的節(jié)點(diǎn)組成共識(shí)組.文獻(xiàn)[10]使用閾值簽名技術(shù)將PBFT的廣播通信模式優(yōu)化成線性通信模式,由主節(jié)點(diǎn)負(fù)責(zé)整個(gè)通信過(guò)程,為實(shí)現(xiàn)快速響應(yīng)的特性,利用并行流水和線性視圖轉(zhuǎn)換等方法,提高整個(gè)系統(tǒng)的共識(shí)效率.文獻(xiàn)[11]提出一種投票獎(jiǎng)懲方案及其相應(yīng)的信用評(píng)估方案—拜占庭容錯(cuò)協(xié)議(consensus protocol-credit-delegated Byzantine Fault Tolerance,CDBFT),通過(guò)篩除異常節(jié)點(diǎn)來(lái)增加可靠節(jié)點(diǎn)的參與度,提高系統(tǒng)的效率和靈活性.文獻(xiàn)[12]針對(duì)PBFT不能完全應(yīng)用于大規(guī)模物聯(lián)網(wǎng)生態(tài)系統(tǒng)和區(qū)塊鏈中,提出一種基于PBFT的可擴(kuò)展多層共識(shí)機(jī)制,通過(guò)節(jié)點(diǎn)分層分組,限制組內(nèi)通信,從而將通信復(fù)雜度降到最小值.雖然PBFT共識(shí)算法具有一定優(yōu)勢(shì),但在大規(guī)模網(wǎng)絡(luò)下所有共識(shí)節(jié)點(diǎn)兩兩通信,共同參與三階段共識(shí)過(guò)程保證鏈上數(shù)據(jù)安全,導(dǎo)致整個(gè)系統(tǒng)通信開銷不斷增加.

屬性加密(Attribute-Based Encryption,ABE)是一種將用戶屬性作為公鑰應(yīng)用的加密算法,可以對(duì)區(qū)塊鏈隱私數(shù)據(jù)進(jìn)行保護(hù),同時(shí)對(duì)加密后的數(shù)據(jù)提供細(xì)粒度訪問(wèn)控制.根據(jù)密鑰和密文與屬性和訪問(wèn)結(jié)構(gòu)的對(duì)應(yīng)關(guān)系,屬性加密可分為密鑰策略(Key-Policy ABE,KP-ABE)[13]加密和密文策略(Ciphertext Policy ABE,CP-ABE)[14]加密兩種.KP-ABE加密中的密文依賴于一組屬性,而用戶私鑰依賴于訪問(wèn)結(jié)構(gòu).與KP-ABE不同的是,CP-ABE加密中用戶私鑰依賴于任意屬性數(shù)量,編碼器采用特定訪問(wèn)策略對(duì)消息進(jìn)行加密,當(dāng)且僅當(dāng)用戶屬性滿足訪問(wèn)策略時(shí)才能對(duì)其解密.因此,利用CP-ABE對(duì)電子病歷數(shù)據(jù)加密,在實(shí)現(xiàn)細(xì)粒度訪問(wèn)的同時(shí)防止患者隱私信息泄露.在現(xiàn)有大多數(shù)CP-ABE方案[15,16]中,數(shù)據(jù)擁有者一般選擇將加密數(shù)據(jù)交由云服務(wù)器這些中間實(shí)體,在實(shí)現(xiàn)便捷訪問(wèn)控制的同時(shí)降低系統(tǒng)各方面的成本.文獻(xiàn)[17]基于區(qū)塊鏈技術(shù),提出一種利用兩類屬性加密提高即時(shí)訪問(wèn)撤銷權(quán)以實(shí)現(xiàn)細(xì)粒度訪問(wèn)控制,增強(qiáng)網(wǎng)絡(luò)傳輸效率的數(shù)據(jù)存儲(chǔ)方案.文獻(xiàn)[18]針對(duì)目前可搜索加密技術(shù)忽略用戶細(xì)粒度搜索權(quán)限問(wèn)題,借助云輔助將屬性加密和可搜索加密結(jié)合對(duì)數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)安全訪問(wèn),但第三方用戶缺少訪問(wèn)權(quán)限.為了判斷出被濫用的私鑰來(lái)源,文獻(xiàn)[19]提供了一個(gè)快速并能保障數(shù)據(jù)安全的追蹤式屬性加密方法,密文通過(guò)預(yù)加密技術(shù)迅速產(chǎn)生時(shí)屬性也將結(jié)合過(guò)濾器隱藏在匿名訪問(wèn)結(jié)構(gòu)中,以此保護(hù)用戶密鑰安全.

由于區(qū)塊鏈網(wǎng)絡(luò)中各節(jié)點(diǎn)都持有一份完整數(shù)據(jù)副本,適用于醫(yī)療機(jī)構(gòu)間的數(shù)據(jù)共享.文獻(xiàn)[20]考慮到病歷數(shù)據(jù)在不同醫(yī)院間共享困難、患者對(duì)病歷信息掌握不全面等問(wèn)題,基于鏈上、鏈下混合存儲(chǔ)的方式,實(shí)現(xiàn)了一個(gè)病人可控管理的醫(yī)療數(shù)據(jù)共享模型,但未考慮在大規(guī)模網(wǎng)絡(luò)節(jié)點(diǎn)下隨機(jī)選取主節(jié)點(diǎn)帶來(lái)的系統(tǒng)開銷問(wèn)題.文獻(xiàn)[21]在以太坊中搭建分布式隱私保護(hù)框架,利用智能合約對(duì)電子醫(yī)療記錄進(jìn)行訪問(wèn)控制和操作,但該方案不支持以太坊中的快速交易.為了驗(yàn)證可穿戴傳感器生成的數(shù)據(jù),文獻(xiàn)[22]對(duì)于醫(yī)療物聯(lián)網(wǎng)中的數(shù)據(jù)分配問(wèn)題,將區(qū)塊鏈加入其中,通過(guò)衛(wèi)生當(dāng)局選擇最佳藥物收集算法實(shí)現(xiàn)最佳驗(yàn)證概率下的預(yù)算限制.

因此,針對(duì)各醫(yī)療機(jī)構(gòu)在數(shù)據(jù)共享時(shí)出現(xiàn)患者隱私泄露以及通信開銷較大的問(wèn)題,本文提出一種基于區(qū)塊鏈的電子病歷共享模型,主要貢獻(xiàn)有以下3點(diǎn):

1)將CP-ABE和可搜索加密技術(shù)相結(jié)合,由患者自主制定訪問(wèn)策略,對(duì)用戶屬性進(jìn)行限制,只有滿足患者設(shè)置的訪問(wèn)策略的第三方數(shù)據(jù)用戶有權(quán)對(duì)數(shù)據(jù)進(jìn)行搜索,在保護(hù)患者隱私信息的同時(shí)實(shí)現(xiàn)細(xì)粒度訪問(wèn)控制.

2)采用改進(jìn)的PBFT共識(shí)算法,將參與共識(shí)過(guò)程的節(jié)點(diǎn)進(jìn)行聚類劃分,在醫(yī)療機(jī)構(gòu)實(shí)現(xiàn)數(shù)據(jù)共享這種大規(guī)模網(wǎng)絡(luò)中,減少節(jié)點(diǎn)間的通信次數(shù)和通信量,提高整個(gè)區(qū)塊鏈系統(tǒng)的效率.

3)從安全性和算法性能等方面對(duì)所提模型進(jìn)行分析驗(yàn)證,結(jié)果表明,攻擊者對(duì)密文破解難度增大的同時(shí)系統(tǒng)整體通信量也在降低,實(shí)現(xiàn)各醫(yī)療機(jī)構(gòu)對(duì)電子病歷的安全共享.

2 相關(guān)知識(shí)

2.1 雙線性映射

設(shè)G1和G2為兩個(gè)乘法循環(huán)群,其階均是素?cái)?shù)p,如果e:G1×G1→G2是一個(gè)雙線性映射關(guān)系,則其具有以下性質(zhì).

雙線性:?a,b∈Zq,?g,h∈G1,均有e(ga,hb)=e(g,h)ab成立.

非退化性:?g∈G1,使e(g,g)≠1.

可計(jì)算性:?g,h∈G1,存在有效算法計(jì)算e(g,h).

符號(hào)定義表見表1.

表1 符號(hào)定義表Table 1 Symbol definition table

2.2 PBFT共識(shí)算法

PBFT共識(shí)算法因其優(yōu)勢(shì)在聯(lián)盟鏈中廣泛應(yīng)用,它將系統(tǒng)復(fù)雜度由指數(shù)級(jí)降為多項(xiàng)式級(jí),解決了效率和拜占庭將軍問(wèn)題,然而,PBFT只有在至少2/3的網(wǎng)絡(luò)節(jié)點(diǎn)是誠(chéng)實(shí)的情況下才能抵抗拜占庭錯(cuò)誤,即達(dá)成共識(shí)的前提是失效節(jié)點(diǎn)不超過(guò)總節(jié)點(diǎn)數(shù)的三分之一.PBFT中的共識(shí)節(jié)點(diǎn)主要包括主節(jié)點(diǎn)和副節(jié)點(diǎn)兩類,其共識(shí)過(guò)程分為3階段,需要多次進(jìn)行全網(wǎng)廣播,具體流程如圖1,描述如下:

圖1 PBFT共識(shí)算法流程Fig.1 PBFT consensus algorithm process

1)預(yù)準(zhǔn)備階段:客戶端發(fā)送交易請(qǐng)求到負(fù)責(zé)候選塊生成的主節(jié)點(diǎn),由主節(jié)點(diǎn)廣播消息至其他副節(jié)點(diǎn);

2)準(zhǔn)備階段:副節(jié)點(diǎn)接收到主節(jié)點(diǎn)的消息后驗(yàn)證其真實(shí)性,通過(guò)驗(yàn)證后并廣播一條準(zhǔn)備消息發(fā)送至其他節(jié)點(diǎn);

3)確認(rèn)階段:當(dāng)接收到來(lái)自不同節(jié)點(diǎn)的驗(yàn)證消息(超過(guò)總數(shù)的三分之二)時(shí),各節(jié)點(diǎn)生成確認(rèn)消息進(jìn)行全網(wǎng)廣播,從而達(dá)成共識(shí),隨后網(wǎng)絡(luò)中所有節(jié)點(diǎn)對(duì)客戶端發(fā)送共識(shí)結(jié)果.

可以看出PBFT三階段共識(shí)過(guò)程均需要兩兩節(jié)點(diǎn)進(jìn)行通信,在大規(guī)模網(wǎng)絡(luò)集群下實(shí)現(xiàn)數(shù)據(jù)一致性的同時(shí)如何降低節(jié)點(diǎn)間的通信次數(shù),從而實(shí)現(xiàn)快速共識(shí)、高效率的目標(biāo)成為研究該算法的熱點(diǎn).

3 系統(tǒng)模型

3.1 安全目標(biāo)

本文通過(guò)設(shè)計(jì)基于區(qū)塊鏈的電子病歷共享模型,旨在達(dá)到以下安全目標(biāo).

數(shù)據(jù)安全與共享:針對(duì)電子病歷在共享過(guò)程中易出現(xiàn)隱私泄露等問(wèn)題,本文提出的模型旨在實(shí)現(xiàn)各醫(yī)院間數(shù)據(jù)共享的同時(shí)也能保證共享數(shù)據(jù)的安全.利用區(qū)塊鏈加密算法保證數(shù)據(jù)安全,共識(shí)算法實(shí)現(xiàn)數(shù)據(jù)共享的同時(shí)驗(yàn)證每筆交易的合法性.私有鏈安全一致性通過(guò)對(duì)醫(yī)生上傳的交易單進(jìn)行驗(yàn)證,而聯(lián)盟鏈安全一致性通過(guò)判斷用戶的關(guān)鍵詞索引和屬性集合是否符合患者生成的訪問(wèn)策略,同時(shí)將這些具有上層監(jiān)督作用的政府權(quán)威機(jī)構(gòu)(權(quán)威節(jié)點(diǎn))加入聯(lián)盟鏈對(duì)醫(yī)院進(jìn)行監(jiān)督,通過(guò)構(gòu)建兩條區(qū)塊鏈來(lái)增強(qiáng)數(shù)據(jù)的安全性.

隱私保護(hù):電子病歷中存儲(chǔ)著患者大量隱私敏感信息,因此保護(hù)病歷數(shù)據(jù)的安全性和隱私性十分重要.本文設(shè)計(jì)的模型通過(guò)醫(yī)生為患者設(shè)置偽身份實(shí)現(xiàn)對(duì)患者隱私信息的保護(hù),在醫(yī)生得到患者的授權(quán)后,會(huì)為其生成一個(gè)偽身份.由于每次生成的偽身份不同,即使竊聽者得到消息,也不能斷定兩個(gè)甚至多個(gè)消息是否來(lái)自同一患者,對(duì)患者隱私信息進(jìn)行保護(hù).

安全準(zhǔn)確搜索:本文提出的模型將可搜索加密與CP-ABE結(jié)合,第三方數(shù)據(jù)用戶利用關(guān)鍵詞進(jìn)行搜索時(shí),首先發(fā)送請(qǐng)求至政府權(quán)威機(jī)構(gòu),然后聯(lián)盟鏈節(jié)點(diǎn)運(yùn)行搜索匹配算法,判斷用戶的屬性集合是否滿足訪問(wèn)策略,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)的細(xì)粒度訪問(wèn)控制,同時(shí)此過(guò)程竊聽者難以猜出搜索陷門.假設(shè)竊聽者可以猜出搜索陷門,但由于偽身份的存在,仍然無(wú)法解密出電子病歷數(shù)據(jù),達(dá)到安全準(zhǔn)確搜索的目的.

3.2 模型的具體描述

系統(tǒng)模型如圖2所示,主要包括6個(gè)參與方:屬性授權(quán)中心、患者、第三方數(shù)據(jù)用戶、醫(yī)院數(shù)據(jù)庫(kù)、私有鏈和聯(lián)盟鏈.本文采用私有鏈和聯(lián)盟鏈兩條區(qū)塊鏈構(gòu)建模型,其中n家醫(yī)院和n個(gè)政府權(quán)威機(jī)構(gòu)共同構(gòu)建聯(lián)盟鏈,各醫(yī)院私有鏈由本院醫(yī)生共同維護(hù),同時(shí)醫(yī)院擁有各自的數(shù)據(jù)庫(kù).

圖2 系統(tǒng)模型圖Fig.2 System model diagram

1)屬性授權(quán)中心:負(fù)責(zé)整個(gè)系統(tǒng)的參數(shù)設(shè)置,為系統(tǒng)生成公鑰和主密鑰,同時(shí)為患者、第三方數(shù)據(jù)用戶和醫(yī)生生成相應(yīng)的私鑰.假設(shè)屬性授權(quán)中心與系統(tǒng)中有交互作用的實(shí)體是完全可信的.

2)患者:當(dāng)患者去醫(yī)院就診時(shí),醫(yī)院服務(wù)器首先為患者注冊(cè)身份ID,然后選擇對(duì)應(yīng)的醫(yī)生就診并對(duì)其進(jìn)行授權(quán).其中授權(quán)信息包括:患者個(gè)人身份信息、患者生成的訪問(wèn)策略信息.同時(shí)患者還生成關(guān)鍵字集合并加密,將關(guān)鍵字密文發(fā)送給政府權(quán)威機(jī)構(gòu),由權(quán)威節(jié)點(diǎn)進(jìn)行第三方數(shù)據(jù)用戶的查詢搜索任務(wù).

3)第三方數(shù)據(jù)用戶:包括想了解患者以往病史的醫(yī)生、保險(xiǎn)機(jī)構(gòu)和其他想查詢患者病歷的用戶等.當(dāng)?shù)谌接脩暨M(jìn)行患者病歷搜索時(shí),首先向政府權(quán)威機(jī)構(gòu)發(fā)送請(qǐng)求,然后權(quán)威節(jié)點(diǎn)將搜索結(jié)果返回給用戶,若搜索成功則向醫(yī)院數(shù)據(jù)庫(kù)系統(tǒng)提交結(jié)果,得到EMR密文,進(jìn)行解密獲取患者電子病歷信息.

4)醫(yī)院數(shù)據(jù)庫(kù):每家醫(yī)院都擁有獨(dú)立的數(shù)據(jù)庫(kù),用于保存電子病歷密文信息.用戶將搜索結(jié)果發(fā)送醫(yī)院數(shù)據(jù)庫(kù)得到EMR密文信息,再對(duì)EMR密文進(jìn)行哈希,將其與從索引交易單獲取的密文哈希值進(jìn)行對(duì)比,如果結(jié)果一致,則進(jìn)行解密.

5)私有鏈:由n位醫(yī)生共同組成本醫(yī)院的私有鏈,患者就診后,醫(yī)生為其生成EMR并加密,將EMR密文上傳至醫(yī)院數(shù)據(jù)庫(kù).同時(shí)醫(yī)生為患者生成一個(gè)偽身份,防止在搜索過(guò)程中暴露患者的隱私信息.最后醫(yī)生將密文哈希、患者授權(quán)信息和偽身份構(gòu)成的交易信息上傳至私有鏈并構(gòu)建新的區(qū)塊,其他醫(yī)生負(fù)責(zé)驗(yàn)證新區(qū)塊的有效性.

6)聯(lián)盟鏈:由n家醫(yī)院共同構(gòu)建,并將政府權(quán)威機(jī)構(gòu)納入聯(lián)盟鏈,作為權(quán)威節(jié)點(diǎn)共同維護(hù)鏈上數(shù)據(jù)的安全和隱私.醫(yī)院節(jié)點(diǎn)將私有鏈交易單信息上傳聯(lián)盟鏈并進(jìn)行廣播,同時(shí)權(quán)威節(jié)點(diǎn)將患者發(fā)送的關(guān)鍵字密文上傳至聯(lián)盟鏈,然后服務(wù)器構(gòu)建由私有鏈交易單和關(guān)鍵字密文組成的索引交易單.當(dāng)?shù)谌綌?shù)據(jù)用戶向權(quán)威節(jié)點(diǎn)發(fā)送請(qǐng)求后,聯(lián)盟鏈上節(jié)點(diǎn)進(jìn)行搜索匹配,驗(yàn)證是否有關(guān)鍵字集合可以匹配用戶產(chǎn)生的關(guān)鍵詞索引,若可以匹配,將索引交易單返回給該用戶,用戶繼續(xù)對(duì)自己的屬性集合進(jìn)行判斷,當(dāng)且僅當(dāng)滿足患者定義的訪問(wèn)策略的用戶可以解密數(shù)據(jù).最后權(quán)威節(jié)點(diǎn)為搜索成功的用戶返回結(jié)果1,否則搜索失敗顯示0.此過(guò)程中聯(lián)盟鏈上所有節(jié)點(diǎn)均通過(guò)共識(shí)算法實(shí)現(xiàn)對(duì)電子病歷的安全搜索,因此共識(shí)算法的選取影響用戶的搜索效率及整個(gè)網(wǎng)絡(luò)的通信量.

4 算法設(shè)計(jì)

本文基于區(qū)塊鏈的電子病歷共享模型研究主要分為4個(gè)階段:系統(tǒng)初始化、數(shù)據(jù)加密、數(shù)據(jù)搜索和數(shù)據(jù)解密,首先對(duì)這4個(gè)階段的算法進(jìn)行設(shè)計(jì),然后對(duì)改進(jìn)的PBFT共識(shí)算法進(jìn)行介紹,完成這部分的內(nèi)容.

4.1 電子病歷共享模型算法設(shè)計(jì)

1)系統(tǒng)初始化階段(Setup)

本階段由模型的全局設(shè)置和密鑰生成兩個(gè)算法組成,具體如下.

算法1.全局設(shè)置

整個(gè)過(guò)程由屬性授權(quán)中心負(fù)責(zé),該算法以一個(gè)安全參數(shù)λ作為輸入,輸出為公共參數(shù)Params、系統(tǒng)公鑰PP、主密鑰MK,其中屬性授權(quán)中心選擇G和GT均是階為素?cái)?shù)p的雙線性群.

1.從G中選擇一個(gè)元素g并記為G的生成元,雙線性映射為e:G×G→GT.

4.系統(tǒng)公鑰PP和主密鑰MK如下:PP={Params,ga,gb,e(g,g)a,(Ti)i∈U},MK={a,(ti)i∈U},授權(quán)中心向所有用戶公開系統(tǒng)公鑰PP,而秘密保存系統(tǒng)主密鑰MK.

算法2.密鑰生成

該算法由屬性授權(quán)中心完成,為患者、醫(yī)生和第三方數(shù)據(jù)用戶生成對(duì)應(yīng)的密鑰.

1.為患者、醫(yī)生生成密鑰,屬性授權(quán)中心選取x和y兩個(gè)大素?cái)?shù)并計(jì)算n=x×y的值,記歐拉函數(shù)為φ(n).

2.隨機(jī)選擇一個(gè)數(shù)A,其中A∈[1,φ(n)]且A和φ(n)互為素?cái)?shù).計(jì)算S×A≡1mod(φ(n)),假設(shè)患者和醫(yī)生的個(gè)數(shù)為N,i,j∈N,i,j分別表示第i個(gè)患者和第j個(gè)醫(yī)生,則患者的公鑰為:PKpi={A,n},私鑰為SKpi=Spi.

3.同理計(jì)算出醫(yī)生的公私鑰分別為PKdj={A,n}和SKdj=Sdj.

5.用戶對(duì)應(yīng)的私鑰為:SKU={SKUu,SKUv,SKUw,SKU1,SK′U1},最后由屬性授權(quán)中心將密鑰分發(fā)給第三方用戶.

2)數(shù)據(jù)加密階段(KeyGen)

本階段由電子病歷密文、關(guān)鍵字密文、患者偽身份和聯(lián)盟鏈交易生成4個(gè)算法組成,具體如下.

算法3.電子病歷密文生成

當(dāng)患者去醫(yī)院就診時(shí),醫(yī)院服務(wù)器首先為其注冊(cè)身份PIDi并分配醫(yī)生DIDj,然后將個(gè)人身份信息和訪問(wèn)策略信息給相應(yīng)醫(yī)生進(jìn)行授權(quán),其中訪問(wèn)策略(,ρ),是一個(gè)m行n列的矩陣,ρ是將的每一行與用戶的不同屬性進(jìn)行一一對(duì)應(yīng),x表示的第x行,1≤x≤m.假設(shè)患者選擇的秘密為s,隨機(jī)數(shù)zi∈Zq,(i=2,3,…,n),同時(shí)定義向量B=(s,z2,z3,…,zn),計(jì)算qx=x×B的值.醫(yī)生得到患者的授權(quán)為其生成電子病歷信息,最后將電子病歷密文上傳醫(yī)院數(shù)據(jù)庫(kù).病歷密文生成具體計(jì)算過(guò)程如下.

1.患者隨機(jī)選取密鑰kσ,并利用對(duì)稱加密算法計(jì)算病歷的Mσ密文Cσ=Enc(Mσ);

2.對(duì)密鑰kσ進(jìn)行加密得到C′σ=kσ×e(g,g)bs;

3.選擇隨機(jī)數(shù)yi=Zq,分別計(jì)算Ce=gs,Cf=(gB×ρ(x))yi,Cg=ga×qx×H1(ρ(x))yi和Ct={(,ρ),C′σ,Ce,Cf,Cg}的值;

4.最終得到密文Cm=(Cσ,Ct),計(jì)算密文的哈希值H(Cm),由醫(yī)生DIDj將H(Cm)上傳到醫(yī)院的數(shù)據(jù)庫(kù)中.

算法4.關(guān)鍵字密文生成

為了保證第三方數(shù)據(jù)用戶能夠進(jìn)行安全準(zhǔn)確搜索,患者生成關(guān)鍵字密文并發(fā)送至政府權(quán)威機(jī)構(gòu).

1.對(duì)于電子病歷Mσ,σ表示病歷的數(shù)量,(σ=1,2,…,n),患者首先選出一個(gè)隨機(jī)數(shù)mσ并計(jì)算Xσ=gmσ.

3.得出關(guān)鍵字密文KW′l=(X,Xσl,Xσ),對(duì)密文進(jìn)行哈希H(KW′l),并將密文信息H(KW′l)交由權(quán)威節(jié)點(diǎn)保存.

算法5.患者偽身份生成

3.醫(yī)生將密文哈希H(Cm)、患者偽身份P′IDi和授權(quán)信息Aut={PIDi,(,ρ)}構(gòu)建的交易單Ta上傳至私有鏈.

算法6.聯(lián)盟鏈交易生成

表2 私有鏈交易單Table 2 Private chain transaction order

表3 索引交易單Table 3 Index transaction

3)數(shù)據(jù)搜索階段(Search)

算法7.搜索陷門生成

1.用戶輸入關(guān)鍵詞索引:KW′f={kw′1,kw′2,…,kw′z};

3.得到搜索陷門:Trap=(X′1,X′2,X′3);

4.將陷門Trap發(fā)送權(quán)威節(jié)點(diǎn);

6.若成立,則表示二者匹配成功,否則顯示匹配失敗.

4)數(shù)據(jù)解密階段(Decrypt)

算法8.解密過(guò)程

若搜索成功,則權(quán)威節(jié)點(diǎn)將索引交易單返回給用戶,用戶繼續(xù)對(duì)其屬性集合進(jìn)行判斷,滿足訪問(wèn)策略的用戶得到權(quán)威節(jié)點(diǎn)發(fā)送的結(jié)果并顯示1.

2.根據(jù)索引交易單定位至私有鏈,獲取鏈上信息,得到EMR密文哈希H(Cm).

3.將顯示結(jié)果1發(fā)送至醫(yī)院數(shù)據(jù)庫(kù)系統(tǒng)從而得到EMR密文,將EMR密文進(jìn)行哈希運(yùn)算H(C′m).

4.結(jié)果與從鏈上獲取的密文哈希進(jìn)行對(duì)比,即判斷H(Cm)與H(C′m)是否相等.由此可以得出醫(yī)生是否篡改患者信息,對(duì)醫(yī)生起到監(jiān)督作用.

4.2 改進(jìn)的PBFT共識(shí)算法

PBFT具有共識(shí)速度快、效率高等優(yōu)勢(shì),但僅限于小規(guī)模網(wǎng)絡(luò)共識(shí)集群.傳統(tǒng)PBFT算法交易數(shù)據(jù)和區(qū)塊數(shù)據(jù)的共識(shí)都要區(qū)塊鏈網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)進(jìn)行三階段共識(shí),如果大量節(jié)點(diǎn)同時(shí)參與共識(shí)過(guò)程,節(jié)點(diǎn)網(wǎng)絡(luò)中高頻次傳遞共識(shí)消息容易導(dǎo)致網(wǎng)絡(luò)擁堵帶來(lái)額外通信開銷.同時(shí)在實(shí)際中由于網(wǎng)絡(luò)節(jié)點(diǎn)間的延遲、各醫(yī)院地理位置、機(jī)器硬件等客觀因素,整個(gè)系統(tǒng)的性能也會(huì)受到一定影響.因此,本文對(duì)PBFT算法進(jìn)行改進(jìn),全國(guó)n家醫(yī)院共同組成聯(lián)盟鏈,考慮到政府的強(qiáng)信任背書、監(jiān)管力度以及強(qiáng)度,將政府權(quán)威機(jī)構(gòu)納入聯(lián)盟鏈一起維護(hù)鏈上數(shù)據(jù)的安全以及用戶隱私.本文采用的共識(shí)節(jié)點(diǎn)結(jié)構(gòu)如圖3所示,聯(lián)盟鏈上節(jié)點(diǎn)包括兩類:權(quán)威節(jié)點(diǎn)和醫(yī)院節(jié)點(diǎn),其中權(quán)威節(jié)點(diǎn)組成骨干共識(shí)集群,負(fù)責(zé)接收第三方數(shù)據(jù)用戶的請(qǐng)求,其輪流成為當(dāng)值主節(jié)點(diǎn);各地區(qū)醫(yī)院組成子共識(shí)集群,負(fù)責(zé)對(duì)用戶的請(qǐng)求信息進(jìn)行搜索.在整個(gè)區(qū)塊鏈系統(tǒng)中將政府權(quán)威機(jī)構(gòu)作為聚類中心,且中心節(jié)點(diǎn)不再改變的原因主要有以下幾點(diǎn):

圖3 共識(shí)節(jié)點(diǎn)結(jié)構(gòu)圖Fig.3 Consensus node structure diagram

1)具有政府信任背書,增強(qiáng)權(quán)威性,防止惡意節(jié)點(diǎn)攻擊;

2)改變傳統(tǒng)PBFT共識(shí)算法因節(jié)點(diǎn)數(shù)量增多帶來(lái)的系統(tǒng)性能問(wèn)題;

3)實(shí)現(xiàn)各醫(yī)院之間數(shù)據(jù)共享的同時(shí),使得社會(huì)影響度高的骨干共識(shí)集群擁有對(duì)平臺(tái)的部分控制力.

因此,這里采用將權(quán)威節(jié)點(diǎn)作為聚類中心進(jìn)行劃分,在各醫(yī)療機(jī)構(gòu)進(jìn)行數(shù)據(jù)共享時(shí),政府也能起到監(jiān)督作用.

當(dāng)接收到第三方數(shù)據(jù)用戶的請(qǐng)求后,骨干共識(shí)集群節(jié)點(diǎn)作為主節(jié)點(diǎn)向各自子共識(shí)集群節(jié)點(diǎn)(即醫(yī)院節(jié)點(diǎn))發(fā)送消息,進(jìn)行電子病歷搜索,改進(jìn)后的共識(shí)算法流程如圖4所示,描述如下:

圖4 改進(jìn)后的PBFT共識(shí)算法流程Fig.4 Improved PBFT consensus algorithm process

1)請(qǐng)求階段:第三方數(shù)據(jù)用戶想查詢患者電子病歷時(shí),發(fā)送請(qǐng)求給權(quán)威節(jié)點(diǎn),權(quán)威節(jié)點(diǎn)收到請(qǐng)求后對(duì)交易的合法性進(jìn)行驗(yàn)證,首先對(duì)屬性集合進(jìn)行判斷,查看用戶屬性是否滿足患者生成的訪問(wèn)策略,若交易合法,聯(lián)盟鏈節(jié)點(diǎn)繼續(xù)運(yùn)行搜索匹配算法,權(quán)威節(jié)點(diǎn)將這段時(shí)間收到的所有請(qǐng)求交易生成預(yù)準(zhǔn)備消息發(fā)送到子共識(shí)集群.

2)子共識(shí)集群階段:子共識(shí)集群收到權(quán)威節(jié)點(diǎn)的消息后,各醫(yī)院間進(jìn)行PBFT算法的共識(shí)階段:預(yù)準(zhǔn)備、準(zhǔn)備、確認(rèn)和回復(fù),共識(shí)完成將搜索結(jié)果返回各自所在區(qū)域的骨干共識(shí)節(jié)點(diǎn).

3)骨干共識(shí)集群階段:即最終回復(fù)階段,權(quán)威節(jié)點(diǎn)將子共識(shí)集群的回復(fù)消息直接返回給數(shù)據(jù)用戶,若此次交易合法,則返回給用戶數(shù)字1,否則返回0.最后用戶對(duì)搜索結(jié)果進(jìn)行解密,完成對(duì)患者電子病歷的查詢工作.

5 實(shí)驗(yàn)分析

5.1 安全性分析

隱私保護(hù):本文設(shè)計(jì)的模型通過(guò)醫(yī)生為患者設(shè)置偽身份實(shí)現(xiàn)對(duì)患者隱私信息的保護(hù),在得到患者授權(quán)信息后,醫(yī)生為其生成一個(gè)偽身份PIDi′=PIDi⊕H1(IDi)μ,由于IDi的唯一性和μ的隨機(jī)性,即使攻擊方獲取到消息,也無(wú)法解出IDi和μ,實(shí)現(xiàn)對(duì)患者隱私信息的保護(hù).

5.2 方案對(duì)比

表4是本文方案與現(xiàn)有方案的對(duì)比分析,可以看出,本文提出的方案在隱私保護(hù)、訪問(wèn)控制、可搜索加密、共識(shí)算法、大規(guī)模網(wǎng)絡(luò)和用戶等方面具有優(yōu)勢(shì).該方案通過(guò)將屬性加密與可搜索加密二者結(jié)合,在保證患者隱私信息的同時(shí)實(shí)現(xiàn)用戶對(duì)電子病歷的安全準(zhǔn)確搜索,并結(jié)合改進(jìn)后的PBFT共識(shí)算法,降低了各醫(yī)療機(jī)構(gòu)間的通信量,使得整個(gè)區(qū)塊鏈系統(tǒng)性能得到提升,最終實(shí)現(xiàn)一個(gè)基于區(qū)塊鏈的電子病歷共享模型.

表4 本文方案與現(xiàn)有方案對(duì)比Table 4 Comparison of the proposed scheme with the existing scheme

5.3 性能分析

本文在超級(jí)賬本的基礎(chǔ)上搭建區(qū)塊鏈環(huán)境,從通信開銷、共識(shí)時(shí)延以及吞吐量等方面與文獻(xiàn)[20]進(jìn)行比較,分析如下.使用Java語(yǔ)言,在Intel(R)Core(TM)i7-8700CPU@2.90GHz,8.00GB RAM,Win10系統(tǒng)計(jì)算機(jī)上實(shí)現(xiàn).

圖5為二者的通信開銷對(duì)比,從中可以看出,隨著網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量的增多,二者的通信量差距越來(lái)越大.當(dāng)節(jié)點(diǎn)數(shù)量相同時(shí),本文改進(jìn)的共識(shí)算法通信量明顯低于網(wǎng)絡(luò)中采用文獻(xiàn)[20]提出的方案,這是因?yàn)楸疚姆桨讣僭O(shè)在政府強(qiáng)信任背書的情況下不會(huì)出現(xiàn)惡意節(jié)點(diǎn),將政府權(quán)威機(jī)構(gòu)直接指定為聚類中心,不需消耗時(shí)間重新選舉,減少節(jié)點(diǎn)間通信次數(shù);同時(shí)直接將子共識(shí)集群的結(jié)果返回給骨干共識(shí)節(jié)點(diǎn),再由其發(fā)送至客戶端,權(quán)威節(jié)點(diǎn)間取消兩兩確認(rèn)這一通信過(guò)程,降低系統(tǒng)通信開銷,提高系統(tǒng)的整體性能.

圖5 通信開銷比較Fig.5 Communication overhead comparison

所提方案與對(duì)比方案的共識(shí)時(shí)延比較結(jié)果如圖6所示,在實(shí)驗(yàn)中分別取節(jié)點(diǎn)數(shù)為20、40、60、80和100,可以看出,系統(tǒng)的共識(shí)時(shí)延隨著網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量的增多而增大.就本文所提方案而言,同樣是對(duì)網(wǎng)絡(luò)中的共識(shí)節(jié)點(diǎn)進(jìn)行聚類與劃分,但時(shí)延卻低于對(duì)比方案,原因是本文直接將政府權(quán)威機(jī)構(gòu)作為聚類中心,成為代理節(jié)點(diǎn),而代理節(jié)點(diǎn)的每次更換都將影響整個(gè)共識(shí)過(guò)程的時(shí)延,因此本文方案更優(yōu)于對(duì)比方案.

圖6 共識(shí)時(shí)延比較Fig.6 Consensus latency comparison

共識(shí)效率直接對(duì)系統(tǒng)吞吐量產(chǎn)生影響,共識(shí)效率越高,吞吐量越大,即系統(tǒng)處理事務(wù)的能力就越強(qiáng),圖7是關(guān)于兩者吞吐量的測(cè)試結(jié)果.可以看出,在節(jié)點(diǎn)數(shù)量相同時(shí),本文方案的吞吐量略高于對(duì)比方案,此時(shí)共識(shí)過(guò)程處于請(qǐng)求階段,當(dāng)系統(tǒng)吞吐量隨著節(jié)點(diǎn)數(shù)量增多而增大時(shí),兩者的吞吐量基本相同,原因是子共識(shí)集群階段采用的共識(shí)算法相同.當(dāng)利用本文方案測(cè)試的系統(tǒng)吞吐量明顯高于對(duì)比方案時(shí),可以判斷出區(qū)塊鏈網(wǎng)絡(luò)正處于骨干共識(shí)集群階段,假設(shè)此時(shí)網(wǎng)絡(luò)中n個(gè)節(jié)點(diǎn)分為r類,則取消確認(rèn)階段的操作導(dǎo)致通信次數(shù)減少了r×(r-1)次,再考慮到系統(tǒng)在實(shí)際中受到地理位置、硬件條件等因素的影響,因此基于本文方案下的系統(tǒng)吞吐量更大.

圖7 吞吐量比較Fig.7 Throughput comparison

6 結(jié) 語(yǔ)

考慮到電子病歷在各醫(yī)療機(jī)構(gòu)共享中易造成患者隱私泄露和通信開銷較大等問(wèn)題,本文提出一種基于區(qū)塊鏈的電子病歷共享模型.首先利用基于密文策略的屬性加密和可搜索加密技術(shù),對(duì)用戶屬性進(jìn)行限制,增加攻擊者對(duì)密文的破解難度.其次對(duì)PBFT共識(shí)算法進(jìn)行改進(jìn),考慮到政府的強(qiáng)信任背書,將其作為權(quán)威節(jié)點(diǎn)組成骨干共識(shí)集群,改進(jìn)后的共識(shí)算法,減少了大規(guī)模網(wǎng)絡(luò)下系統(tǒng)的通信開銷,提高了整個(gè)系統(tǒng)的效率.最后從不同方面進(jìn)行分析,實(shí)驗(yàn)結(jié)果表明,本文提出的模型在實(shí)現(xiàn)醫(yī)療機(jī)構(gòu)對(duì)電子病歷安全共享的同時(shí)減少了系統(tǒng)的整體通信量.本文改進(jìn)的共識(shí)算法沒(méi)有考慮將網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行聚類劃分的類別數(shù)對(duì)整個(gè)網(wǎng)絡(luò)性能的影響,因此接下來(lái)將從這方面展開具體研究.

猜你喜歡
密文病歷共識(shí)
一種針對(duì)格基后量子密碼的能量側(cè)信道分析框架
一種支持動(dòng)態(tài)更新的可排名密文搜索方案
強(qiáng)迫癥病歷簿
基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
共識(shí) 共進(jìn) 共情 共學(xué):讓“溝通之花”綻放
論思想共識(shí)凝聚的文化向度
“大數(shù)的認(rèn)識(shí)”的診斷病歷
商量出共識(shí)
為何要公開全部病歷?
村醫(yī)未寫病歷,誰(shuí)之過(guò)?
新津县| 驻马店市| 博野县| 绥芬河市| 奉贤区| 临洮县| 剑川县| 大同市| 郧西县| 澎湖县| 罗甸县| 靖宇县| 宣恩县| 安顺市| 嵩明县| 汉阴县| 新平| 鄂尔多斯市| 全州县| 观塘区| 璧山县| 德州市| 新余市| 集贤县| 奇台县| 天全县| 湘阴县| 高唐县| 密云县| 梓潼县| 繁峙县| 新邵县| 偏关县| 石台县| 理塘县| 玉屏| 盐津县| 彰化市| 阿图什市| 和龙市| 光泽县|