鄧一新
(北京中醫(yī)醫(yī)院順義醫(yī)院,北京 101300)
醫(yī)院財務(wù)管理系統(tǒng)主要包括工資管理、醫(yī)療基金管理、收費管理、后勤管理,目前,我國各大醫(yī)院均設(shè)立獨特、獨立科室,這就造成醫(yī)院財務(wù)數(shù)據(jù)大量積累、分散,容易出現(xiàn)數(shù)據(jù)孤島問題[1]。隨著我國醫(yī)院規(guī)模不斷擴大,為了減少數(shù)據(jù)混亂問題的出現(xiàn),應(yīng)實現(xiàn)信息共享,以此提高醫(yī)院財務(wù)數(shù)據(jù)存儲效率[2]。在醫(yī)院內(nèi)部建立跨部門信息系統(tǒng),成為當下解決數(shù)據(jù)孤島問題的主要方案,然而,除了數(shù)據(jù)孤島問題,還存在數(shù)據(jù)無序問題,嚴重阻礙了醫(yī)院財務(wù)數(shù)據(jù)管理發(fā)展。有很多學者就這一問題展開了研究,文獻[3]提出了基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)安全存儲研究,將區(qū)塊鏈存儲技術(shù)與云數(shù)據(jù)庫相結(jié)合,設(shè)計了分布式醫(yī)療數(shù)據(jù)存儲方案,將醫(yī)療數(shù)據(jù)的元數(shù)據(jù)與數(shù)據(jù)提供者簽名相結(jié)合,利用云數(shù)據(jù)庫的特點,保證醫(yī)療數(shù)據(jù)的共享方便、可擴展性。文獻[4]提出了基于區(qū)塊鏈的充電交易數(shù)據(jù)安全存儲平臺設(shè)計,采用區(qū)塊鏈技術(shù),選擇幾個充電平臺作為數(shù)據(jù)中心節(jié)點,設(shè)計了一種充電交易數(shù)據(jù)存儲方案,用戶可以對交易后的個人數(shù)據(jù)進行加密控制,并通過共識機制,對加密數(shù)據(jù)進行去中心化的同步存儲。然而隨著醫(yī)院信息化不斷發(fā)展,存儲空間也出現(xiàn)了數(shù)據(jù)分散問題,難以歸一整理;使用常規(guī)加密算法存在無法直接對文檔集處理的問題,并在檢索關(guān)鍵性數(shù)據(jù)時,還需先解密處理后才能獲取檢索結(jié)果。但是上述兩種方法存在計算量大,且在檢索過程中極易出現(xiàn)個別數(shù)據(jù)被忽略,檢索結(jié)果并不具有全面性的問題。
針對上述存在的問題,本文提出了基于全同態(tài)加密算法的醫(yī)院財務(wù)數(shù)據(jù)安全存儲系統(tǒng)。
采用3層架構(gòu)設(shè)計的系統(tǒng)硬件結(jié)構(gòu),如圖1所示。
由圖1可知,該系統(tǒng)硬件結(jié)構(gòu)是由數(shù)據(jù)庫服務(wù)器、中間層服務(wù)器和客戶端三部分組成。通過數(shù)據(jù)庫服務(wù)器處理醫(yī)院財務(wù)數(shù)據(jù),通過中間層服務(wù)器連接數(shù)據(jù)庫服務(wù)器和客戶端,使用客戶端訪問數(shù)據(jù)[5]。
圖1 系統(tǒng)硬件結(jié)構(gòu)
用于數(shù)據(jù)庫服務(wù)器的兩臺IBMP5570小型機,采取雙機群模式與以往的雙機熱備模式不同,不僅能協(xié)同工作,還能有效提高了工作效率。雙機群模式下,兩臺主機可以共同工作,共同處理同一事務(wù)。如果一個主機發(fā)生故障,其他的主機將承擔所有的工作。雙機熱備模式下,傳統(tǒng)的操作方式是一臺主機工作,另一臺主機待機。在工作主機發(fā)生故障時,備用主機將代替故障主機開始工作。
配置4 臺IBM 3850 服務(wù)器,并保證每臺服務(wù)器都能穩(wěn)定運行,由此顯著提高系統(tǒng)容災(zāi)能力。配置兩個RADWARE負載均衡器,其作用是為系統(tǒng)備份,結(jié)構(gòu)如圖2所示。
圖2 RADWARE負載均衡器結(jié)構(gòu)
由圖2可知,通過客戶端訪問,能夠?qū)⒃L問結(jié)果提交到RADWARE負載均衡器中,并完成自動分配負載工作。
為了保證數(shù)據(jù)能夠完整備份,需配置雙存儲磁盤陣列柜,其結(jié)構(gòu)如圖3所示。
由圖3可知,利用雙存儲磁盤陣列柜將數(shù)據(jù)存儲到本地磁盤中,通過雙存儲磁盤陣列柜的復(fù)制功能,將存儲數(shù)據(jù)備份到另一磁盤陣列柜中,由此確保數(shù)據(jù)不會丟失[6]。
圖3 雙存儲磁盤陣列柜結(jié)構(gòu)
為了保證各個服務(wù)器之間能夠快速交換存儲數(shù)據(jù),需配置2臺SAN switch交換機,其結(jié)構(gòu)如圖4所示。
圖4 SAN switch交換機
由圖4可知,使用2臺IBM 4800存儲器,并配備光纜通道控制卡,通過光纜連接網(wǎng)絡(luò)交換機,進而構(gòu)成存儲區(qū)網(wǎng)絡(luò)。數(shù)據(jù)庫服務(wù)器和存儲器通過雙光纖連接到網(wǎng)絡(luò)交換機上,由此實現(xiàn)線路冗余,有效提高了交換機使用安全性。通過網(wǎng)絡(luò)交換機實現(xiàn)大量數(shù)據(jù)交換,減少局域網(wǎng)帶寬占用面積。
全同態(tài)加密是基于復(fù)雜性理論的數(shù)學問題。既能保證加密數(shù)據(jù)的安全,又能直接進行密文檢索、密文統(tǒng)計等代數(shù)運算,不需要解密用戶就可以處理密文數(shù)據(jù),減少了用戶的檢索次數(shù)[7-8]。全同態(tài)加密算法是一種在存儲環(huán)境下保證數(shù)據(jù)安全性的有效方法,它通過對加解密用戶進行訪問來實現(xiàn),減少了用戶的檢索[9-10]。解密時需要把解密的結(jié)果拼接起來,然后一個一個地取出明文。關(guān)鍵詞的分割和按位加密是實現(xiàn)關(guān)鍵詞檢索的關(guān)鍵,密文匹配將搜索關(guān)鍵詞和密文文件的內(nèi)容,如果相同長度的密文文件中存在與關(guān)鍵詞匹配的密文文件,則在搜索結(jié)束時,該文件將移回一個密文內(nèi)容,再次與關(guān)鍵詞匹配,直至密文文件檢索結(jié)束。
整個加解密存儲和檢索的具體過程如下:
(1)加密存儲操作
對明文M進行分割處理后,可得到:
經(jīng)過公式(1)分割處理后,可得到明文序列。使用全同態(tài)加密算法計算公式:
公式(2)中,α表示隨機選取加密密鑰;β表示安全大素數(shù);表示素數(shù)。
對明文mn加密處理后,在存儲系統(tǒng)中,加密操作步驟均是在客戶端完成的,并將密文發(fā)送到系統(tǒng)服務(wù)器中保存。
(2)解密存儲操作
在密文中獲取每個密文Ci,通過公式(3)對密文解密:
將解密mi按照順序拼接在一起,得到最終明文。在存儲環(huán)境下,解密操作是在系統(tǒng)客戶端上進行的,解密后得到文件的明文。
(3)檢索操作
將檢索到的多個關(guān)鍵字按照位置拆分:
經(jīng)過rn加密操作后得到密文:,將密文關(guān)鍵詞上傳到系統(tǒng)服務(wù)器端,通過公式計算,得到一個密文數(shù)組:
公式(5)中,j=1,2,3…k,其中k為文件密文的數(shù)量,數(shù)組中存放的關(guān)鍵字密文與文件密文匹配結(jié)果中,內(nèi)容為0或1即為加密;將密文結(jié)果進行解密后,可得到明文數(shù)組,如果數(shù)組中存在1,則說明關(guān)鍵字在檢索文件中,否則不存在。
檢索操作是在服務(wù)端進行的,不僅利用了全同態(tài)加密強大處理能力,而且還保證數(shù)據(jù)安全性,基于此的檢索操作流程如圖5所示。
圖5 檢索操作流程
由圖5可知,根據(jù)檢索操作預(yù)處理結(jié)果,獲取數(shù)據(jù)檢索向量,再通過全同態(tài)加密算法對檢索向量加密,并將加密結(jié)果上傳到數(shù)據(jù)庫服務(wù)器中。數(shù)據(jù)庫服務(wù)器根據(jù)檢索到的密文,分析檢索數(shù)據(jù)與密文相似度。當用戶獲取的密文為解密后數(shù)據(jù),則需根據(jù)檢索到的結(jié)果對比數(shù)據(jù)相似度,并根據(jù)實際情況篩選和排序,獲取最終檢索結(jié)果。
根據(jù)上述加解密存儲和檢索過程,設(shè)計存儲流程,如下所示:
步驟一:首先需要自我檢查,所有的參數(shù)都根據(jù)參數(shù)設(shè)置寫入內(nèi)存。若不需要參數(shù)設(shè)置,則可直接從包讀取;
步驟二:模組初始化,選擇啟動功能,觸發(fā)外部電路;
步驟三:查看是否終止存儲延遲?終止時,及時記錄并保存;未終止時,顯示狀態(tài)數(shù)據(jù);
步驟四:頻道登記管理,根據(jù)頻道進行參數(shù)設(shè)置,相關(guān)參數(shù)存儲并發(fā)送到延遲控制單元;通訊職能負責與上位機直接通訊;
步驟五:重復(fù)上述步驟,完成主軟件流程的設(shè)計。
按照全同態(tài)加密算法加解密存儲流程,實現(xiàn)數(shù)據(jù)高效存儲。
以腦卒中醫(yī)聯(lián)體的三級醫(yī)院中數(shù)據(jù)為例,在Intel(R)CoreTMi7 4700MQ 2.4GHz CPU下,對基于全同態(tài)加密算法的醫(yī)院財務(wù)數(shù)據(jù)安全存儲系統(tǒng)設(shè)計合理性,進行實驗驗證分析。
從醫(yī)院病歷系統(tǒng)中采集數(shù)據(jù),簡化數(shù)據(jù)并將病歷系統(tǒng)中的數(shù)據(jù)按照順序,依次導入到醫(yī)院財務(wù)數(shù)據(jù)庫中,如圖6所示。
圖6 醫(yī)院財務(wù)數(shù)據(jù)集
數(shù)據(jù)集統(tǒng)計結(jié)果,如表1所示。
表1 數(shù)據(jù)集統(tǒng)計結(jié)果
(1)檢索查全率
檢索查全率計算公式如下所示:
公式(6)中,M表示檢索到全部數(shù)據(jù);Ma表示檢索到的所需數(shù)據(jù)。
(2)檢索誤差
檢索誤差計算公式如下所示:
公式(7)中,x表示檢索數(shù)據(jù)數(shù)量;x′表示被檢索到的數(shù)據(jù)數(shù)量。
4.3.1 檢索查全率對比
分別使用文獻[3]基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)安全存儲、文獻[4]基于區(qū)塊鏈的充電交易數(shù)據(jù)安全存儲和該文的全同態(tài)加密算法對比檢索查全率,對比結(jié)果如圖7所示。
圖7 三種方法檢索查全率對比
由圖7可知,使用文獻[3]方法檢索查全率最高為39%,最低為25%;使用文獻[4]方法檢索查全率最高為65%,最低為58%;使用本文方法檢索查全率最高為97%,最低為95%,由此可知,使用該方法檢索查全率較高。
4.3.2 檢索誤差
分別使用文獻[3]、文獻[4]方法和本文方法對比檢索誤差,對比結(jié)果如圖8所示。
圖8 三種方法檢索誤差對比
由圖8可知:使用文獻[3]方法檢索誤差最高為400bit;使用文獻[4]方法檢索誤差最高為475bit;使用本文方法檢索誤差最高為45bit。通過對比結(jié)果可知,使用該方法檢索誤差較低。
基于全同態(tài)加密算法的醫(yī)院財務(wù)數(shù)據(jù)安全存儲系統(tǒng),通過對文檔而非所有文檔進行加密,有效地減少了檢索時的計算量,擴大了同態(tài)加密算法的選擇范圍。研究結(jié)果表明:該方案適用于云客戶機應(yīng)用環(huán)境,不受本地計算能力的限制,在檢索查全率和檢索誤差方面具有較好的性能。其缺點是全同態(tài)加密算法復(fù)雜度高,明文空間大小受平臺計算能力的制約。從實驗結(jié)果來看,明文空間的大小對實驗結(jié)果的準確度有很大影響,因而其準確度有限。由于全同態(tài)加密算法的時間和空間復(fù)雜度較高,使得該方案只能在云端運行,無法局部化。