牛淑芬,劉文科,陳俐霞,王彩芬,杜小妮
(1.西北師范大學計算機科學與工程學院,甘肅 蘭州 730070;2.西北師范大學數(shù)學與統(tǒng)計學院,甘肅 蘭州 730070)
電子病歷(EMR,electronic medical record)使用數(shù)字化方式創(chuàng)建、存儲和使用個人健康狀況和保健信息。傳統(tǒng)的EMR 是將數(shù)據(jù)存儲在醫(yī)院本地服務(wù)器,在占用大量設(shè)備的同時,也不便于數(shù)據(jù)共享。云計算可以實現(xiàn)對海量數(shù)據(jù)的分析處理,提供可靠的數(shù)據(jù)處理與存儲中心,越來越多的醫(yī)院選擇將其EMR 存儲到云服務(wù)器中,而不是維護一個專門的數(shù)據(jù)中心[1]。但是,由于數(shù)據(jù)泄露或未經(jīng)授權(quán)的訪問等安全問題,云服務(wù)器不能完全被用戶信任。EMR 涉及大量的患者隱私信息,因此防止EMR內(nèi)容被未經(jīng)授權(quán)的用戶和云服務(wù)器獲取是非常重要的。
考慮到云服務(wù)器的不可靠性和用戶數(shù)據(jù)的隱私性,需要對數(shù)據(jù)進行加密后再外包至云服務(wù)器。利用可搜索加密技術(shù)實現(xiàn)對加密數(shù)據(jù)的搜索,使EMR 的使用更加便利。但是,醫(yī)院只允許其授權(quán)的用戶對云服務(wù)器中的數(shù)據(jù)進行訪問,這導致云服務(wù)器中數(shù)據(jù)的使用具有局限性。
為了解決上述問題,文獻[2-5]將區(qū)塊鏈技術(shù)應(yīng)用于醫(yī)療領(lǐng)域,將患者的EMR 數(shù)據(jù)上傳至區(qū)塊鏈,實現(xiàn)對EMR 數(shù)據(jù)的訪問和共享。區(qū)塊鏈是一個經(jīng)過驗證的、不可變的分布式賬本,用于存儲EMR記錄。此外,該技術(shù)跟蹤記錄所有的交易,保證了數(shù)據(jù)交換過程中的透明性。因此,用區(qū)塊鏈來存儲EMR,可以使患者對自己的病歷數(shù)據(jù)的管理更加便利。區(qū)塊鏈去中心化和開放的特性使患者能夠掌握自己的醫(yī)療健康信息,這不僅保護了患者的隱私,也保證了患者對其醫(yī)療數(shù)據(jù)的訪問控制。例如,患者可以在自己的EMR 中記錄醫(yī)生的醫(yī)療和診斷信息,從而便于之后的診斷。
隨著云計算的飛速發(fā)展,云計算中的安全問題日益凸顯,因此人們對訪問控制[6-7]和隱私保護[8-9]等安全問題進行了一系列的研究。云存儲作為云計算中的一部分,既能保證數(shù)據(jù)安全,又能實現(xiàn)搜索功能。為了解決對密文的直接搜索問題,Song 等[10]首先提出了基于流密碼和對稱加密的可搜索加密方案,但該方案只允許持有私鑰的用戶才能對數(shù)據(jù)進行加密和搜索,不滿足人們的實際需求。為解決這一問題,Boneh 等[11]提出了公鑰可搜索加密(PEKS,public key encryption with keyword search)方案,即公鑰加密與可搜索加密的結(jié)合。Wu 等[12]提出一種新的不需要安全通道的可搜索加密(SCF-PEKS,secure channel free searchable encryption)方案,并將其應(yīng)用至EMR 中以實現(xiàn)對EMR 的共享??伤阉骷用軐崿F(xiàn)了從加密數(shù)據(jù)中檢索密文,而代理重加密技術(shù)將加密數(shù)據(jù)共享給更多用戶。Shao 等[13]首次提出支持關(guān)鍵字搜索的代理重加密(PRES,proxy re-encryption with keyword search)方案,將PEKS和代理重加密技術(shù)結(jié)合,實現(xiàn)了第三方授權(quán)用戶對密文的獲取與解密。Liu 等[14]結(jié)合屬性加密和可搜索加密技術(shù),并將其應(yīng)用至EMR 中,實現(xiàn)了對EMR數(shù)據(jù)的存儲、模糊搜索和共享。由于醫(yī)院對云服務(wù)器的限制,這些應(yīng)用于EMR 的方案大多沒有涉及不同醫(yī)院之間的數(shù)據(jù)共享。
區(qū)塊鏈的發(fā)展為上述問題帶來了解決方案,其去中心化的分布式存儲結(jié)構(gòu)適用于醫(yī)療數(shù)據(jù)的共享。Xia 等[15]提出了一種基于許可鏈的醫(yī)療數(shù)據(jù)共享框架,只允許被邀請和經(jīng)過驗證的用戶進行訪問。Yue 等[16]提出了一個被稱為醫(yī)療數(shù)據(jù)網(wǎng)關(guān)的應(yīng)用程序,將私有鏈作為云存儲的角色進行數(shù)據(jù)存儲,并確?;颊邠碛泻涂刂扑麄兊尼t(yī)療數(shù)據(jù)。Zhang 等[17]通過構(gòu)造聯(lián)盟鏈與私有鏈,提出了一種基于區(qū)塊鏈的安全隱私保護個人健康信息共享方案。
本文以EMR 的安全存儲、隱私保護和安全共享為目標,將可搜索加密和代理重加密技術(shù)結(jié)合區(qū)塊鏈應(yīng)用于EMR,用以實現(xiàn)EMR 在不同醫(yī)院間的共享和患者對EMR 數(shù)據(jù)的訪問控制。該方案特點如下:1) 方案中EMR 由醫(yī)生產(chǎn)生,醫(yī)生將EMR加密后上傳至醫(yī)院服務(wù)器,醫(yī)院服務(wù)器將密文哈希值放至私有鏈,確保EMR 的安全存儲;2) 醫(yī)生使用可搜索加密技術(shù)加密關(guān)鍵字上傳至聯(lián)盟鏈,患者使用其私鑰生成搜索陷門發(fā)送至聯(lián)盟鏈,聯(lián)盟鏈負責搜索;3) 聯(lián)盟鏈節(jié)點使用代理重加密技術(shù)對EMR 密文進行重加密,生成EMR 重加密密文,經(jīng)過患者授權(quán)的數(shù)據(jù)用戶可使用其私鑰解密重加密密文得到EMR。為保護患者隱私,整個共享過程使用患者的偽身份。
定義1令G1和G2為2 個階為素數(shù)q的加法循環(huán)群,定義一個雙線性映射e:G1×G1→G2,其滿足以下性質(zhì)。
1) 雙線性。對于任意a,b∈和x,y∈G1,有e(ax,by)=e(x,y)ab。
2) 非退化性。存在x,y∈G1,使e(x,y) ≠ 1。
3) 可計算性。對于任意的x,y∈G1,存在有效算法來計算e(x,y)。
定義2計算性Diffie-Hellman(CDH,computational Diffie-Hellman)問題。對于任意a,b∈,給定P,aP,bP∈G1,CDH 問題就是計算abP。
定義3判定性Diffie-Hellman(DDH,decision Diffie-Hellman)問題。對于任意a,b∈,給定P,aP,bP,T∈G1,DDH 問題就是判斷T=abP是否成立。
區(qū)塊鏈是通過區(qū)塊鏈接在一起的有序記錄的列表[18],其本質(zhì)上是一個分散的數(shù)據(jù)庫,是分布式數(shù)據(jù)存儲、點對點傳輸、協(xié)商共識機制、加密算法等計算機技術(shù)的一種新的應(yīng)用模式。區(qū)塊鏈也是一個分布式賬本,并使用密碼學方法使其不能被篡改。
根據(jù)區(qū)塊鏈網(wǎng)絡(luò)中心化程度的不同,可將其分為3 種模式:公有鏈(public blockchain)、聯(lián)盟鏈(consortium blockchain)和私有鏈(private blockchain)。公有鏈是完全去中心化、無許可的區(qū)塊鏈,任何節(jié)點都可進入和獲取信息,例如比特幣和以太坊。聯(lián)盟鏈是部分去中心化的區(qū)塊鏈,通常由多個機構(gòu)共同管理,只有經(jīng)過機構(gòu)授權(quán)的用戶才可以訪問。私有鏈是完全中心化的區(qū)塊鏈,由一個中心機構(gòu)控制訪問權(quán)限。本文方案中,各個醫(yī)院在聯(lián)盟鏈上進行EMR 數(shù)據(jù)共享。每家醫(yī)院擁有自己的服務(wù)器和私有鏈,服務(wù)器上存儲EMR 密文,私有鏈上存儲EMR 密文的哈希值,多家醫(yī)院組成聯(lián)盟并創(chuàng)建一個聯(lián)盟鏈用以存儲患者EMR 的安全索引。
本文中區(qū)塊鏈合法的區(qū)塊由區(qū)塊頭、區(qū)塊體、簽名和時間戳組成。區(qū)塊頭由4 部分組成:區(qū)塊ID、區(qū)塊大小、前一個區(qū)塊的哈希值和Merkle 樹,其中,區(qū)塊ID 表示每個區(qū)塊唯一的身份;區(qū)塊大小顯示區(qū)塊占用的存儲空間;前一個區(qū)塊的哈希值用于鏈接前一個區(qū)塊,防止區(qū)塊鏈被修改;Merkle 樹用于快速歸納和校驗區(qū)塊數(shù)據(jù)的存在性和完整性。區(qū)塊體中是交易單(TX,transaction),本文中,私有鏈區(qū)塊結(jié)構(gòu)與聯(lián)盟鏈區(qū)塊結(jié)構(gòu)唯一的不同之處是交易單的結(jié)構(gòu),這部分內(nèi)容將在第4 節(jié)中說明。簽名用于驗證區(qū)塊的完整性。時間戳表示區(qū)塊的生成時間。
本節(jié)介紹基于聯(lián)盟鏈的EMR 存儲與共享模型及其方案,給出區(qū)塊鏈上的交易單結(jié)構(gòu),并提出安全目標。
本文模型中n家醫(yī)院協(xié)商構(gòu)建一個聯(lián)盟鏈,每家醫(yī)院都擁有服務(wù)器和私有鏈。醫(yī)院服務(wù)器中存儲患者的EMR 密文,私有鏈中存儲EMR 密文的哈希值,聯(lián)盟鏈中存儲關(guān)鍵字密文。圖1 為EMR共享系統(tǒng)模型,系統(tǒng)模型中有6 個實體:患者、醫(yī)生、其他數(shù)據(jù)用戶、醫(yī)院服務(wù)器、私有鏈和聯(lián)盟鏈。圖1 中β為就診號,ca0為電子病歷密文,hash(ca0)為ca0的哈希值。
圖1 EMR 共享系統(tǒng)模型
患者。當患者去醫(yī)院就診時,首先需要注冊,醫(yī)院服務(wù)器為其生成就診號?;颊呔驮\時將就診號交給醫(yī)生,作為其對醫(yī)生的授權(quán)。醫(yī)生對患者診斷后為患者生成EMR,將EMR 加密后上傳至服務(wù)器進行存儲?;颊咴诓煌t(yī)院就診時,其EMR 密文的哈希值就存儲在醫(yī)院的私有鏈中。同時,每家醫(yī)院將其存儲在私有鏈中的關(guān)鍵字密文發(fā)送至聯(lián)盟鏈。患者可在聯(lián)盟鏈中搜索關(guān)鍵字來獲取其EMR,若醫(yī)生需要,則將EMR 交給醫(yī)生。
醫(yī)生。在得到患者授權(quán)后,醫(yī)生對患者進行診斷,為其生成EMR 和偽身份,構(gòu)建證據(jù),為私有鏈提供一致性證明,并將EMR 加密后存儲至服務(wù)器。同時,醫(yī)生構(gòu)建包含密文的哈希值、醫(yī)生身份、患者偽身份、關(guān)鍵字索引和證據(jù)的交易單,并將交易單上傳至私有鏈。另外,醫(yī)生在對患者診斷時,也需了解患者以往的就診記錄,以便得出更加精確的診斷結(jié)果。
其他數(shù)據(jù)用戶。當其他數(shù)據(jù)用戶想要獲取某患者的EMR 時,需獲得該患者的授權(quán)。在與其他數(shù)據(jù)用戶和患者交互后,聯(lián)盟鏈上節(jié)點生成代理重加密密鑰,聯(lián)盟鏈上節(jié)點使用重加密密鑰對EMR 密文重加密,生成重加密密文,其他數(shù)據(jù)用戶使用其私鑰即可解密。
醫(yī)院服務(wù)器。每家醫(yī)院都擁有一臺服務(wù)器和維護服務(wù)器的多臺客戶端,醫(yī)生使用客戶端將患者的EMR 存儲在服務(wù)器中。醫(yī)院服務(wù)器構(gòu)建私有鏈的新區(qū)塊,用以存儲包括病人信息相關(guān)的EMR 數(shù)據(jù)交易單。醫(yī)院服務(wù)器也負責為聯(lián)盟鏈構(gòu)建新區(qū)塊,新區(qū)塊構(gòu)建完成后,其他醫(yī)院服務(wù)器負責驗證新區(qū)塊的有效性。
私有鏈。每家醫(yī)院都擁有私有鏈,醫(yī)生使用患者EMR 構(gòu)建交易單并上傳至私有鏈。在搜索階段,患者發(fā)送搜索陷門至聯(lián)盟鏈,聯(lián)盟鏈搜索后通過私有鏈身份定位至私有鏈,獲取EMR 密文的哈希值。
聯(lián)盟鏈。多家醫(yī)院協(xié)商構(gòu)建聯(lián)盟鏈,醫(yī)院服務(wù)器使用關(guān)鍵字密文、患者偽身份和私有鏈身份構(gòu)建安全索引,使用安全索引構(gòu)建交易單后將交易單上傳至聯(lián)盟鏈。在搜索階段,收到患者發(fā)送的陷門后,聯(lián)盟鏈上節(jié)點負責執(zhí)行搜索,并返回EMR 密文的哈希值給患者?;颊呖傻卿涐t(yī)院服務(wù)器進行哈希值比對,若一致,服務(wù)器返回EMR密文給患者;否則,服務(wù)器返回查詢失敗給患者。同時,聯(lián)盟鏈上節(jié)點還負責為其他數(shù)據(jù)用戶生成EMR 重加密密文。
私有鏈上交易單由4 部分組成:病歷生成者(醫(yī)生)ID、病歷擁有者(患者)ID、病歷關(guān)鍵字索引和病歷密文哈希值,如表1 所示。為了保護患者的隱私,病歷是以密文的形式存儲的。其中,病歷擁有者ID 是患者的偽身份,由患者真實身份計算而來。
表1 私有鏈上交易單
聯(lián)盟鏈上交易單由2 部分組成:區(qū)塊生成者(醫(yī)院服務(wù)器)ID 和安全索引,如表2 所示。醫(yī)院服務(wù)器收集醫(yī)生發(fā)送的關(guān)鍵字密文,利用構(gòu)建的安全索引創(chuàng)建新的區(qū)塊。聯(lián)盟鏈區(qū)塊的區(qū)塊體中不存儲原始EMR,而是存儲包含關(guān)鍵字密文的安全索引。安全索引Txa由3 部分組成:私有鏈區(qū)塊IDb、患者偽IDa和關(guān)鍵字密文ca1。
表2 聯(lián)盟鏈上交易單
假設(shè)本文方案中醫(yī)院服務(wù)器為半可信的,其可能會嘗試解密密文。同時,一些惡意攻擊者可能會在傳輸期間攔截、修改或偽造EMR 數(shù)據(jù)。外部攻擊者可能入侵醫(yī)院服務(wù)器或客戶端,竊取存儲的文件??紤]上述威脅模型,本文方案的安全目標如下。
數(shù)據(jù)的機密性和完整性。無論患者的EMR 是存儲在醫(yī)院服務(wù)器還是通過公共渠道進行傳輸,其他實體都無法讀取或修改患者的EMR。通常數(shù)據(jù)的機密性和完整性是通過加密和簽名來保證的。本文方案通過使用私有鏈存儲EMR 和聯(lián)盟鏈存儲關(guān)鍵字來保證數(shù)據(jù)的安全性。
訪問控制。為防止未授權(quán)用戶對EMR 數(shù)據(jù)進行訪問,對EMR 的訪問受控制,使數(shù)據(jù)訪問活動始終在患者和醫(yī)院的參與和監(jiān)控之下進行。并通過對密碼原語進行標識、身份認證和授權(quán)來實現(xiàn)訪問控制。
安全搜索。當醫(yī)生想要獲取患者的歷史EMR數(shù)據(jù)時,患者生成搜索陷門對EMR 進行搜索。在搜索過程中,只有患者才能生成搜索陷門從而進行搜索。同時,搜索過程中使用患者的偽身份,竊聽者也無法推斷出患者的真實身份。
隱私保護。由于EMR 中包含患者的一些隱私敏感信息,因此共享EMR 的同時也要保護患者的身份隱私。此外,原始的EMR 不能透露給非法實體。
基于聯(lián)盟鏈的EMR 存儲與共享方案可分為3個階段:系統(tǒng)建立、數(shù)據(jù)加密與存儲、數(shù)據(jù)搜索與解密。
階段1系統(tǒng)建立
本階段分為初始化和密鑰生成2 個步驟。
階段2數(shù)據(jù)加密與存儲
本階段分為患者注冊、數(shù)據(jù)加密、私有鏈交易單生成和聯(lián)盟鏈交易單生成4 個步驟。
階段3數(shù)據(jù)搜索與解密
本階段分為陷門生成、搜索和解密3 個步驟?;颊呔驮\時,為了進行更精確的診斷,醫(yī)生需查看患者的歷史診斷記錄?;颊呱伤阉飨蓍TT,發(fā)送T和IDa至聯(lián)盟鏈。聯(lián)盟鏈上節(jié)點運行搜索算法獲取EMR 密文的哈希值并將其發(fā)送給患者,患者可通過登錄醫(yī)院服務(wù)器獲取EMR 密文?;颊叩玫矫芪暮?,使用其私鑰進行解密,得到EMR 明文后交給醫(yī)生查看。除了患者可獲取其EMR 外,經(jīng)患者授權(quán)的其他數(shù)據(jù)用戶也可獲取患者EMR,在解密步驟中分別敘述。
本文的正確性分析如下。
1) 私有鏈交易單生成H
本文方案在實現(xiàn)安全目標的同時,又能滿足密文安全和關(guān)鍵字安全。
數(shù)據(jù)的機密性和完整性。EMR 數(shù)據(jù)在上傳到醫(yī)院服務(wù)器存儲之前是經(jīng)過加密的。醫(yī)生使用患者的公鑰對EMR 進行加密,解密時m=cm⊕,由于ka2為患者的私鑰,故只有患者可進行解密,這實現(xiàn)了EMR 數(shù)據(jù)的機密性。另外,區(qū)塊鏈中的數(shù)據(jù)是不可變的,若數(shù)據(jù)添加或交易已經(jīng)完成,它就不能被編輯或刪除,構(gòu)建的新區(qū)塊上存在區(qū)塊生成者的簽名,實現(xiàn)了EMR 數(shù)據(jù)的完整性。
訪問控制。EMR 密文的哈希值存儲在私有鏈,只允許經(jīng)過身份驗證的人員訪問;EMR 密文存儲在醫(yī)院服務(wù)器,用戶必須在醫(yī)院注冊后并經(jīng)過身份驗證才能訪問數(shù)據(jù)?;颊呱蟼魉阉飨蓍TT=(T1,T2),聯(lián)盟鏈上節(jié)點驗證通過后,發(fā)送密文的哈希值hash(ca0)給患者,患者登錄醫(yī)院服務(wù)器即可獲取EMR 密文。只有擁有私鑰,才能生成搜索陷門和解密EMR 密文ca0,因此患者可以控制EMR 的訪問。
安全搜索。階段2 數(shù)據(jù)的加密及存儲過程中,EMR 和關(guān)鍵字都是以密文形式進行存儲,其他實體無法獲取關(guān)鍵字。階段3 數(shù)據(jù)搜索與解密過程中,患者生成搜索陷門T=(T1,T2)發(fā)送給聯(lián)盟鏈,其中T1包含患者的私鑰,只有患者能夠生成,故其他用戶無法知道搜索結(jié)果。
隱私保護。首先,EMR 由醫(yī)生上傳至私有鏈,上傳的交易單中包含患者的偽身份IDa,偽身份由醫(yī)生生成,患者的真實身份RIDa和β無法被獲取。其次,數(shù)據(jù)的搜索過程中也只包含患者的偽身份,因此,此方案中公共信息不會泄露患者的真實身份,實現(xiàn)了對患者身份的隱私保護。
5.2.1 密文安全
定理1若敵手A1在一個概率多項式時間內(nèi)能以不可忽略的優(yōu)勢ε贏得游戲,則挑戰(zhàn)者B能夠以不可忽略的優(yōu)勢解決DDH 困難問題。
證明假設(shè)給挑戰(zhàn)者B一個 DDH 實例(aP,bP,cP),挑戰(zhàn)者B的目的是確定cP=abP是否成立。游戲過程如下。
5.2.2 關(guān)鍵字安全
本節(jié)首先將本文方案與相關(guān)EMR 方案的功能進行比較。然后,從理論角度分析本文方案的計算效率,并與已有的可搜索加密方案進行比較。最后,通過數(shù)值模擬實驗對方案性能進行評估。
基于云存儲的文獻[12,19]方案、基于區(qū)塊鏈的文獻[20-21]方案與本文方案的功能性分析如表3 所示。由表3 可知,所有的方案都能實現(xiàn)訪問控制和隱私保護的特性,這是EMR 共享方案的關(guān)鍵安全目標。但文獻[20]方案不能實現(xiàn)安全搜索,文獻[12,20-21]方案不能實現(xiàn)身份認證。
表3 功能性分析
本節(jié)從理論角度分析本文方案與文獻[12,22]方案在計算效率上的優(yōu)劣。表4 顯示方案中基本運算的符號和執(zhí)行時間。由表4 可以看出,基本運算的執(zhí)行時間的排序為Th>Tp>Te>TH。由于計算開銷中指數(shù)運算、配對運算和哈希運算時間較長,故只考慮這3 個方面的運算時間。下面,本文將利用表4中的數(shù)據(jù)得出各階段的運行時間。
表4 方案中的運算符號和執(zhí)行時間
表5 顯示加密、搜索和解密3 個階段的運算時間。由表5 可以看出,在加密階段,各方案計算量由大到小依次為文獻[12]方案、文獻[22]方案、本文方案;在搜索階段,各方案計算量由大到小依次為文獻[22]方案、文獻[12]方案、本文方案;在解密階段,各方案計算量由大到小依次為文獻[22]方案、文獻[12]方案、本文方案。
本節(jié)對本文方案中算法進行數(shù)值模擬實驗,并通過改變關(guān)鍵字的數(shù)量分析本文方案的計算效率,關(guān)鍵字數(shù)量n分別取10、50、100。數(shù)值模擬實驗是在Linux 操作系統(tǒng)下利用雙線性包(pairing-based cryptography library)實現(xiàn)的,使用C 語言對算法進行編程,在PC 機(惠普電腦,3.1 GHz CPU,4 GB RAM)的虛擬機環(huán)境中運行。實驗結(jié)果取算法運行50 次的平均值,如表6 所示。
表5 各階段計算量對比
表6 本文方案中算法的執(zhí)行時間
系統(tǒng)構(gòu)建算法模擬系統(tǒng)建立和患者注冊階段,數(shù)據(jù)加密算法模擬對EMR 和關(guān)鍵字的加密過程,私有鏈驗證算法模擬驗證者對私有鏈上新區(qū)塊驗證的過程,聯(lián)盟鏈驗證算法模擬驗證者對聯(lián)盟鏈上新區(qū)塊驗證的過程,陷門生成算法模擬患者生成搜索陷門的過程,關(guān)鍵字搜索算法模擬聯(lián)盟鏈匹配關(guān)鍵字的過程,數(shù)據(jù)解密算法模擬患者對EMR 密文進行解密的過程。
由表6 可知,由于數(shù)據(jù)加密、聯(lián)盟鏈驗證、陷門生成和關(guān)鍵字搜索算法中包含關(guān)鍵字信息,故這些算法的執(zhí)行時間隨著關(guān)鍵字的數(shù)量增加而增加;當關(guān)鍵字數(shù)量發(fā)生變化時,系統(tǒng)構(gòu)建、私有鏈驗證和數(shù)據(jù)解密算法的執(zhí)行時間則不受其影響。
本文基于可搜索加密和代理重加密技術(shù),提出了一種具有隱私保護和安全存儲的EMR 數(shù)據(jù)共享方案,解決了區(qū)塊鏈上EMR 共享過程中的數(shù)據(jù)安全和個人隱私等關(guān)鍵問題。在本文提出的區(qū)塊鏈EMR 共享模型中,醫(yī)院服務(wù)器存儲EMR 密文、醫(yī)院私有鏈存儲EMR 密文哈希值、聯(lián)盟鏈存儲關(guān)鍵字密文,實現(xiàn)了對EMR 數(shù)據(jù)的安全存儲與共享。其次,本文設(shè)計EMR 區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)和一致性證明,保證了所提方案的高效運行。另外,使用關(guān)鍵字搜索保證了數(shù)據(jù)的安全性和可搜索性。最后,安全性分析和性能分析表明,本文方案在達到設(shè)計的安全目標的同時還具有良好的性能。