?

Twofish加密算法在醫院遠程信息系統中的應用

2011-01-22 03:35李建文孔鳳娟
網絡安全與數據管理 2011年3期
關鍵詞:加密算法密鑰客戶端

李建文,孔鳳娟

(陜西科技大學 電氣與信息工程學院,陜西 西安 710021)

Twofish加密算法在醫院遠程信息系統中的應用

李建文,孔鳳娟

(陜西科技大學 電氣與信息工程學院,陜西 西安 710021)

為了解決醫院遠程信息系統客戶端的數據安全問題,提出利用Twofish加密算法對客戶端數據進行加密的算法。該算法的引入有效克服了手機內存的有限性對加密技術的影響,對系統的安全性進行優化。在對Twofish算法加密過程研究的基礎上,設計出基于Java客戶端代碼的安全實現,并通過測試。

醫院遠程信息系統;數據安全;Twofish;加密技術;Java

在移動信息化迅速發展的今天,移動終端特別是手機在我國醫療事業上的應用尚未得到很好的發展,制約其發展有多方面原因,其主要原因還是安全性問題[2]。醫院工作質量的好壞取決于醫院信息系統的完善與否,因此對醫院信息系統的安全運行提出了更高要求。隨著信息技術的發展,醫院信息系統通常已具備較高的安全性,而數據安全卻一直存在隱患。數據安全隱患主要體現在信息的截獲、竊取、篡改和假冒上。

移動設備應用中最薄弱環節是客戶機端設備,所以信息的安全性就顯得尤為重要。

由于醫院遠程信息系統涉及到病人的私人信息及醫院的機密治療技術,如果系統再一步擴展還要涉及到金錢的交易等,因此對安全性要求會更高。無線環境中的安全受信道、手持設備等本身特有因素的影響,因此安全性難以保證。確保無線環境中的安全性(特別是對傳輸數據的保護)是系統首先應該解決的問題。

該項目通過一種加密算法對客戶端數據進行加密,確保在數據信息傳輸過程中的安全。但是考慮到手機內存的有限性,本文利用一種更加適用于手機等這種小容量設備的加密認證技術,即基于Twofish算法的加密技術,使手機成為更加可靠的應用終端,使該遠程信息系統真正得到完善和擴展。

1 Twofish算法的提出

作為一種標準的數據加密算法,DES(Data Encryption Standard)的密鑰長度對于現在計算機的運行速度來說,在某些高機密的場合顯得有點不足,已經不再安全,因此出現了一種更高標準的加密算法AES(Advanced Encryption Standard)代替了原來的DES。首先這種加密算法必須是塊加密,因為塊加密可以被用來對數據流進行加密,也可以被用來制造一些專用的數據加密設備。其次,這種加密算法必須使用更長的密鑰,更大的加密塊,更高的加密速度和靈活性。Twofish則是Counterpane公司向NIST提交的一種滿足AES要求的加密算法。Twofish采用 128 bit數據塊,128/192/256 bit可變長度密鑰。Twofish算法是進入NIST第二輪5種加密算法中的一種,具有加密速度快、結構簡單容易實現、無弱密鑰、適應性強[1]等特點。

基于Twofish算法特點及應用性能,遠程信息系統采用此算法對系統的安全性進行優化,使系統能適用手機等移動設備的無線環境,同時能讓用戶使用起來更加放心。

2 Twofish算法的加密過程

Twofish算法的加密過程如圖1[3]所示:開始處P(plain text)表示需要進行加密的128 bit數據,即16 B。然后將這16 B分為 4組,每組32 bit,即 4 B。在循環之前首先對這四組數據分別用k0、k1、k2、k3進行異或操作,稱之為input whitening;然后對異或后的數據分組進行計算,計算后將 1~3、2~4組的數據對換,如此循環 15次,再1~3、2~4 對換一次。 對這 4 組數據分別用 k4、k5、k6、k7異或操作,稱之為 output whitening;最后將這 4組數據組合成16 B的數據,也就是最后的密文C(cipher text),長度與加密前的同樣是128 bit。具體來說,加密前的plain text是128 bit,也就是 16 B。假設這 16 B分別是p0,…,p15,將 p0,…,p15 分為 4 組,即 P0,…,P3,四個字先進行下面的數學運算:

在輸入階段,這些字與4個密鑰擴展進行異或運算:

在16次循環的每一次中,4組數據的前兩組與當前循環次數通過F進行計算,計算出2組數據。第3組數據與計算出的第1組數據“異或”,然后向右循環移動一位。第4組數據向左循環移動一位,然后異或計算出的第2組數據。然后將1~3、2~4組數據對換,作為下一輪計算的數據。程序表示如下:

這里 r=0,…,15,ROR和 ROL是一種循環移位函數,根據的第二個參數來決定是左移還是右移第一個參數。

輸出階段不再在最后一輪進行交換。而只是將結果與4個鑰字進行異或。

C(i)=R(16,(i+2)mod4)⊕Ki+4,其中 i,j=0,…,3

在加密過程中,Twofish使用了兩個函數即F函數和G函數。G函數是Twofish的核心,輸入一個字并讓該字的每一個字節通過一個不同的依賴于密鑰的S盒,然后輸出4個字節,用矩陣表示為:

其中:X0、X1、X2、X3 是輸入字節,Y0、Y1、Y2、Y3 是 輸出字節。

F函數是一個基于64 bit的密鑰獨立的交換過程,它帶3個參數、2個輸入字R0和R1,以及輪數r(用來選擇合適的字密鑰)。R0通過G函數傳遞,它產生T0;R1被左移位8 bit,然后通過 G函數產生T1。T0和 T1被結合并加入兩個密鑰擴展字。

由上面的過程描述可以看出,Twofish是一個用32 bit的偽哈德馬轉換PHT混合函數的輸出。偽哈德馬轉換PHT(Pseudo Hadamard Transforms)是一種簡單快速的混合操作,例如給出 2個輸入值a和b,則32 bit的PHT操作可以被定義為[3]:

3 利用Twofish算法優化客戶端

本項目對數據安全的設計是在不改變用戶硬件、不改變底層通信協議(如Http等)的基礎上通過應用層的解決方案來保證數據不在路途被篡改、截取或假冒。

根據上述原則,得出如圖2所示的系統安全性研究的總模型和工作流程圖。

說明:

①表示客戶將輸入的數據信息(用戶登錄、用戶查詢、注冊、預約等)發送給服務器端,同時將輸入的信息利用Twofish算法進行加密。

②對輸入的登錄信息進行加密后再傳給服務器。

③表示服務器通過JDBC訪問后臺數據庫,利用SQL語句對數據庫進行查詢、修改等操作。

④如果沒有查到數據或輸入信息有誤則返回給服務器,同時將沒查到結果或錯誤信息返回給客戶端。

⑤表示如果在數據庫中查詢到與SQL語句條件相匹配的數據信息,將此信息連同用戶登錄信息一起進行Twofish加密。

⑥表示將加密后的所有信息返回至服務器。

⑦表示服務器處理完之后再逐級返回,直到用戶得到相應的查詢信息成功或登錄失敗信息。

4 優化后的系統客戶端的代碼設計

系統設計均采用Java語言實現各種安全功能,其中使用的算法提供者采用了Bouncy Castle JCE,因為在眾多的提供者中,它是最安全的,并可免費獲得。首先,在原來系統的基礎上增加一個類hosTwofish,接著就要考慮如何將客戶端的數據進行加密傳輸和將查詢到的數據查詢后再解密顯示于客戶端。其實Twofish加解算法已經比較完善了,現在主要任務是如何把此算法運用于該系統數據加/解密中。一個最簡單的方法就是在原來的數據操作的過程前后分別調用該類的加密方法blockEncrypt(byte[]input,int inOffset,object sessionKey),其中input表示明文,inOffset表示數據開始的位置,sessionKey表示用于加密的會話密鑰;解密方法blockDecrypt(byte[]input,int inOffset,object sessionKey),其中input表示密文,inOffset表示數據開始的位置,sessionKey表示用于解密的會話密鑰。然后創建一個類HosTwofish對象hosTwofish,再通過調用解密方法blockEncrypt()對輸入的信息sessfonKey進行加密。同理,解密同樣先創建對象hosTwofish,再通過調用解密方法blockDecrypt()對查詢到的數據信息sessionKey進行解密,然后通過XML字符解析返回至客戶端。

5 測試應用效果

為了說明Twofish算法應用到醫院遠程信息系統中保證數據傳輸安全的有效性和優越性,本文對系統的數據安全性進行了測試,從兩個方面說明了Twofish算法應用到醫院遠程信息系統優點。

(1)對訪問的速度影響小

加密算法選擇的不合適就會影響系統的訪問時間。采用Twofish算法進行加密處理對系統的響應時間影響不大,而用普通的加密技術,則會使系統的響應時間明顯增加。

(2)數據的安全性得到很好的保證

通過大量的系統測試發現,系統有很好的安全性,沒有出現過數據丟失和數據被修改的現象。

將Twofish算法應用到醫院遠程信息系統用以保證數據的安全性是系統的一個顯著創新。項目從保證數據遠程傳輸的安全性出發,綜合考慮手持設備內存局限性及訪問的數據量,優化客戶端設計,使構建的系統具有較強的應用性和實用性。

[1]李占江.Twofish算法的優化及其在移動支付系統中的實現[J].微計算機信息,2007,23(12):6-8.

[2]沈崇德.無線移動技術在現代醫院管理中的應用[J].中國數字醫學,2009,4(4):14-16.

[3]劉知貴,楊立春,蒲潔.基于 Twofish算法的標書加解密研究[J].計算機應用,2004,24(6).

[4]張和君,張躍.遠程心電監護軟件系統的設計與實現[J].計算機工程與應用,2006,42(15):219-224.

[5]PU ZHANG,YUICHI KOGURC,HIROKI MATSUOKA,et al.A remotepatientmonitoring system using aJavaenabled 3G Mob. Proceedings of the 29th Annual International Conference of the IEEE EMBS clte internationale,Lyon,France,2007,8.

The applications of Twofish using in the remote information system

Li Jianwen,Kong Fengjuan

(College of Electric& Information Engineering,Shaanxi University of Science& Technology,Xi’an 710021,China)

In order to solve the hospital information system data remote client security problems,using Twofish encryption algorithm for client data encryption algorithm is introduced.The mobile phone memory effectively overcome the limitation of encryption technology,so as to affect the security of the system is optimized.Based on Twofish algorithm encryption process on the basis of this,the client is designed based on Java code,and through the safety test.

remote information system using in hospital;data security;Twofish;encryption technology;Java

TP311.1

A

1674-7720(2011)03-0012-03

2010-09-01)

李建文,男,1959年生,教授,主要研究方向:嵌入式系統及應用。

孔鳳娟,女,1980年生,碩士研究生,主要研究方向:嵌入式系統及應用等。

猜你喜歡
加密算法密鑰客戶端
幻中邂逅之金色密鑰
密碼系統中密鑰的狀態與保護*
如何看待傳統媒體新聞客戶端的“斷舍離”?
TPM 2.0密鑰遷移協議研究
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
一種對稱密鑰的密鑰管理方法及系統
混沌參數調制下RSA數據加密算法研究
HES:一種更小公鑰的同態加密算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合