《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > Twofish加密算法在醫(yī)院遠(yuǎn)程信息系統(tǒng)中的應(yīng)用
Twofish加密算法在醫(yī)院遠(yuǎn)程信息系統(tǒng)中的應(yīng)用
來源:微型機(jī)與應(yīng)用2011年第3期
李建文,,孔鳳娟
(陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安 710021)
摘要: 為了解決醫(yī)院遠(yuǎn)程信息系統(tǒng)客戶端的數(shù)據(jù)安全問題,提出利用Twofish加密算法對客戶端數(shù)據(jù)進(jìn)行加密的算法,。該算法的引入有效克服了手機(jī)內(nèi)存的有限性對加密技術(shù)的影響,,對系統(tǒng)的安全性進(jìn)行優(yōu)化,。在對Twofish算法加密過程研究的基礎(chǔ)上,,設(shè)計(jì)出基于Java客戶端代碼的安全實(shí)現(xiàn),并通過測試,。
Abstract:
Key words :

摘  要: 為了解決醫(yī)院遠(yuǎn)程信息系統(tǒng)客戶端的數(shù)據(jù)安全問題,,提出利用Twofish加密算法對客戶端數(shù)據(jù)進(jìn)行加密的算法。該算法的引入有效克服了手機(jī)內(nèi)存的有限性對加密技術(shù)的影響,,對系統(tǒng)的安全性進(jìn)行優(yōu)化,。在對Twofish算法加密過程研究的基礎(chǔ)上,設(shè)計(jì)出基于Java客戶端代碼的安全實(shí)現(xiàn),,并通過測試,。
關(guān)鍵詞: 醫(yī)院遠(yuǎn)程信息系統(tǒng);數(shù)據(jù)安全,;Twofish,;加密技術(shù);Java

 在移動信息化迅速發(fā)展的今天,,移動終端特別是手機(jī)在我國醫(yī)療事業(yè)上的應(yīng)用尚未得到很好的發(fā)展,,制約其發(fā)展有多方面原因,,其主要原因還是安全性問題[2],。醫(yī)院工作質(zhì)量的好壞取決于醫(yī)院信息系統(tǒng)的完善與否,因此對醫(yī)院信息系統(tǒng)的安全運(yùn)行提出了更高要求,。隨著信息技術(shù)的發(fā)展,,醫(yī)院信息系統(tǒng)通常已具備較高的安全性,,而數(shù)據(jù)安全卻一直存在隱患。數(shù)據(jù)安全隱患主要體現(xiàn)在信息的截獲,、竊取,、篡改和假冒上。
移動設(shè)備應(yīng)用中最薄弱環(huán)節(jié)是客戶機(jī)端設(shè)備,,所以信息的安全性就顯得尤為重要,。
 由于醫(yī)院遠(yuǎn)程信息系統(tǒng)涉及到病人的私人信息及醫(yī)院的機(jī)密治療技術(shù),如果系統(tǒng)再一步擴(kuò)展還要涉及到金錢的交易等,,因此對安全性要求會更高,。無線環(huán)境中的安全受信道、手持設(shè)備等本身特有因素的影響,,因此安全性難以保證,。確保無線環(huán)境中的安全性(特別是對傳輸數(shù)據(jù)的保護(hù))是系統(tǒng)首先應(yīng)該解決的問題。
該項(xiàng)目通過一種加密算法對客戶端數(shù)據(jù)進(jìn)行加密,,確保在數(shù)據(jù)信息傳輸過程中的安全,。但是考慮到手機(jī)內(nèi)存的有限性,本文利用一種更加適用于手機(jī)等這種小容量設(shè)備的加密認(rèn)證技術(shù),,即基于Twofish算法的加密技術(shù),,使手機(jī)成為更加可靠的應(yīng)用終端,使該遠(yuǎn)程信息系統(tǒng)真正得到完善和擴(kuò)展,。
1 Twofish算法的提出
 作為一種標(biāo)準(zhǔn)的數(shù)據(jù)加密算法,,DES(Data Encryption Standard)的密鑰長度對于現(xiàn)在計(jì)算機(jī)的運(yùn)行速度來說,在某些高機(jī)密的場合顯得有點(diǎn)不足,,已經(jīng)不再安全,,因此出現(xiàn)了一種更高標(biāo)準(zhǔn)的加密算法AES (Advanced Encryption Standard)代替了原來的DES。首先這種加密算法必須是塊加密,,因?yàn)閴K加密可以被用來對數(shù)據(jù)流進(jìn)行加密,,也可以被用來制造一些專用的數(shù)據(jù)加密設(shè)備。其次,,這種加密算法必須使用更長的密鑰,,更大的加密塊,更高的加密速度和靈活性,。Twofish則是Counterpane公司向NIST提交的一種滿足AES要求的加密算法,。Twofish采用128 bit數(shù)據(jù)塊,128/192/256 bit可變長度密鑰,。Twofish算法是進(jìn)入NIST第二輪5種加密算法中的一種,,具有加密速度快、結(jié)構(gòu)簡單容易實(shí)現(xiàn),、無弱密鑰,、適應(yīng)性強(qiáng)[1]等特點(diǎn),。
 基于Twofish算法特點(diǎn)及應(yīng)用性能,遠(yuǎn)程信息系統(tǒng)采用此算法對系統(tǒng)的安全性進(jìn)行優(yōu)化,,使系統(tǒng)能適用手機(jī)等移動設(shè)備的無線環(huán)境,,同時(shí)能讓用戶使用起來更加放心。



3 利用Twofish算法優(yōu)化客戶端
 本項(xiàng)目對數(shù)據(jù)安全的設(shè)計(jì)是在不改變用戶硬件,、不改變底層通信協(xié)議(如Http等)的基礎(chǔ)上通過應(yīng)用層的解決方案來保證數(shù)據(jù)不在路途被篡改,、截取或假冒。
根據(jù)上述原則,,得出如圖2所示的系統(tǒng)安全性研究的總模型和工作流程圖,。


說明:
 ①表示客戶將輸入的數(shù)據(jù)信息(用戶登錄,、用戶查詢,、注冊、預(yù)約等)發(fā)送給服務(wù)器端,,同時(shí)將輸入的信息利用Twofish算法進(jìn)行加密,。
 ②對輸入的登錄信息進(jìn)行加密后再傳給服務(wù)器,。
?、郾硎痉?wù)器通過JDBC訪問后臺數(shù)據(jù)庫,利用SQL語句對數(shù)據(jù)庫進(jìn)行查詢,、修改等操作,。
 ④如果沒有查到數(shù)據(jù)或輸入信息有誤則返回給服務(wù)器,,同時(shí)將沒查到結(jié)果或錯誤信息返回給客戶端,。
 ⑤表示如果在數(shù)據(jù)庫中查詢到與SQL語句條件相匹配的數(shù)據(jù)信息,,將此信息連同用戶登錄信息一起進(jìn)行Twofish加密,。
 ⑥表示將加密后的所有信息返回至服務(wù)器,。
?、弑硎痉?wù)器處理完之后再逐級返回,直到用戶得到相應(yīng)的查詢信息成功或登錄失敗信息,。
4 優(yōu)化后的系統(tǒng)客戶端的代碼設(shè)計(jì)
 系統(tǒng)設(shè)計(jì)均采用Java語言實(shí)現(xiàn)各種安全功能,,其中使用的算法提供者采用了Bouncy Castle JCE,因?yàn)樵诒姸嗟奶峁┱咧?,它是最安全的,,并可免費(fèi)獲得。首先,,在原來系統(tǒng)的基礎(chǔ)上增加一個(gè)類hosTwofish,,接著就要考慮如何將客戶端的數(shù)據(jù)進(jìn)行加密傳輸和將查詢到的數(shù)據(jù)查詢后再解密顯示于客戶端。其實(shí)Twofish加解算法已經(jīng)比較完善了,,現(xiàn)在主要任務(wù)是如何把此算法運(yùn)用于該系統(tǒng)數(shù)據(jù)加/解密中,。一個(gè)最簡單的方法就是在原來的數(shù)據(jù)操作的過程前后分別調(diào)用該類的加密方法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)建一個(gè)類HosTwofish對象hosTwofish,再通過調(diào)用解密方法blockEncrypt()對輸入的信息sessfonKey進(jìn)行加密,。同理,,解密同樣先創(chuàng)建對象hosTwofish,再通過調(diào)用解密方法blockDecrypt()對查詢到的數(shù)據(jù)信息sessionKey進(jìn)行解密,,然后通過XML字符解析返回至客戶端,。
5 測試應(yīng)用效果
 為了說明Twofish算法應(yīng)用到醫(yī)院遠(yuǎn)程信息系統(tǒng)中保證數(shù)據(jù)傳輸安全的有效性和優(yōu)越性,本文對系統(tǒng)的數(shù)據(jù)安全性進(jìn)行了測試,,從兩個(gè)方面說明了Twofish 算法應(yīng)用到醫(yī)院遠(yuǎn)程信息系統(tǒng)優(yōu)點(diǎn),。
 (1)對訪問的速度影響小
加密算法選擇的不合適就會影響系統(tǒng)的訪問時(shí)間。采用Twofish算法進(jìn)行加密處理對系統(tǒng)的響應(yīng)時(shí)間影響不大,,而用普通的加密技術(shù),,則會使系統(tǒng)的響應(yīng)時(shí)間明顯增加。
 (2)數(shù)據(jù)的安全性得到很好的保證
 通過大量的系統(tǒng)測試發(fā)現(xiàn),,系統(tǒng)有很好的安全性,,沒有出現(xiàn)過數(shù)據(jù)丟失和數(shù)據(jù)被修改的現(xiàn)象。
 將Twofish算法應(yīng)用到醫(yī)院遠(yuǎn)程信息系統(tǒng)用以保證數(shù)據(jù)的安全性是系統(tǒng)的一個(gè)顯著創(chuàng)新,。項(xiàng)目從保證數(shù)據(jù)遠(yuǎn)程傳輸?shù)陌踩猿霭l(fā),,綜合考慮手持設(shè)備內(nèi)存局限性及訪問的數(shù)據(jù)量,優(yōu)化客戶端設(shè)計(jì),,使構(gòu)建的系統(tǒng)具有較強(qiáng)的應(yīng)用性和實(shí)用性,。
參考文獻(xiàn)
[1]李占江.Twofish算法的優(yōu)化及其在移動支付系統(tǒng)中的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,,23(12):6-8.
[2] 沈崇德.無線移動技術(shù)在現(xiàn)代醫(yī)院管理中的應(yīng)用[J].中國數(shù)字醫(yī)學(xué),,2009,,4(4):14-16.
[3] 劉知貴,楊立春,,蒲潔.基于Twofish算法的標(biāo)書加解密研究[J].計(jì)算機(jī)應(yīng)用,,2004,24(6).
[4] 張和君,,張躍.遠(yuǎn)程心電監(jiān)護(hù)軟件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,,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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。