史婷瑤,馬金剛,曹慧,孟琳,張馳
山東中醫藥大學 理工學院,山東 濟南 250355
21世紀,科技的快速發展使得信息技術廣泛應用于人們生活的各個方面,日常產生的數據量急劇增多,傳統的數據模式已不能滿足現在的需求。不可否認,大數據時代已經來臨。醫療領域不僅有服務和行政的運營類數據,還包括臨床、影像、基因、實驗室及公共衛生等復雜醫療數據,數據量大且類型繁多[1]。患者就醫時所做檢驗(例如影像檢查、化驗等)數據及結果、醫生醫囑等信息會被傳送到云端或設備進行存儲[2]。醫院掌握著患者的個人信息、病情、用藥情況甚至基因信息,如果能夠合理分析總結,會對醫學的發展提供很大幫助,反之,患者醫療信息一旦遭到泄露,或許會為醫院和患者本人帶來嚴重的損失。可見,大數據方便了我們工作生活的同時,也面臨諸多安全問題。
2010年,Apache Hadoop組織把大數據定義為“一般普通的計算機軟件無法在可接受的時間內獲取、管理、處理、分析的超大規模的數據集”。2011年5月,麥肯錫全研究院在《大數據:創新、競爭和生產力的下一個前沿領域》中定義,大數據是一種在一定時間內無法用傳統數據庫軟件工具獲取、儲存、管理、分析的足夠大的數據集合。
大數據具有數據種類繁多、數據量龐大、數據處理速度快、數據價值密度低等特點,如果其在收集、存儲、傳輸和使用的過程中未被妥善處理會對用戶的隱私安全造成威脅,引發嚴重的安全問題[3]。
醫療大數據是大數據在醫療領域的一個分支,是指在與人類健康相關的活動中產生的與生命健康和醫療有關的數據,主要來源于電子健康病歷等臨床類數據、醫院運營、生物醫學研究、疾病防控、健康保障和食品安全、公共衛生及健康管理數據、養生保健等方面。醫療領域是大數據的一大重要應用領域,Kayyali等[4]指出醫療領域大數據處于初級階段,許多潛在的價值正在逐漸顯現。國家衛健委提出了“推進健康醫療大數據應用,制定促進健康醫療大數據應用的相關方案,推動健康醫療大數據有序發展的意見”。2018年9月13日,國家衛健委公開《國家健康醫療大數據標準、安全和服務管理辦法(試行)》,旨在對醫療大數據的發展方向加以引導,可見國家對醫療大數據的重視。
除了具備大數據的特征,醫療大數據也有其特有的特征[5]。
(1)數據具有不完整性。無法全面搜集、處理和反應所有疾病的全部信息,數據存在殘缺和偏差。
(2)數據具有長期保存性。《醫療機構管理條例》規定,患者門診信息保留時間不少于15年,住院信息不少于30年,影像信息永久保留。
(3)數據具有時間性。醫學檢驗的波形和圖像是時間函數,或同一種疾病在不同時間的情況可能不同,這都具有一定的時間性。
(4)數據源多變。在不同領域的醫學研究中,數據的記錄數量、存儲量類型、樣本大小及數據維都可能不同。
醫療大數據在提取過程中簡化了原始數據,且臨床數據是按照固定格式收集的,所以數據相對結構化,這是醫療大數據與其他領域的大數據最大的區別[6]。其次,相較于其他領域,醫療大數據直接關系到人類生命健康,因而對分析結果要求更精確,安全問題也相對突出。
馮登國等[7]提出了六種大數據的隱私保護技術:數據發布匿名保護技術、社交網絡匿名保護技術、數據水印技術、數據溯源技術、角色挖掘、風險自適應的訪問控制。總結現有的隱私保護方法,醫療領域的隱私保護技術主要有醫療數據的分級保護制度、基于訪問控制的隱私保護、基于數據加密的隱私保護、基于匿名化的隱私保護。
國家衛計委在《衛生行業信息安全等級保護工作的指導意見》中指出,要優先保護重要信息系統,在信息系統建設過程中,同步開展等級保護工作,并且要根據信息系統的變化及時調整保護等級。衛生行業信息系統等級保護體系的建設需要兩方面的支持,一是技術支持,保障物理、網絡、主機、應用、數據安全;二是管理支持,包括安全管理制度、安全管理機構、人員安全管理、系統建設管理和系統運維管理。《計算機信息系統安全保護的等級劃分準則》將信息系統劃分為五級,而重要衛生信息系統原則上不低于三級,可以從邊界安全防護、網絡環境安全防護、主機安全防護和應用防護4個層次進行保護[8]。雖然國家已經出臺了不少等級保護相關政策,但在實際保護和管理過程中仍存在一些問題,如醫療衛生行業沒有普及等級保護的重要意義,領域工作人員責任感不強;缺乏專門的管理部門和標準化的規章制度等,我國醫療衛生行業等級保護工作還有很長一段路要走。
基于訪問控制的隱私保護是指通過對用戶訪問各類資源權限的限制來防止越界訪問的一種方法。在醫院信息系統中,參與人員眾多,信息傳遞過程中泄露的機率也非常大。訪問控制技術大多是以角色為基礎,訪問和控制為主體,對不同職責的人員設置不同的訪問權限,這也涉及到了數據分級方面的內容。通過建立相應的角色樹,根據一定規則進行創建、分配,明確各部門職責,財務處負責財務管理,護理部負責病區管理,藥劑科負責藥品管理等,不需要訪問與本部門無關的信息。但是制定怎樣的規則和怎樣將權限分級并不是一項簡單的工作,實際工作中會存在很多特殊情況需要一一設定,不便于訪問控制的整體管理和調整。基于此,Yarmard等[9]基于交互式架構提出了一種訪問控制模型,該模型能通過捕獲用戶的動態行為來相應地設定訪問權限,更好地應用于醫療領域。
數據加密技術在保障網絡信息安全方面有非常重要的作用,基于密鑰的數據加密技術分為常規密鑰加密和公開密鑰加密,通過對敏感信息(明文)經過密鑰和函數進行替換或移位,轉換為不能識別的亂碼(密文),密文傳輸到信息接收方處,再通過密鑰和函數將密文還原為易讀取、有意義的明文,還原的過程稱作解密。
常規密鑰加密又稱對稱加密,收發數據的雙方需在數據傳輸前商定一個公用密鑰,隨后用此密鑰和加解密函數進行加密和解密,加密密鑰即解密密鑰,其安全性一方面取決于密鑰復雜程度,另一方面,如果密鑰在傳遞過程中發生泄露,對信息安全也是一大威脅。公開密鑰加密又稱非對稱加密,信息發送方使用公鑰對信息加密,接收方用私鑰解密,公鑰與私鑰不同且不能相互推導。
因此,我們可以不對公鑰進行保密,只保證私鑰的安全性即可[10]。二者加密過程對比圖如圖1所示。
常規密鑰加密是目前應用最普遍的加密技術,常用的算法有DES算法。DES是一種具有16輪迭代的分組密碼算法[11],加密過程與解密過程相似,使用同一密鑰,只是運算順序相反。此算法加密速度快,效率高并且應用范圍廣,通過將明文以64位為單位進行分組,加密后得到64位一組的密文,其中密鑰有八個字節共64位,實際有效的只有56位,8、16、24等八的倍數位為奇偶校驗位未參與運算[12]。由于DES算法的密鑰較短,容易受到窮舉法攻擊,即反復嘗試不同的密鑰直到成功,因此拓展出二重、三重DES等算法,通過延長密鑰長度提高安全性[13]。計算機運行速度的不斷提升可能會使DES算法的安全性比從前低,但目前來說仍是有效的方法。

圖1 常規密鑰加密與公開密鑰加密過程對比圖
公開密鑰加密常用到RSA算法。RSA算法需要產生素p和q(p,q保密),p和q是隨機生成的且需要足夠長(長度約為十進制數的100位或更大),p與q構成模n(公開)和Euler函數φ(n)(保密),n=p×q,φ(n)=(p-1)(q-1),φ(n)表示n的歐拉數。選取隨機的一個正整數e作為加密密鑰,e可公開,1<e<φ(n)且 gcd(e,φ(n))=1,即 e與 φ(n)互素。通過ed modφ(n)=1計算得解密密鑰d,d需保密。(n,e)為公鑰,(n,d)為私鑰。假設明文為m,密文為c,加密過程滿足c=memod n,解密過程中明文m=cemodn[14],其中,e作為公鑰是公開的,如果模n遭泄露,n=pq被因式分解,即可由p,q計算出φ(n),從而能根據ed modφ(n)=1計算出密鑰d,計算獲得明文[15]。可以說,n越長,因式分解難度越高,RSA安全性越高,但如果不斷增加密鑰長度,就會使得加密效率低下。RSA自開發至今的四十余年,被公認為是最完善、應用最廣泛的加密算法,但是其加解密速度緩慢仍是一個不可忽視的缺點。肖振久等[16]提出一種將雙素數改為四素數的RSA算法,以提高算法安全性和運算效率;李云飛等[17]提出可以將解密時的一些計算量轉移到加密方,提升算法性能。
面對日益增大的數據量,醫院陸續引進了醫院信息系統來管理各部門的信息,達到使工作更加便捷高效的目的。醫院信息化在推廣過程中面臨許多風險和問題,例如攻擊者可能假冒患者獲取患者資料,或攻擊通信信道獲得患者信息,從而篡改信息達到某些目的,針對這些問題,我們可以將患者的信息加密后再儲存,或者對通信信息進行加密,這樣即使攻擊者獲得了患者信息,也是無法理解的密文。與其他領域數據不同的是,醫療數據類型多樣,醫院系統中儲存的信包含數值型數據、文本、信號、圖像、音頻、視頻等等,對于文檔型數據,除了用DES、RSA算法進行加密,也可以將二者相結合,加密速度快且強度高。密碼技術也同樣適用于動、靜態圖像,將圖像顏色的二維數據轉換為一維數據,再以64位為一組進行加密。
此外,數據加密技術也應用于人類健康醫療的各個領域,如遠程醫療、無線醫療傳感網、可穿戴設備數據等,為我們的隱私安全提供保障。數據加密還廣泛應用于網絡數據庫、軟件、電子商務和虛擬專用網絡(VPN)等領域,目前很多醫院都構建了自己的局域網,VPN應用于醫院局域網,通過加密等技術,可以保證各種醫療信息安全并有一定訪問控制的功能。
已發布的信息常常被攻擊者拿來與別的途徑所獲信息進行鏈接操作,經過推理得到隱私信息,這種隱私獲得方法即為鏈接攻擊,而匿名化是對抗此類攻擊的主要技術之一。文獻[18]給出了例子,將醫療信息表與選民登記表相鏈接,就能基本確定患者的診斷結果。為了應對鏈接攻擊,Sweeney[18]提出并改進了k-匿名。
待發布的數據通常包含四種屬性:① 個體標識符,可以表示個體身份的屬性,如姓名、身份證號等;② 準標識符(QI),與其他屬性進行鏈接從而表示個體身份的屬性,如性別、年齡、郵編等;③ 敏感屬性,描述個人隱私,發布時需保密的屬性,如收入、健康狀況等;④ 非敏感屬性:公開后對隱私不造成影響的屬性。
患者的檔案通常以患者的名字、身份證號等可以確認身份的信息進行標識,而這些信息本身就是該保護的部分,所以需要對其進行匿名化保護,我們可以建立k-匿名模型,通過泛化和抑制兩種方法對準標識符進行分組[19-20]。泛化是將具體的數據替換為抽象模糊的數據,如將患者出生日期“1990年1月1日”替換為模糊的“1990年”。抑制是將屬性進行隱藏,被抑制的元組在發布后是看不到的。k-匿名模型要求發布表中的每個元組都至少與其他(k-1)個元組具有完全相同的準標識符屬性[21],泛化處理后具有相同準標識符屬性的稱為一個等價類簇,且重復次數至少為k(k≥2),這樣使得發布表中每個元組主體信息就會和其他k-1個元組無法區分,來保護隱私信息[22]。
由于k-匿名模型是對準標識符屬性進行約束,沒考慮敏感屬性,攻擊者可以根據自己的知識和已有的信息,推理出匿名數據,因此,k-匿名不容易抵擋同質性攻擊和背景知識攻擊[23]。為了解決以上問題,Machanavajjhala等[24]在k-匿名基礎上提出了l-多樣化匿名,這樣使得每一個等價類簇中的敏感屬性包含l個元素,從而解決問題。
現有的匿名模型大多是先刪除身份標識屬性,再將準標識屬性匿名化,基本都是保證了數據的有效性,但會損失某些數據屬性,然而,在信息交互的過程中,丟失的那部分信息可能會影響正常運作。基于此,童云海等[25]創新地提出了一種隱私數據發布中保留身份信息的匿名方法,提高了信息的有效性。
大數據的出現,為各行各業帶來了或積極或消極的影響,醫療領域的特殊性使得人們對隱私安全問題更加重視,通過對以上方法及技術的分析可以看出,醫療衛生信息系統等級保護還存在醫療衛生工作人員等級保護意識薄弱,缺乏專業部門管理并缺乏標準化的規章制度等問題;基于訪問控制技術效率高,但是靈活性差,特別是在醫療衛生信息系統中參與人員眾多,情況復雜,往往難以滿足實際需求;數據加密技術可以保證數據安全性,確保信息準確,是保障網絡數據安全的關鍵技術,但因其大運算量耗費大量時間,開銷較大;傳統匿名化技術能夠抵抗推測類的攻擊,且效率較高,但是經過泛化處理后容易丟失某一些信息,降低數據可用性。除了本文介紹的幾種基本算法和模型,國內外學者也提出許多新的思路,根據實際需求對算法和模型進行改進,如將DES與RSA算法相結合的混合加密方法,加密效率快且加密強度高;將RSA與AES算法相結合,既能安全保管密鑰,有提高了加密效率;將DES拓展為多重DES算法,通過增加密鑰長度提高了安全性;對k-匿名技術進行改進,提出基于身份保持或者有損連接的個性化數據發布保護方法,既保證運算效率又保證數據有效性。除了技術方面的保障,還應建立完善的制度保障,在醫療領域建立完善的隱私保護體系,為數據的存儲、訪問和應用形成系統的保護。