董婉婷
(濟(jì)寧市第一人民醫(yī)院,山東 濟(jì)寧 272000)
隨著計(jì)算機(jī)技術(shù)以及通信技術(shù)的發(fā)展,移動(dòng)互聯(lián)網(wǎng)已成為人們?nèi)粘I?、工作不可或缺的一部分,并推?dòng)了數(shù)字醫(yī)療的發(fā)展。數(shù)字醫(yī)療將現(xiàn)代計(jì)算機(jī)技術(shù)、信息技術(shù)融合,以實(shí)現(xiàn)整個(gè)醫(yī)療過(guò)程的數(shù)字化[1-3]。由此,醫(yī)療信息安全問(wèn)題成為了人們關(guān)心的重點(diǎn)話題之一[4]。
當(dāng)前移動(dòng)互聯(lián)網(wǎng)使用了多種協(xié)議,比如用于網(wǎng)絡(luò)內(nèi)容的HTTP 協(xié)議、電子郵件的SMTP 協(xié)議以及文件傳輸?shù)腇TP 協(xié)議等[5-7]。然而,這些協(xié)議發(fā)揮作用時(shí),均使用中心化服務(wù)器和數(shù)據(jù)庫(kù),存在以下問(wèn)題:1)數(shù)據(jù)質(zhì)量管理有待提高。網(wǎng)絡(luò)數(shù)據(jù)存在一致性低、時(shí)效性差的特點(diǎn),數(shù)據(jù)管理效率低下;2)數(shù)據(jù)安全管控能力弱。在大數(shù)據(jù)時(shí)代背景下,如何提高數(shù)據(jù)安全是移動(dòng)互聯(lián)網(wǎng)發(fā)展的重要問(wèn)題之一,網(wǎng)絡(luò)數(shù)據(jù)、云端數(shù)據(jù)存在安全防護(hù)技術(shù)手段單一的問(wèn)題,存在用戶敏感數(shù)據(jù)泄露的風(fēng)險(xiǎn);3)網(wǎng)絡(luò)數(shù)據(jù)共享能力較差。各個(gè)公司、單位存在多種數(shù)據(jù)標(biāo)準(zhǔn)和訪問(wèn)方式,導(dǎo)致數(shù)據(jù)兼容性較差,數(shù)據(jù)整合、分析、應(yīng)用缺少必要的技術(shù)輔助[8]。
近年來(lái),區(qū)塊鏈技術(shù)因比特幣而被人們所熟知。區(qū)塊鏈并不是一項(xiàng)新技術(shù),而是匯聚分布式數(shù)據(jù)儲(chǔ)存、點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸、共識(shí)機(jī)制、加密算法及智能合約等技術(shù)而形成的分布式賬本技術(shù)[9-20]。文中針對(duì)數(shù)字醫(yī)療所面臨的數(shù)據(jù)安全問(wèn)題,將區(qū)塊鏈技術(shù)引入到醫(yī)療數(shù)據(jù)的安全策略構(gòu)建中,提出了由患者或用戶、醫(yī)院等醫(yī)療單位、智能醫(yī)療設(shè)備公司及數(shù)據(jù)中心構(gòu)成的數(shù)據(jù)傳遞模型。采用由一條主鏈、多條從鏈構(gòu)成的多鏈區(qū)塊鏈模型,進(jìn)一步保證信息安全的同時(shí),減小計(jì)算量。基于拜占庭容錯(cuò)算法以及第三方機(jī)構(gòu)評(píng)判患者節(jié)點(diǎn)及數(shù)據(jù)產(chǎn)生和使用者的可信度。最終,該方法提高了區(qū)塊鏈新節(jié)點(diǎn)生成的質(zhì)量,加強(qiáng)了區(qū)塊鏈結(jié)構(gòu)的總體安全性。
根據(jù)前瞻產(chǎn)業(yè)研究院發(fā)布的2019 年《中國(guó)大健康產(chǎn)業(yè)戰(zhàn)略規(guī)劃和企業(yè)戰(zhàn)略咨詢報(bào)告》,2020 年中國(guó)醫(yī)療健康產(chǎn)業(yè)規(guī)模將達(dá)到十萬(wàn)億規(guī)模。得益于計(jì)算機(jī)、通信技術(shù)的強(qiáng)力支撐,數(shù)字醫(yī)療也得到了迅速發(fā)展。然而,相應(yīng)的醫(yī)療數(shù)據(jù)安全保障卻存在諸多問(wèn)題,具體如圖1 所示。醫(yī)院、醫(yī)療機(jī)構(gòu)每日會(huì)產(chǎn)生大量的患者醫(yī)療數(shù)據(jù),這些數(shù)據(jù)的監(jiān)管難度大,缺少必要的技術(shù)支持,容易被篡改、泄露;各個(gè)單位、部門的數(shù)據(jù)被保存在各自的數(shù)據(jù)庫(kù)中,由于數(shù)據(jù)格式的不同,因此形成數(shù)據(jù)孤島難以實(shí)現(xiàn)數(shù)據(jù)共享;當(dāng)患者的醫(yī)療信息在網(wǎng)絡(luò)上泄露時(shí),難以追查黑客信息,造成理賠困難;對(duì)于市場(chǎng)上存在的假藥及劣質(zhì)藥品的生產(chǎn)、銷售等環(huán)節(jié),缺少追蹤途徑。
圖1 傳統(tǒng)醫(yī)療數(shù)據(jù)傳遞、儲(chǔ)存方式示意圖
以上問(wèn)題的出現(xiàn),一部分原因是傳統(tǒng)的醫(yī)療數(shù)據(jù)采用中心化系統(tǒng),具體如圖2 所示。一方面,生活中用戶或患者在醫(yī)院、保健單位、藥店等場(chǎng)所看病、買藥品時(shí),無(wú)形中提供了自身的醫(yī)療數(shù)據(jù),同時(shí)這些單位也會(huì)反饋患者的情況。另一方面,各種智能健康監(jiān)管設(shè)備的面世,也為用戶提供監(jiān)測(cè)自身健康的工具并產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)均被儲(chǔ)存在數(shù)據(jù)中心進(jìn)行集中管理。中心化數(shù)據(jù)中心容易遭遇網(wǎng)絡(luò)攻擊,數(shù)據(jù)存在泄露和篡改的風(fēng)險(xiǎn),同時(shí)也無(wú)法對(duì)加密后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)操作。有效的解決辦法即加強(qiáng)對(duì)藥品生產(chǎn)、銷售信息和患者的醫(yī)療信息管理,提高各個(gè)醫(yī)療系統(tǒng)之間的數(shù)據(jù)存儲(chǔ)安全措施和數(shù)據(jù)共享的效率。文中將區(qū)塊鏈技術(shù)引入醫(yī)療信息安全策略的構(gòu)建中,利用區(qū)塊鏈技術(shù)的去中心化、分布式、匿名式的特點(diǎn)將患者的醫(yī)療信息進(jìn)行加密傳輸。用戶、醫(yī)院、保健機(jī)構(gòu)、智能設(shè)備、數(shù)據(jù)中心均是區(qū)塊鏈中的對(duì)等節(jié)點(diǎn),拜占庭協(xié)議被用來(lái)完成區(qū)塊鏈節(jié)點(diǎn)共識(shí)的實(shí)現(xiàn),并通過(guò)合理控制訪問(wèn)數(shù)量來(lái)提高整個(gè)系統(tǒng)數(shù)據(jù)共享的效率。
圖2 基于區(qū)塊鏈技術(shù)醫(yī)療數(shù)據(jù)傳遞、儲(chǔ)存方式示意圖
區(qū)塊鏈從本質(zhì)上看,是一種去中心化的數(shù)據(jù)儲(chǔ)存技術(shù),通常由參與數(shù)據(jù)維護(hù)的各個(gè)組織、單位或個(gè)人以相互平等的方式構(gòu)成。傳統(tǒng)的區(qū)塊鏈為單鏈結(jié)構(gòu)如圖3 所示。區(qū)塊鏈中參與數(shù)據(jù)維護(hù)的單元被稱為節(jié)點(diǎn),這些節(jié)點(diǎn)可以屬于不同的組織,每個(gè)節(jié)點(diǎn)區(qū)塊從結(jié)構(gòu)可分為兩個(gè)部分:表征節(jié)點(diǎn)身份信息的區(qū)塊頭、保存各類交易數(shù)據(jù)的區(qū)塊數(shù)據(jù)體。
圖3 單鏈區(qū)塊鏈基礎(chǔ)結(jié)構(gòu)示意圖
考慮到患者的醫(yī)療數(shù)據(jù)并不是完全由醫(yī)院這一獨(dú)立場(chǎng)所產(chǎn)生的,且隨著時(shí)間的推移,醫(yī)療數(shù)據(jù)量也呈指數(shù)型增長(zhǎng)。傳統(tǒng)的單鏈區(qū)塊鏈結(jié)構(gòu)已無(wú)法滿足醫(yī)療信息多樣化來(lái)源管理和高數(shù)據(jù)吞吐量的要求,因此文中采用多鏈區(qū)塊鏈技術(shù)解決上述問(wèn)題。
多鏈區(qū)塊鏈采用了一條主鏈和多條從鏈的結(jié)構(gòu),具體結(jié)構(gòu)如圖4 所示。主鏈負(fù)責(zé)儲(chǔ)存患者、用戶的身份信息,其節(jié)點(diǎn)區(qū)塊隨著時(shí)間順序增加;從鏈用于儲(chǔ)存交易數(shù)據(jù)信息,以此保證患者隱私數(shù)據(jù)與交易數(shù)據(jù)的有效隔離。由于交易發(fā)生場(chǎng)景的不同,其節(jié)點(diǎn)數(shù)量不一。主鏈與從鏈之間以哈希錨定的方式來(lái)進(jìn)行不同種類的數(shù)據(jù)和交換。
圖4 多鏈結(jié)構(gòu)的區(qū)塊鏈?zhǔn)疽鈭D
在多鏈區(qū)塊鏈中,患者對(duì)自身的醫(yī)療信息具有絕對(duì)的所有權(quán)和控制權(quán),可通過(guò)私鑰查看自身的醫(yī)療信息并下載;而醫(yī)生或其他醫(yī)療機(jī)構(gòu)、智能醫(yī)療設(shè)備公司可將患者、用戶的醫(yī)療信息上傳至區(qū)塊鏈中。文中使用數(shù)據(jù)層、網(wǎng)絡(luò)層、管理層及應(yīng)用層來(lái)構(gòu)建多鏈區(qū)塊鏈系統(tǒng),數(shù)據(jù)層是整個(gè)系統(tǒng)的最底層,用于存儲(chǔ)節(jié)點(diǎn)區(qū)塊的交易數(shù)據(jù)。整個(gè)鏈路中的第一個(gè)區(qū)塊是由系統(tǒng)自動(dòng)創(chuàng)建的,其余節(jié)點(diǎn)區(qū)塊經(jīng)過(guò)驗(yàn)證后才能被添加至主鏈中。網(wǎng)絡(luò)層被用來(lái)實(shí)現(xiàn)多鏈區(qū)塊鏈系統(tǒng)中各個(gè)節(jié)點(diǎn)區(qū)塊的交互,通過(guò)網(wǎng)絡(luò)層傳遞區(qū)塊信息,完成驗(yàn)證后即可成為新的節(jié)點(diǎn)區(qū)塊。多鏈區(qū)塊鏈系統(tǒng)的運(yùn)行由管理層進(jìn)行監(jiān)管,管理層主要包含各類算法,保證主、從鏈之間的驗(yàn)證行為。應(yīng)用層為各個(gè)應(yīng)用的宏觀體現(xiàn),主要有醫(yī)療信息的儲(chǔ)存和發(fā)布、檢索、訪問(wèn)等。
拜占庭容錯(cuò)算法經(jīng)過(guò)改進(jìn)后,可有效降低區(qū)塊鏈在進(jìn)行共識(shí)請(qǐng)求、投票時(shí)的計(jì)算量,從而提高了數(shù)據(jù)吞吐量,因此以其作為醫(yī)療信息安全策略的區(qū)塊鏈共識(shí)算法。在新節(jié)點(diǎn)區(qū)塊發(fā)布過(guò)程中,首先按照一定比例選擇驗(yàn)證節(jié)點(diǎn)和投票代表節(jié)點(diǎn)。所有投票節(jié)點(diǎn)均可向驗(yàn)證節(jié)點(diǎn)發(fā)送新節(jié)點(diǎn)區(qū)塊生成請(qǐng)求,經(jīng)驗(yàn)證節(jié)點(diǎn)審核后由驗(yàn)證節(jié)點(diǎn)向整個(gè)區(qū)塊鏈發(fā)送投票請(qǐng)求,而驗(yàn)證節(jié)點(diǎn)和投票代表節(jié)點(diǎn)則通過(guò)積分排序的方式進(jìn)行選擇。假定所有節(jié)點(diǎn)的初始積分為0,在一段時(shí)間內(nèi)更換視圖請(qǐng)求未達(dá)到n時(shí),表明驗(yàn)證節(jié)點(diǎn)之間未達(dá)到“共識(shí)”。驗(yàn)證節(jié)點(diǎn)與主節(jié)點(diǎn)會(huì)被扣除相應(yīng)的分?jǐn)?shù)來(lái)降低其職能資質(zhì),而提出質(zhì)疑的節(jié)點(diǎn)區(qū)塊則會(huì)被獎(jiǎng)勵(lì)增加分?jǐn)?shù)來(lái)提高其職能資質(zhì)。一段時(shí)間內(nèi),根據(jù)區(qū)塊鏈內(nèi)所有節(jié)點(diǎn)區(qū)塊的積分排名,前n名的節(jié)點(diǎn)成為驗(yàn)證節(jié)點(diǎn)和投票代表節(jié)點(diǎn)。
文中基于共識(shí)算法生成新的節(jié)點(diǎn)區(qū)塊的過(guò)程如下:
1)由驗(yàn)證節(jié)點(diǎn)區(qū)塊向整個(gè)區(qū)塊鏈發(fā)布交易請(qǐng)求,同時(shí)發(fā)送該節(jié)點(diǎn)的簽名;
2)其余節(jié)點(diǎn)區(qū)塊收到交易請(qǐng)求廣播后,進(jìn)入交易初試視圖;
3)主節(jié)點(diǎn)發(fā)布PrepareRequest,其余節(jié)點(diǎn)在收到PrepareRequest 后,如果同意該交易,則發(fā)送PrepareResponese;
4)若區(qū)塊鏈中任一節(jié)點(diǎn)區(qū)塊均收到至少2/3 的PrepareResponese,則表明這些節(jié)點(diǎn)關(guān)于新節(jié)點(diǎn)區(qū)塊生成達(dá)成了“共識(shí)”,主節(jié)點(diǎn)可發(fā)布完成的新節(jié)點(diǎn)區(qū)塊。若PrepareResponese 數(shù)量未達(dá)到2/3,則表明本次新節(jié)點(diǎn)區(qū)塊生成請(qǐng)求未達(dá)成共識(shí),其余節(jié)點(diǎn)發(fā)送視圖更換請(qǐng)求。
由于醫(yī)療信息屬于患者的重要隱私信息,且存在醫(yī)院、醫(yī)療機(jī)構(gòu)等多家單位數(shù)據(jù)共享的情況,因此數(shù)據(jù)安全保障措施非常必要。文中在智能合約及全同態(tài)加密算法的基礎(chǔ)上,使用可搜索的全同態(tài)加密算法來(lái)避免信息泄露及被篡改。文中引入第三方評(píng)判機(jī)構(gòu)來(lái)評(píng)判患者節(jié)點(diǎn)和數(shù)據(jù)產(chǎn)生、使用節(jié)點(diǎn)是否為可信的,如圖5 所示。
圖5 面向醫(yī)療信息的可搜索加密模型結(jié)構(gòu)示意圖
為了驗(yàn)證所提出的面向醫(yī)療信息安全的多鏈區(qū)塊鏈結(jié)構(gòu)的可行性和有效性,分別從數(shù)據(jù)吞吐量及數(shù)據(jù)加密操作安全性進(jìn)行驗(yàn)證。
針對(duì)數(shù)據(jù)吞吐量,文中設(shè)置了單鏈區(qū)塊鏈作為對(duì)照組進(jìn)行驗(yàn)證實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境設(shè)置為:基于Ubuntu16.0.3 系統(tǒng),使用以太坊錢包來(lái)實(shí)現(xiàn)區(qū)塊鏈全同態(tài)加密和智能合約,并選用10 名志愿者提供相關(guān)數(shù)據(jù)作為測(cè)試數(shù)據(jù),實(shí)驗(yàn)組和對(duì)照組均設(shè)置N個(gè)節(jié)點(diǎn),所有節(jié)點(diǎn)均具有正常的發(fā)起共識(shí)請(qǐng)求和進(jìn)行投票的資質(zhì)。假設(shè)在測(cè)試期間各個(gè)節(jié)點(diǎn)區(qū)塊需對(duì)兩種測(cè)試數(shù)據(jù):就診數(shù)據(jù)、日常體征數(shù)據(jù),分別進(jìn)行S次數(shù)據(jù)上傳。每一個(gè)節(jié)點(diǎn)區(qū)塊的產(chǎn)生均需進(jìn)行共識(shí)請(qǐng)求和投票,且在進(jìn)行共識(shí)信息確認(rèn)時(shí)均需經(jīng)歷簽名、解簽名、加密和解密4 步計(jì)算。因此,單鏈結(jié)構(gòu)總計(jì)算量為:
而多鏈結(jié)構(gòu)的計(jì)算量依據(jù)從鏈的條數(shù)和主、從鏈節(jié)點(diǎn)的個(gè)數(shù)而有所不同。假定有兩條從鏈且從鏈節(jié)點(diǎn)數(shù)量相同,由于兩條從鏈的共識(shí)請(qǐng)求和投票可分別和同時(shí)進(jìn)行,因此,該多鏈結(jié)構(gòu)的從鏈計(jì)算總量為:
每個(gè)從鏈計(jì)算量為:
在實(shí)驗(yàn)組多鏈區(qū)塊鏈結(jié)構(gòu)中,分別有兩條從鏈區(qū)塊鏈儲(chǔ)存醫(yī)療數(shù)據(jù),主鏈為用戶區(qū)塊鏈,共有10個(gè)節(jié)點(diǎn);每個(gè)從鏈區(qū)塊鏈共有20 個(gè)節(jié)點(diǎn)。所有節(jié)點(diǎn)分別進(jìn)行100 次數(shù)據(jù)上傳,圖6 所示為多鏈結(jié)構(gòu)與單鏈結(jié)構(gòu)計(jì)算量對(duì)比圖。由此可見(jiàn),多鏈區(qū)塊鏈結(jié)構(gòu)可顯著降低數(shù)據(jù)計(jì)算量。
圖6 多鏈結(jié)構(gòu)與單鏈結(jié)構(gòu)計(jì)算量對(duì)比
表1 展示了某患者的部分醫(yī)療信息原始數(shù)據(jù)與使用全同態(tài)加密后的密文及經(jīng)過(guò)解密后的結(jié)果對(duì)比。從表中可以看出,經(jīng)過(guò)全同態(tài)加密、解密后的數(shù)據(jù)與原始數(shù)據(jù)之間存在小數(shù)級(jí)別的差異,這主要是由于在使用全同態(tài)加密算法時(shí)加密精度導(dǎo)致的誤差。
表1 10名患者部分醫(yī)療數(shù)據(jù)
文中針對(duì)醫(yī)療信息數(shù)字化過(guò)程的安全問(wèn)題,展開(kāi)了基于區(qū)塊鏈技術(shù)的醫(yī)療信息安全策略的研究。通過(guò)構(gòu)建由患者用戶、醫(yī)療機(jī)構(gòu)、醫(yī)療設(shè)備公司及數(shù)據(jù)中心構(gòu)成的數(shù)據(jù)傳遞模型,滿足了多樣化的數(shù)據(jù)共享需求,所有的醫(yī)療信息均可由多種類型的單位產(chǎn)生、使用。為了進(jìn)一步保證患者敏感醫(yī)療信息的安全和降低計(jì)算量,提出了由一條主鏈、多條從鏈構(gòu)成的多鏈區(qū)塊鏈模型。最終,通過(guò)使用拜占庭容錯(cuò)算法來(lái)增強(qiáng)區(qū)塊鏈新節(jié)點(diǎn)生成的品質(zhì),并且準(zhǔn)確評(píng)價(jià)出患者節(jié)點(diǎn)及數(shù)據(jù)的產(chǎn)生和使用者是否可信,從而加強(qiáng)區(qū)塊鏈結(jié)構(gòu)的總體安全性。