醫(yī)院病案信息加密模塊的研究

隨著網(wǎng)絡(luò)在醫(yī)院的快速普及.醫(yī)院網(wǎng)絡(luò)安全隱患也按比例增長。由于資金不足或主觀認(rèn)識不足的原因,很多醫(yī)院只是采取簡單的加裝殺毒軟件和防火墻進(jìn)行外圍被動(dòng)防護(hù),對在內(nèi)部傳遞的信息進(jìn)行明文傳送。因此,只要突破醫(yī)院網(wǎng)絡(luò)的殺毒軟件和防火墻等外圍防線,醫(yī)院內(nèi)部的病案信息可以輕松獲取。針對這個(gè)重大的安全隱患,必須根據(jù)醫(yī)院特有的病案信息的結(jié)構(gòu)特點(diǎn),研究和設(shè)計(jì)出醫(yī)療信息加密模塊,實(shí)現(xiàn)醫(yī)院內(nèi)部傳遞信息的主動(dòng)防護(hù)。

一、醫(yī)院病案信息的特點(diǎn)

醫(yī)院病案的形成是一個(gè)復(fù)雜的過程。病案信息積累越多,信息內(nèi)容越豐富,信息流的作用越強(qiáng),反饋的強(qiáng)度越大,反映出來的病案質(zhì)量也就越高。

1、病案編號

病案編號的種類和方法很多,概括起來有7類11種,如分為序列一單元編號的多號制、分為集中或分開管理的一號或二號管理制、冠字或字頭編號、病人姓名、疾病名稱、病人住址編號等。

2、病案索引登記

病案索引是指專業(yè)索取病案內(nèi)容而設(shè)置的引得手段,一般通過分類編碼和登記等方法來實(shí)現(xiàn)。建立索引便于查找病案號和有關(guān)病案資料、總結(jié)歸納資料的內(nèi)容、簡捷摘錄有關(guān)資料,檢索歷史的引得等。常用的有:

病人姓名索引:可按門診病人姓名、住院病人姓名和死亡病人姓名索引編設(shè)。

日期索引:可按人院日期、出院日期和轉(zhuǎn)科日期索引。

疾病索引:可按疾病分類、手術(shù)分類、傳染病索引編設(shè)。它是建立在疾病分類編目的基礎(chǔ)上來實(shí)現(xiàn)的。

3、病案內(nèi)容和排序

(1)門診病案

病人在醫(yī)院門診期間醫(yī)療記錄的正式病案。排列順序:l)病案首頁;2)病案副頁(續(xù)頁);3)各科檢查報(bào)告;4)各科治療記錄單。

(2)住院病案

病人在醫(yī)院住院期間醫(yī)療記錄的正式病案。住院期間病案資料排列順序:1)體溫單;2)醫(yī)囑記錄單;3)人院記錄與人院病歷;4)診斷分析及診療計(jì)劃;5)病程記錄;6)轉(zhuǎn)科記錄;7)手術(shù)記錄(包括麻醉記錄,手術(shù)報(bào)告,手術(shù)后病程記錄);8)特殊病情治療記錄;9)會診記錄;IO)X線檢查報(bào)告單;11)病理檢查報(bào)告單(包括尸檢報(bào)告單);12)特殊檢查報(bào)告單;13)檢驗(yàn)記錄單;14)檢驗(yàn)報(bào)告單;15)中醫(yī)處方記錄單;16)護(hù)理記錄單(包括護(hù)理計(jì)劃和特護(hù)記錄);17)病案首頁(包括住院證);18)門診病案;19)上次住院病案;20)院外醫(yī)療資料及有關(guān)證明。

出院后的病案資料排列次序:1)住院目錄頁(在本院2次以上住院者用);2)病案首頁(包括住院證);3)死亡者死亡報(bào)告單;4)入院記錄和入院病歷;5)同住院期間病案資料之4)~16)排序;6)醫(yī)囑記錄;7)體溫單;8)其它;9)門診病案(限編號系統(tǒng)的集中管理制,分開管理制者分開排存)。

二、病案信息數(shù)據(jù)庫加密算法的設(shè)計(jì)思想

1、加密粒度的選擇

病案信息數(shù)據(jù)庫加密的粒度應(yīng)是每個(gè)記錄的字段數(shù)據(jù),若以文件或列為單位進(jìn)行加密,會造成密鑰的反復(fù)使用,從而降低加密系統(tǒng)的可靠性或者因加/解密時(shí)間過長而無法使用。

2、加密算法的選擇

數(shù)據(jù)庫加密最廣泛的主要算法有兩類,分別是對稱密鑰算法和公開密鑰算法。

(1)對稱密鑰算法

對稱密鑰算法的特點(diǎn)是解密密鑰可由加密密鑰推出(反之亦然)或者兩者相同。對稱密鑰算法一般又可分為兩類,序列算法和分組算法。序列算法一次只對明文中的單個(gè)位(或字節(jié))運(yùn)算,分組算法是對明文的一組進(jìn)行運(yùn)算。典型的分組算法有DES算法。

(2)公開密鑰算法

公開密鑰算法也稱非對稱算法,其特點(diǎn)是用作加密的密鑰不同于解密的密鑰,而且解密密鑰也不能根據(jù)加密密鑰計(jì)算出來。其中加密密鑰能公開,稱公開密鑰;一般用戶能用公開密鑰加密數(shù)據(jù)但只能用相應(yīng)的解密密鑰解密,該密鑰稱(用戶)私鑰。典型的公開密鑰算法有RSA算法。

(3)病案信息加密算法的使用預(yù)期

在設(shè)計(jì)病案信息數(shù)據(jù)庫使用的加密算法時(shí),應(yīng)該考慮到以下注意事項(xiàng):

1)數(shù)據(jù)庫加密以后,數(shù)據(jù)量和所占的存儲空不能有明顯增加;

2)算法在加密和解密過程中,速度要足夠快,數(shù)據(jù)操作響應(yīng)時(shí)間應(yīng)該讓用戶覺得可以忍受;

3)無論數(shù)據(jù)庫的類型是關(guān)系型的,還是層次型的,加密算法應(yīng)直接對數(shù)據(jù)庫中記錄或字段進(jìn)行加密。這樣才不會降低加密系統(tǒng)的可靠性或加,解密時(shí)間過長。

三、病案信息數(shù)據(jù)庫加密算法的設(shè)計(jì)

一般而言分組算法比非對稱算法速度快得多,在軟件實(shí)現(xiàn)時(shí),DES算法大約要比RSA算法快100倍。為了達(dá)到病案信息加密算法的使用預(yù)期,筆者采用的是DES算法對病案信息數(shù)據(jù)庫實(shí)現(xiàn)加密。

1、病案信息DES算法過程

標(biāo)準(zhǔn)的DES算法的入口參數(shù)有3個(gè):Key、Data、Mode。其中Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰;Data也為8個(gè)字節(jié)64位,是要被加密或被解密的病案信息數(shù)據(jù)庫中某個(gè)字段的數(shù)據(jù);Mode為DES的工作方式分為兩種:加密或解密。

參考標(biāo)準(zhǔn)的DES算法,病案信息DES算法的工作方式為:如Mode為加密,則用Key把數(shù)據(jù)Data進(jìn)行加密,生成Data的密碼形式(64位)作為DES的輸出結(jié)果;如Mode為解密,則用Key把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結(jié)果。病案信息DES算法過程如圖1所示。

醫(yī)院病案信息加密模塊的研究

使用16次乘積變換的目的是使明文增大其混亂性和擴(kuò)散性,使得輸出不殘存統(tǒng)計(jì)規(guī)律,使破譯者不能從反向推算出密鑰。

2、病案信息DES算法的實(shí)現(xiàn)步驟

(1)病案信息DES算法密鑰生成過程

在病案信息數(shù)據(jù)庫中,取64位作為初始密鑰(或稱主密鑰),每8位中有1位奇偶檢驗(yàn)位,故主密鑰實(shí)質(zhì)上只有56位!經(jīng)過排列選擇PC-1(PC是permutation choose的縮寫)。分成Co和Do兩部分,各28位。將Co、Do各循環(huán)左移1位得到C1、D1,再經(jīng)過排列選擇PC-2得到了密鑰Kl;對C2、D2;作循環(huán)左移位后得到C2\D2,經(jīng)過PC-2得到子密鑰K2;……直到產(chǎn)生子密鑰K16。病案信息DES
算法密鑰生成過程如圖2所示。

醫(yī)院病案信息加密模塊的研究

其中圖2中的主密鑰K產(chǎn)生密鑰K1-K16的全過程如圖3所示。

醫(yī)院病案信息加密模塊的研究

(2)密文的病案信息解密運(yùn)算

由于DES加密算法中的模2加法的特性和最終排列與初始排列的可逆性,解密運(yùn)算與加密運(yùn)算一樣,流程也一樣,如圖2所示,但只是解密時(shí)所取子密鑰的順序不同,加密時(shí)候取子密鑰的順序是:K1→K2→…→K16;解密時(shí)取子密鑰的順序則為:K16→K15→…→K1o。

四、結(jié)論

DES加密算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES加密算法進(jìn)行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。例如位長為56的密鑰的窮舉空間為256,這意味著如果一臺計(jì)算機(jī)的速度以每一秒種檢測一百萬個(gè)密鑰,則搜索完全部密鑰將需要上千年的時(shí)間。

通過使用DES算法實(shí)現(xiàn)對病案信息數(shù)據(jù)庫進(jìn)行直接加密,雖然加密的效果可以達(dá)到病案信息的每個(gè)數(shù)據(jù)庫中所有字段或記錄。但沒必要對所有數(shù)據(jù)庫中的字段進(jìn)行加密,建議對那些公用和公開的數(shù)據(jù)字段如:藥品劑量單位、產(chǎn)品用量單位、疾病分類、手術(shù)分類、數(shù)據(jù)庫的隨機(jī)數(shù)等字段就沒必要進(jìn)行加密,因?yàn)檫@些字段所包含的信息足一種公眾的、普通的和常見的表示方法,即使該信息的明文被非法截
取,對對方來說也沒有任何意義,所以這些字段沒有加密價(jià)值,這樣做也能更好地使數(shù)據(jù)量和數(shù)據(jù)的存儲空增加不明顯,同時(shí)數(shù)據(jù)加密和解密響應(yīng)時(shí)間讓用戶感到更加滿意。

當(dāng)然,隨著科學(xué)技術(shù)的發(fā)展,當(dāng)出現(xiàn)超高速計(jì)算機(jī)后,可考慮把DES密鑰的長度再增長一些,以此來達(dá)到更高的保密程度。

通過使用具有高安全性的DES算法實(shí)現(xiàn)對病案數(shù)據(jù)庫的字段或記錄進(jìn)行直接加密,實(shí)現(xiàn)醫(yī)院內(nèi)部傳遞信息的主動(dòng)防護(hù),使內(nèi)部的傳遞信息具有很高的保密性。即使內(nèi)部傳遞的信息在醫(yī)院網(wǎng)絡(luò)的殺毒軟件和防火墻等外圍防線被突破或被醫(yī)院原網(wǎng)絡(luò)管理員非法截取,他們得到的也只是一堆沒用的字符甚至亂碼。

小知識之非對稱算法

非對稱密鑰算法是指一個(gè)加密算法的加密密鑰和解密密鑰是不一樣的,或者說不能由其中一個(gè)密鑰推導(dǎo)出另一個(gè)密鑰。