摘 要: 為了解決醫(yī)院遠程信息系統(tǒng)客戶端的數(shù)據(jù)安全問題,提出利用Twofish加密算法對客戶端數(shù)據(jù)進行加密的算法。該算法的引入有效克服了手機內存的有限性對加密技術的影響,對系統(tǒng)的安全性進行優(yōu)化。在對Twofish算法加密過程研究的基礎上,設計出基于Java客戶端代碼的安全實現(xiàn),并通過測試。
關鍵詞: 醫(yī)院遠程信息系統(tǒng);數(shù)據(jù)安全;Twofish;加密技術;Java
在移動信息化迅速發(fā)展的今天,移動終端特別是手機在我國醫(yī)療事業(yè)上的應用尚未得到很好的發(fā)展,制約其發(fā)展有多方面原因,其主要原因還是安全性問題[2]。醫(yī)院工作質量的好壞取決于醫(yī)院信息系統(tǒng)的完善與否,因此對醫(yī)院信息系統(tǒng)的安全運行提出了更高要求。隨著信息技術的發(fā)展,醫(yī)院信息系統(tǒng)通常已具備較高的安全性,而數(shù)據(jù)安全卻一直存在隱患。數(shù)據(jù)安全隱患主要體現(xiàn)在信息的截獲、竊取、篡改和假冒上。
移動設備應用中最薄弱環(huán)節(jié)是客戶機端設備,所以信息的安全性就顯得尤為重要。
由于醫(yī)院遠程信息系統(tǒng)涉及到病人的私人信息及醫(yī)院的機密治療技術,如果系統(tǒng)再一步擴展還要涉及到金錢的交易等,因此對安全性要求會更高。無線環(huán)境中的安全受信道、手持設備等本身特有因素的影響,因此安全性難以保證。確保無線環(huán)境中的安全性(特別是對傳輸數(shù)據(jù)的保護)是系統(tǒng)首先應該解決的問題。
該項目通過一種加密算法對客戶端數(shù)據(jù)進行加密,確保在數(shù)據(jù)信息傳輸過程中的安全。但是考慮到手機內存的有限性,本文利用一種更加適用于手機等這種小容量設備的加密認證技術,即基于Twofish算法的加密技術,使手機成為更加可靠的應用終端,使該遠程信息系統(tǒng)真正得到完善和擴展。
1 Twofish算法的提出
作為一種標準的數(shù)據(jù)加密算法,DES(Data Encryption Standard)的密鑰長度對于現(xiàn)在計算機的運行速度來說,在某些高機密的場合顯得有點不足,已經(jīng)不再安全,因此出現(xiàn)了一種更高標準的加密算法AES (Advanced Encryption Standard)代替了原來的DES。首先這種加密算法必須是塊加密,因為塊加密可以被用來對數(shù)據(jù)流進行加密,也可以被用來制造一些專用的數(shù)據(jù)加密設備。其次,這種加密算法必須使用更長的密鑰,更大的加密塊,更高的加密速度和靈活性。Twofish則是Counterpane公司向NIST提交的一種滿足AES要求的加密算法。Twofish采用128 bit數(shù)據(jù)塊,128/192/256 bit可變長度密鑰。Twofish算法是進入NIST第二輪5種加密算法中的一種,具有加密速度快、結構簡單容易實現(xiàn)、無弱密鑰、適應性強[1]等特點。
基于Twofish算法特點及應用性能,遠程信息系統(tǒng)采用此算法對系統(tǒng)的安全性進行優(yōu)化,使系統(tǒng)能適用手機等移動設備的無線環(huán)境,同時能讓用戶使用起來更加放心。
3 利用Twofish算法優(yōu)化客戶端
本項目對數(shù)據(jù)安全的設計是在不改變用戶硬件、不改變底層通信協(xié)議(如Http等)的基礎上通過應用層的解決方案來保證數(shù)據(jù)不在路途被篡改、截取或假冒。
根據(jù)上述原則,得出如圖2所示的系統(tǒng)安全性研究的總模型和工作流程圖。
說明:
?、俦硎究蛻魧⑤斎氲臄?shù)據(jù)信息(用戶登錄、用戶查詢、注冊、預約等)發(fā)送給服務器端,同時將輸入的信息利用Twofish算法進行加密。
②對輸入的登錄信息進行加密后再傳給服務器。
?、郾硎痉掌魍ㄟ^JDBC訪問后臺數(shù)據(jù)庫,利用SQL語句對數(shù)據(jù)庫進行查詢、修改等操作。
?、苋绻麤]有查到數(shù)據(jù)或輸入信息有誤則返回給服務器,同時將沒查到結果或錯誤信息返回給客戶端。
?、荼硎救绻跀?shù)據(jù)庫中查詢到與SQL語句條件相匹配的數(shù)據(jù)信息,將此信息連同用戶登錄信息一起進行Twofish加密。
?、薇硎緦⒓用芎蟮乃行畔⒎祷刂练掌?。
?、弑硎痉掌魈幚硗曛笤僦鸺壏祷?,直到用戶得到相應的查詢信息成功或登錄失敗信息。
4 優(yōu)化后的系統(tǒng)客戶端的代碼設計
系統(tǒng)設計均采用Java語言實現(xiàn)各種安全功能,其中使用的算法提供者采用了Bouncy Castle JCE,因為在眾多的提供者中,它是最安全的,并可免費獲得。首先,在原來系統(tǒng)的基礎上增加一個類hosTwofish,接著就要考慮如何將客戶端的數(shù)據(jù)進行加密傳輸和將查詢到的數(shù)據(jù)查詢后再解密顯示于客戶端。其實Twofish加解算法已經(jīng)比較完善了,現(xiàn)在主要任務是如何把此算法運用于該系統(tǒng)數(shù)據(jù)加/解密中。一個最簡單的方法就是在原來的數(shù)據(jù)操作的過程前后分別調用該類的加密方法blockEncrypt(byte[] input, int inOffset,object sessionKey),其中input表示明文,inOffset表示數(shù)據(jù)開始的位置,sessionKey表示用于加密的會話密鑰;解密方法blockDecrypt(byte[] input,int inOffset,object sessionKey),其中input表示密文,inOffset表示數(shù)據(jù)開始的位置,sessionKey表示用于解密的會話密鑰。然后創(chuàng)建一個類HosTwofish對象hosTwofish,再通過調用解密方法blockEncrypt()對輸入的信息sessfonKey進行加密。同理,解密同樣先創(chuàng)建對象hosTwofish,再通過調用解密方法blockDecrypt()對查詢到的數(shù)據(jù)信息sessionKey進行解密,然后通過XML字符解析返回至客戶端。
5 測試應用效果
為了說明Twofish算法應用到醫(yī)院遠程信息系統(tǒng)中保證數(shù)據(jù)傳輸安全的有效性和優(yōu)越性,本文對系統(tǒng)的數(shù)據(jù)安全性進行了測試,從兩個方面說明了Twofish 算法應用到醫(yī)院遠程信息系統(tǒng)優(yōu)點。
(1)對訪問的速度影響小
加密算法選擇的不合適就會影響系統(tǒng)的訪問時間。采用Twofish算法進行加密處理對系統(tǒng)的響應時間影響不大,而用普通的加密技術,則會使系統(tǒng)的響應時間明顯增加。
(2)數(shù)據(jù)的安全性得到很好的保證
通過大量的系統(tǒng)測試發(fā)現(xiàn),系統(tǒng)有很好的安全性,沒有出現(xiàn)過數(shù)據(jù)丟失和數(shù)據(jù)被修改的現(xiàn)象。
將Twofish算法應用到醫(yī)院遠程信息系統(tǒng)用以保證數(shù)據(jù)的安全性是系統(tǒng)的一個顯著創(chuàng)新。項目從保證數(shù)據(jù)遠程傳輸?shù)陌踩猿霭l(fā),綜合考慮手持設備內存局限性及訪問的數(shù)據(jù)量,優(yōu)化客戶端設計,使構建的系統(tǒng)具有較強的應用性和實用性。
參考文獻
[1]李占江.Twofish算法的優(yōu)化及其在移動支付系統(tǒng)中的實現(xiàn)[J].微計算機信息,2007,23(12):6-8.
[2] 沈崇德.無線移動技術在現(xiàn)代醫(yī)院管理中的應用[J].中國數(shù)字醫(yī)學,2009,4(4):14-16.
[3] 劉知貴,楊立春,蒲潔.基于Twofish算法的標書加解密研究[J].計算機應用,2004,24(6).
[4] 張和君,張躍.遠程心電監(jiān)護軟件系統(tǒng)的設計與實現(xiàn)[J].計算機工程與應用,2006,42(15):219-224.
[5] PU ZHANG, YUICHI KOGURC, HIROKI MATSUOKA, et al. A remote patient monitoring system using a Java-enabled 3G Mob. Proceedings of the 29th Annual International Conference of the IEEE EMBS clte internationale, Lyon, France, 2007, 8.