董婉婷
(濟寧市第一人民醫院,山東 濟寧 272000)
隨著計算機技術以及通信技術的發展,移動互聯網已成為人們日常生活、工作不可或缺的一部分,并推動了數字醫療的發展。數字醫療將現代計算機技術、信息技術融合,以實現整個醫療過程的數字化[1-3]。由此,醫療信息安全問題成為了人們關心的重點話題之一[4]。
當前移動互聯網使用了多種協議,比如用于網絡內容的HTTP 協議、電子郵件的SMTP 協議以及文件傳輸的FTP 協議等[5-7]。然而,這些協議發揮作用時,均使用中心化服務器和數據庫,存在以下問題:1)數據質量管理有待提高。網絡數據存在一致性低、時效性差的特點,數據管理效率低下;2)數據安全管控能力弱。在大數據時代背景下,如何提高數據安全是移動互聯網發展的重要問題之一,網絡數據、云端數據存在安全防護技術手段單一的問題,存在用戶敏感數據泄露的風險;3)網絡數據共享能力較差。各個公司、單位存在多種數據標準和訪問方式,導致數據兼容性較差,數據整合、分析、應用缺少必要的技術輔助[8]。
近年來,區塊鏈技術因比特幣而被人們所熟知。區塊鏈并不是一項新技術,而是匯聚分布式數據儲存、點對點數據傳輸、共識機制、加密算法及智能合約等技術而形成的分布式賬本技術[9-20]。文中針對數字醫療所面臨的數據安全問題,將區塊鏈技術引入到醫療數據的安全策略構建中,提出了由患者或用戶、醫院等醫療單位、智能醫療設備公司及數據中心構成的數據傳遞模型。采用由一條主鏈、多條從鏈構成的多鏈區塊鏈模型,進一步保證信息安全的同時,減小計算量。基于拜占庭容錯算法以及第三方機構評判患者節點及數據產生和使用者的可信度。最終,該方法提高了區塊鏈新節點生成的質量,加強了區塊鏈結構的總體安全性。
根據前瞻產業研究院發布的2019 年《中國大健康產業戰略規劃和企業戰略咨詢報告》,2020 年中國醫療健康產業規模將達到十萬億規模。得益于計算機、通信技術的強力支撐,數字醫療也得到了迅速發展。然而,相應的醫療數據安全保障卻存在諸多問題,具體如圖1 所示。醫院、醫療機構每日會產生大量的患者醫療數據,這些數據的監管難度大,缺少必要的技術支持,容易被篡改、泄露;各個單位、部門的數據被保存在各自的數據庫中,由于數據格式的不同,因此形成數據孤島難以實現數據共享;當患者的醫療信息在網絡上泄露時,難以追查黑客信息,造成理賠困難;對于市場上存在的假藥及劣質藥品的生產、銷售等環節,缺少追蹤途徑。

圖1 傳統醫療數據傳遞、儲存方式示意圖
以上問題的出現,一部分原因是傳統的醫療數據采用中心化系統,具體如圖2 所示。一方面,生活中用戶或患者在醫院、保健單位、藥店等場所看病、買藥品時,無形中提供了自身的醫療數據,同時這些單位也會反饋患者的情況。另一方面,各種智能健康監管設備的面世,也為用戶提供監測自身健康的工具并產生大量的數據,這些數據均被儲存在數據中心進行集中管理。中心化數據中心容易遭遇網絡攻擊,數據存在泄露和篡改的風險,同時也無法對加密后的數據進行統計操作。有效的解決辦法即加強對藥品生產、銷售信息和患者的醫療信息管理,提高各個醫療系統之間的數據存儲安全措施和數據共享的效率。文中將區塊鏈技術引入醫療信息安全策略的構建中,利用區塊鏈技術的去中心化、分布式、匿名式的特點將患者的醫療信息進行加密傳輸。用戶、醫院、保健機構、智能設備、數據中心均是區塊鏈中的對等節點,拜占庭協議被用來完成區塊鏈節點共識的實現,并通過合理控制訪問數量來提高整個系統數據共享的效率。

圖2 基于區塊鏈技術醫療數據傳遞、儲存方式示意圖
區塊鏈從本質上看,是一種去中心化的數據儲存技術,通常由參與數據維護的各個組織、單位或個人以相互平等的方式構成。傳統的區塊鏈為單鏈結構如圖3 所示。區塊鏈中參與數據維護的單元被稱為節點,這些節點可以屬于不同的組織,每個節點區塊從結構可分為兩個部分:表征節點身份信息的區塊頭、保存各類交易數據的區塊數據體。

圖3 單鏈區塊鏈基礎結構示意圖
考慮到患者的醫療數據并不是完全由醫院這一獨立場所產生的,且隨著時間的推移,醫療數據量也呈指數型增長。傳統的單鏈區塊鏈結構已無法滿足醫療信息多樣化來源管理和高數據吞吐量的要求,因此文中采用多鏈區塊鏈技術解決上述問題。
多鏈區塊鏈采用了一條主鏈和多條從鏈的結構,具體結構如圖4 所示。主鏈負責儲存患者、用戶的身份信息,其節點區塊隨著時間順序增加;從鏈用于儲存交易數據信息,以此保證患者隱私數據與交易數據的有效隔離。由于交易發生場景的不同,其節點數量不一。主鏈與從鏈之間以哈希錨定的方式來進行不同種類的數據和交換。

圖4 多鏈結構的區塊鏈示意圖
在多鏈區塊鏈中,患者對自身的醫療信息具有絕對的所有權和控制權,可通過私鑰查看自身的醫療信息并下載;而醫生或其他醫療機構、智能醫療設備公司可將患者、用戶的醫療信息上傳至區塊鏈中。文中使用數據層、網絡層、管理層及應用層來構建多鏈區塊鏈系統,數據層是整個系統的最底層,用于存儲節點區塊的交易數據。整個鏈路中的第一個區塊是由系統自動創建的,其余節點區塊經過驗證后才能被添加至主鏈中。網絡層被用來實現多鏈區塊鏈系統中各個節點區塊的交互,通過網絡層傳遞區塊信息,完成驗證后即可成為新的節點區塊。多鏈區塊鏈系統的運行由管理層進行監管,管理層主要包含各類算法,保證主、從鏈之間的驗證行為。應用層為各個應用的宏觀體現,主要有醫療信息的儲存和發布、檢索、訪問等。
拜占庭容錯算法經過改進后,可有效降低區塊鏈在進行共識請求、投票時的計算量,從而提高了數據吞吐量,因此以其作為醫療信息安全策略的區塊鏈共識算法。在新節點區塊發布過程中,首先按照一定比例選擇驗證節點和投票代表節點。所有投票節點均可向驗證節點發送新節點區塊生成請求,經驗證節點審核后由驗證節點向整個區塊鏈發送投票請求,而驗證節點和投票代表節點則通過積分排序的方式進行選擇。假定所有節點的初始積分為0,在一段時間內更換視圖請求未達到n時,表明驗證節點之間未達到“共識”。驗證節點與主節點會被扣除相應的分數來降低其職能資質,而提出質疑的節點區塊則會被獎勵增加分數來提高其職能資質。一段時間內,根據區塊鏈內所有節點區塊的積分排名,前n名的節點成為驗證節點和投票代表節點。
文中基于共識算法生成新的節點區塊的過程如下:
1)由驗證節點區塊向整個區塊鏈發布交易請求,同時發送該節點的簽名;
2)其余節點區塊收到交易請求廣播后,進入交易初試視圖;
3)主節點發布PrepareRequest,其余節點在收到PrepareRequest 后,如果同意該交易,則發送PrepareResponese;
4)若區塊鏈中任一節點區塊均收到至少2/3 的PrepareResponese,則表明這些節點關于新節點區塊生成達成了“共識”,主節點可發布完成的新節點區塊。若PrepareResponese 數量未達到2/3,則表明本次新節點區塊生成請求未達成共識,其余節點發送視圖更換請求。
由于醫療信息屬于患者的重要隱私信息,且存在醫院、醫療機構等多家單位數據共享的情況,因此數據安全保障措施非常必要。文中在智能合約及全同態加密算法的基礎上,使用可搜索的全同態加密算法來避免信息泄露及被篡改。文中引入第三方評判機構來評判患者節點和數據產生、使用節點是否為可信的,如圖5 所示。

圖5 面向醫療信息的可搜索加密模型結構示意圖
為了驗證所提出的面向醫療信息安全的多鏈區塊鏈結構的可行性和有效性,分別從數據吞吐量及數據加密操作安全性進行驗證。
針對數據吞吐量,文中設置了單鏈區塊鏈作為對照組進行驗證實驗。實驗環境設置為:基于Ubuntu16.0.3 系統,使用以太坊錢包來實現區塊鏈全同態加密和智能合約,并選用10 名志愿者提供相關數據作為測試數據,實驗組和對照組均設置N個節點,所有節點均具有正常的發起共識請求和進行投票的資質。假設在測試期間各個節點區塊需對兩種測試數據:就診數據、日常體征數據,分別進行S次數據上傳。每一個節點區塊的產生均需進行共識請求和投票,且在進行共識信息確認時均需經歷簽名、解簽名、加密和解密4 步計算。因此,單鏈結構總計算量為:

而多鏈結構的計算量依據從鏈的條數和主、從鏈節點的個數而有所不同。假定有兩條從鏈且從鏈節點數量相同,由于兩條從鏈的共識請求和投票可分別和同時進行,因此,該多鏈結構的從鏈計算總量為:

每個從鏈計算量為:

在實驗組多鏈區塊鏈結構中,分別有兩條從鏈區塊鏈儲存醫療數據,主鏈為用戶區塊鏈,共有10個節點;每個從鏈區塊鏈共有20 個節點。所有節點分別進行100 次數據上傳,圖6 所示為多鏈結構與單鏈結構計算量對比圖。由此可見,多鏈區塊鏈結構可顯著降低數據計算量。

圖6 多鏈結構與單鏈結構計算量對比
表1 展示了某患者的部分醫療信息原始數據與使用全同態加密后的密文及經過解密后的結果對比。從表中可以看出,經過全同態加密、解密后的數據與原始數據之間存在小數級別的差異,這主要是由于在使用全同態加密算法時加密精度導致的誤差。

表1 10名患者部分醫療數據
文中針對醫療信息數字化過程的安全問題,展開了基于區塊鏈技術的醫療信息安全策略的研究。通過構建由患者用戶、醫療機構、醫療設備公司及數據中心構成的數據傳遞模型,滿足了多樣化的數據共享需求,所有的醫療信息均可由多種類型的單位產生、使用。為了進一步保證患者敏感醫療信息的安全和降低計算量,提出了由一條主鏈、多條從鏈構成的多鏈區塊鏈模型。最終,通過使用拜占庭容錯算法來增強區塊鏈新節點生成的品質,并且準確評價出患者節點及數據的產生和使用者是否可信,從而加強區塊鏈結構的總體安全性。