沈貝敏
(上海市精神衛(wèi)生中心,上海 200030)
近年來國內(nèi)的醫(yī)療質(zhì)量以及醫(yī)療水平達到新的高度,這種高度充分反映在醫(yī)療數(shù)據(jù)較之于以往出現(xiàn)的爆炸式或高幅度增長上[1]。按照此種情勢來看,倘若繼續(xù)沿用醫(yī)院傳統(tǒng)醫(yī)療數(shù)據(jù)存儲模式,勢必會增大醫(yī)院建設(shè)成本,而這無疑與現(xiàn)代醫(yī)院追求信息化的發(fā)展趨勢相背離?;诋斚略茢?shù)據(jù)庫技術(shù)的迅速發(fā)展以及相關(guān)產(chǎn)品能夠充分解決醫(yī)院信息建設(shè)化難題的特點,因此,可以將該技術(shù)具體應(yīng)用到醫(yī)院信息管理系統(tǒng)之中。其主要優(yōu)勢表現(xiàn)在,既可以促使醫(yī)院獲得龐大的存儲空間,同時又可以通過減少硬件投入的方式降低醫(yī)院建設(shè)或運營的成本[2]。然而,云數(shù)據(jù)庫既給醫(yī)院建設(shè)提供便捷,也給醫(yī)院建設(shè)帶來風險。因此,將云數(shù)據(jù)庫應(yīng)用到醫(yī)院信息系統(tǒng)的同時更需要應(yīng)用相應(yīng)的加密技術(shù),以確保在醫(yī)院云數(shù)據(jù)庫中更好完成對醫(yī)療數(shù)據(jù)的加密存儲??梢哉f研究與元數(shù)據(jù)庫息息相關(guān)的數(shù)據(jù)加密技術(shù),并在醫(yī)院信息管理系統(tǒng)中落實數(shù)據(jù)加密技術(shù),既具有強大的社會需求又具有重要的社會意義。
高級加密標準(AES)是繼數(shù)據(jù)加密標準(DES)算法以及彌補秘鑰長度過短的3DES 算法之后。新推出的加密標準[3]。當下均用高級加密標準算法替代數(shù)據(jù)加密標準算法。較之于DES算法,高級加密標準(AES)算法無論在加解密效率上還是在安全性層面上均取得巨大突破。該算法廣泛應(yīng)用于各領(lǐng)域。簡而言之,高級加密標準(AES)算法是基于分組迭代的加密算法,該加密算法成分結(jié)合了靈活性與安全性以及效率與性能,抵抗現(xiàn)有攻擊方法效果顯著。其中,AES-128 加密與解密流程圖具體如圖1所示。
由圖1所示,加密流程為圖的左側(cè),其內(nèi)容主要涉及輪秘鑰加、列混合變化、行移位、字節(jié)替代等4個部分。解密流程為圖的右側(cè),主要內(nèi)容包括逆向列混合變換、逆向行移位、逆向字節(jié)替代、輪秘鑰加等4個部分。秘鑰擴展操作位于圖的中間,其主要作用在于生成輪秘鑰,且在操作執(zhí)行輪秘鑰加時完成相應(yīng)的子秘鑰傳入。高級加密標準算法的加密過程核心思想是在名為State的字節(jié)矩陣中添加128 bit的明文區(qū)塊[4],且在State中完成或者實現(xiàn)AES算法的所有操作。需要注意的是,在加密與解密過程中,唯一需要用到秘鑰的的操作是輪秘鑰加,此過程中的XOR操作通過State分組與當前輪數(shù)相對應(yīng)的輪秘鑰完成。
圖1 AES-128 加密與解密流程圖
鑒于高級加密標準(AES)算法的優(yōu)勢,此次研究選取AES-128算法。但是,將該算法具體應(yīng)用到醫(yī)療數(shù)據(jù)時,發(fā)現(xiàn)該高級加密標準算法并不直接適于醫(yī)院信息系統(tǒng)。鑒于此,為了實現(xiàn)加解密效率的優(yōu)化,通過對AES算法的體系結(jié)構(gòu)、秘鑰擴展以及雙向列混合變換的運算過程進行優(yōu)化,提出P-AES 算法,以此適用醫(yī)療信息管理系統(tǒng)。在體系結(jié)構(gòu)上,此次研究借助于串行結(jié)構(gòu)的AES算法,因此State分組的加密也是串行引入的。然而數(shù)據(jù)長度較小的明文信息才適用于串行結(jié)構(gòu),因此,此次研究提出并行結(jié)構(gòu)的P-AES算法,其加密流程圖具體如圖2所示。
圖2 P-AES算法并行結(jié)構(gòu)加密流程圖
應(yīng)用AES算法的體系結(jié)構(gòu)為串行結(jié)構(gòu)可以同步完成處理State明文分組的操作。受此啟發(fā),此次研究異步的方式完成處理State明文分組的操作,以此實現(xiàn)同時處理多個State明文組,同時避免而各組之間相互影響,即完成從串行結(jié)構(gòu)的高級加密標準算法向并行結(jié)構(gòu)的P-AES算法的變幻。由圖2可知,P-AES算法進行具體的加密與解密時,在State分組較少時,通過減少多余線程提升算法的執(zhí)行效率,而在State分組過多時,可以通過同時處理多個分組以及使用多線程提升執(zhí)行效率并以此優(yōu)化加解密的耗時。
通過結(jié)合實際的醫(yī)院信息系統(tǒng),以及為了實現(xiàn)醫(yī)護人員的便捷,對于P-AES算法的秘鑰的安全存儲此次研究選取記錄介質(zhì)存儲法,核心思想即是在數(shù)據(jù)庫儲存P-AES算法秘鑰。其中,P-AES加密算法作為該方法的對稱加密算法,RSA算法作為該方法的非對稱加密算法,因此,此次研究選取的記錄介質(zhì)儲存法是基于兩層秘鑰管理模式[5]。鑒于RSA算法的私鑰與P-AES算法同樣存在如何存儲的問題,且在數(shù)據(jù)庫直接存儲用戶的私鑰并不可取。此次研究分2部分進行秘鑰管理,一是P-AES算法的秘鑰存儲,二是對用戶私鑰的存儲。以此形成三級秘鑰管理機制的混合加密算法,統(tǒng)一實現(xiàn)數(shù)據(jù)加密秘鑰與用戶私鑰的有效管理。其中,數(shù)據(jù)加密過程具體如圖3所示。
圖3 數(shù)據(jù)加密過程
如圖3所示,假設(shè)醫(yī)院信息系統(tǒng)的數(shù)據(jù)庫用戶為n個,在數(shù)據(jù)表、數(shù)據(jù)庫以及字段的權(quán)限層面n個用戶具有差異,且非對稱秘鑰均勻分配到每個用戶中,即每個用戶均有公鑰與私鑰。其中n個數(shù)據(jù)庫用戶整體記為Usern。用戶公鑰記為PK,用戶的私鑰記為SKn。同時假設(shè)在表M中,用戶對全部字段擁有全部操作權(quán)限。加密字段Mi的屬性值為明文q。應(yīng)用P-AES加密算法對Mi加密的秘鑰為K。用戶Useri對明文q加密,即可完成首次對Mi的屬性值q的加密存儲。其中,數(shù)據(jù)解密過程具體如圖4所示。
圖4 數(shù)據(jù)解密過程
具體如圖4所示,對明文q解密時,在M表中,由于加密時已保存用戶對Mi字段的秘鑰,因此具體解密時僅需完成秘鑰明文K讀取即可。鑒于選取非對稱以及對稱算法進行具體加密時必然要重新考慮新出現(xiàn)的秘鑰。因此,此次研究另外選擇具有不可逆特性的SHA-512加密算法對之重新儲存。
作為醫(yī)院數(shù)據(jù)庫與醫(yī)院信息系統(tǒng)之間橋梁的數(shù)據(jù)加解密程序,對于數(shù)據(jù)的加解密至關(guān)重要,并將得到的結(jié)果重新投入系統(tǒng)與數(shù)據(jù)庫。鑒于在加解密時此程序無具體的界面,因此只需對客戶端程序加密或者解密信息時調(diào)用即可。其中,數(shù)據(jù)加解密程序具體如圖5所示。
圖5 數(shù)據(jù)加解密程序
如圖5所示,數(shù)據(jù)加解密程序想要正常實現(xiàn)加解密操作,另外需要加解密模塊、數(shù)據(jù)庫操作接口、加密字典以及秘鑰管理的支持。其中,數(shù)據(jù)庫接口的主要作用體現(xiàn)在查詢數(shù)據(jù)庫中秘鑰以及加密字典的信息。維護加密字段的信息通過加密字典管理來實現(xiàn),而在本質(zhì)上加解密處理模塊則體現(xiàn)了P-AES算法的加解密算法。
為了證明此次研究提出的加密算法的可行性與P-AES算法的效率問題,在平均時間上,此次研究對比分析了加密和解密10次的4種加密算法,其結(jié)果具體如圖6所示。
(a)加密時間對比
由圖6(a)和6(b)可知,使用3DES加密算法之后能夠增加DES的安全性,在耗時更長的情況下,其加密和解密,3DES加密算法最強,且由于AES算法耗時最少,故此次研究選取此加密算法。由圖6(c)和6(d)可知,較之于AES1與AES2算法,AES3耗時最少,故此次研究選取AES算法完成對數(shù)據(jù)的加解密操作。
此次研究分別對比了P-AES算法與標準AES算法,并對之進行優(yōu)化對比分析,同時考慮數(shù)據(jù)長度問題并對之進行分別驗證。具體實驗結(jié)果如圖7所示。
(a)短數(shù)據(jù)加密時間對比
由圖7可知,驗證短數(shù)據(jù)的加解密結(jié)果為圖7(a)和7(b)所示,而驗證長數(shù)據(jù)的加解密結(jié)果為圖7(c)和7(d)所示。通過優(yōu)化對比分析可知,P-AES算法的加解密效率在長數(shù)據(jù)以及短數(shù)據(jù)兩個層面均高于標準AES算法。
鑒于此次研究提出的算法最大程度上降低了能操作的次數(shù),故需要在P-AES算法的擴散性和混淆性上進行對比分析,即需要完成在秘鑰不變時,通過生成密文的變化驗證此次研究提出算法的擴散性。同時需要在明文不變時通過觀察對密文結(jié)果驗證此次研究提出算法的混淆性。此外,鑒于AES算法為單線程的串行結(jié)構(gòu),優(yōu)化后的P-AES算法為多線程的并行結(jié)構(gòu),因此需要對比分析2種加密算法的內(nèi)存使用率與CPU使用率。具體結(jié)果如圖8所示。
(a)擴散性對比
由圖8可知,驗證對比2種算法的混淆性與擴散性結(jié)果為圖8(a)和8(b)所示,無論是標準AES算法抑或是P-AES算法,其密文改變位數(shù)保持在66位,故可以說明此次研究提出的優(yōu)化P-AES算法并沒有因為減少輪操作次數(shù)而產(chǎn)生混淆性與擴散性。此外,由圖8可知,驗證對比2種算法的內(nèi)存使用率與CPU使用率結(jié)果為圖8(c)和8(d)所示,隨著數(shù)據(jù)長度的不斷增大,2種加密算法的內(nèi)存使用率保持在20%左右,故2種加密算法的內(nèi)存使用率情況基本相同。但是,通過比較2種加密算法的CPU利用率,得出P-AES加密算法的CPU利用率更大。
最后需要完成對此次研究提出算法的安全性進行評價,因此實現(xiàn)保護患者隱私的要求。即保證查詢條件相同的情況下,在查找信息層面完成未加密與加密的耗時對比分析。具體結(jié)果如圖9所示。
秘鑰長度算法秘鑰個數(shù)每納秒執(zhí)行一次解密所需的時間每納秒執(zhí)行1萬次所需的時間56DES256≈7.2×1016255ns≈1.125年1小時125AES2128≈3.4×10382127ns≈5.3×1021年5.3×1017年1683DES2168≈3.7×10502167ns≈5.8×1033年5.8×1029年
圖9 加密與未加密2種情況的查詢耗時
由圖9可知,在信息條數(shù)不斷增加的情況下,雖然較之于加密,未加密的耗時低于加密,但是兩者耗時相差并不大,故可以不做考慮。另一方面,進一步對此次研究提出的3種算法進行安全性評價時,得3種算法均具有極高的安全性,故在保護患者的隱私層面甚佳。簡而言之,此次研究提出的3種算法或混合算法能夠保障醫(yī)院信息系統(tǒng)中醫(yī)療數(shù)據(jù)的安全性。
為了能夠確保在醫(yī)院云數(shù)據(jù)庫中更好完成對醫(yī)療數(shù)據(jù)的加密存儲,此次研究在P-AES算法的基礎(chǔ)上提出了混合加密算法,以此提升醫(yī)療數(shù)據(jù)的加密和解密速度。研究結(jié)果表明,P-AES算法的加解密效率在長數(shù)據(jù)以及短數(shù)據(jù)2個層面均高于標準AES算法,且并沒有因為減少輪操作次數(shù)而產(chǎn)生混淆性與擴散性。同時在內(nèi)存使用率和CPU使用率上優(yōu)化后的P-AES算法效果更為顯著。最后,通過對比分析DES算法、AES算法以及3DES算法的安全性,得出3種算法均具有極高的安全性,故在保護患者的隱私層面甚佳。此次研究提出的3種算法或混合算法能夠保障醫(yī)院信息系統(tǒng)中醫(yī)療數(shù)據(jù)的安全性。