加密電子健康檔案的方法
針對電子健康檔案攜帶大量信息并且需要安全快速傳輸交換的特點(diǎn),我們提出了一種電子健康檔案的加密方法,那就是使用AES加密算法和DNA算法對其進(jìn)行加密保護(hù),該方法能使電子健康檔案在各個(gè)衛(wèi)生機(jī)構(gòu)進(jìn)行安全、高效地傳輸。那么電子健康檔案給如何加密,接下來我們就先來看一下他的加密原理。
一、電子健康檔案加密原理
1、AES加密算法
(1)AES加密算法介紹
又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。它是一種分組對稱加密,加密支持128位分組加密并可以選擇使用128、192和256位密鑰。
AES算法包括以下模塊:子密鑰生成模塊、明文加密模塊以及密文解密模塊。其中子密鑰生成模塊主要用于產(chǎn)生加密和解密的密鑰;明文加密模塊實(shí)現(xiàn)對明文的加密;密文解密模塊實(shí)現(xiàn)密文的解密。
其中加密模塊是算法的核心部分,下面以128位密鑰為例,加密模塊的流程如下:
(1)從被加密的數(shù)據(jù)中取出—個(gè)128位的明文分組數(shù)據(jù)X。
(2)將X與原始密鑰進(jìn)行AddRoundKey運(yùn)算,獲得y。
(3)將y連續(xù)作SubByte、ShiftRow、MixColumn和AddRoundKey這4個(gè)子變換,稱之為一個(gè)輪變換。
(4)循環(huán)調(diào)用步驟(3),調(diào)用次數(shù)為9。
(5)將結(jié)果再作SubByte、SniftRow和AddRoundKey子變換。
(6)獲得加密分組數(shù)據(jù)。
(7)重復(fù)步驟(1)一(6),獲取整個(gè)加密數(shù)據(jù)。
解密模塊中的子變換相應(yīng)地由InvShiftRow,InvSub-Byte,AddRoundKey,InvMixC:olumn這4個(gè)變換構(gòu)成,并完成密文的解密工作。
(2)AES加密算法的軟件優(yōu)化
對于原始的AES算法一次輪變換,它的4個(gè)子變換,即SubByte,ShiftRow, MixColumn,和AddRoundKey都是獨(dú)立分開來執(zhí)行的。研究了AES加密算法之后發(fā)現(xiàn),其4個(gè)子變換在多次的循環(huán)體中都是按固定順序一起執(zhí)行的,可以將上述4個(gè)子變換操作合并起來采用查表的方法的實(shí)現(xiàn)。雖然要為查詢表提供一定的內(nèi)存空間,但算法的執(zhí)行效率大大的提高。下面對查表的實(shí)現(xiàn)過程作簡單的說明。
假設(shè)A代表的是一次論變換的輸入狀態(tài),E代表的是論變換的輸出狀態(tài).K代表的是相應(yīng)密鑰的數(shù)組形式卸同時(shí)A、E、K的第j列分別用aHej、kj表示,對應(yīng)的第i行第j列的元素分別用ai,j、ei,j、ki,j表示。那么,A經(jīng)過4個(gè)子變換后,所得的結(jié)果如式(1)所示。

式中;S[a0,j]、S [a1,j-1]、S[a2,j-2]和S[a3,j-3]相對應(yīng)ao,j、a1,j-1、a2,j-2和a3,j-3的SubByte子變換后的值。
由上式可以定義出4個(gè)表,分別表示為To、T1、T2、T3,它們的輸入均為8位,輸出均為32位,如式(2)所示:


將式(2)和式1進(jìn)行合并簡化,得到式(3),其中式(3)中的j=0…N=1,N是要加密的輪數(shù):

這樣,每一列只需4次查表操作和4次異或操作即可完成,即一個(gè)明文分組塊在一次輪變換中只需要16次查表和異或運(yùn)算,大大提高了程序運(yùn)行效率。在解密模塊中,運(yùn)用類似方法進(jìn)行優(yōu)化。
2、DNA加密算法
該加密算法是核心基于生物DNA中心法則而設(shè)計(jì)的對稱加密算法。該算法的明文分組加密位數(shù)為128位,密鑰長度為128位或256位,加密的輪數(shù)為正整數(shù)N(一般大于10輪)。同樣,DNA加密算法由子密鑰生產(chǎn)模塊、明文加密模塊以及密文解密模塊3大部分組成。加密和解密密鑰的生成由子密鑰生產(chǎn)模塊完成;明文加密模塊則通過循環(huán)調(diào)用Transposition,DNAmodule和Permutation這3個(gè)子變換來實(shí)現(xiàn);密文的解密則是由密文解密模塊完成的。
加密流程如下:
(1)將明文劃分成多段的128位的分組塊。
(2)將一個(gè)分組轉(zhuǎn)換成4*4的字節(jié)矩陣M。
(3)對M進(jìn)行一次Permutation操作。
(4)使用AES算法產(chǎn)生初始輪子密鑰,并與M進(jìn)行XOR操作。
(5)根據(jù)加密輪數(shù)N,循環(huán)調(diào)用Transposition,DNAmodule和Permutation這3個(gè)子變換。
(6)跳出循環(huán),對矩陣M和最后一輪輪子密鑰進(jìn)行XOR操作。
(7)對所有的分組重復(fù)步驟(2)-(6)。
相應(yīng)的流程圖如圖1所示。

其中,加密模塊中Transposition的原理和AES中ShiftRaw的一樣。不同的主要是Permutation和DNAmodule兩個(gè)子變換,下面簡要說明一下。

假設(shè)將128位分組明文變換成4*4的字節(jié)矩陣(正好是128位),該矩陣用M表示,則子變換Permutation(imod 3,m)(第i輪循環(huán)加密)表示矩陣M各行將按照Per-mutation(imod 3)的轉(zhuǎn)置方式進(jìn)行替換(參看表1),替換前要有一個(gè)XOR的操作,之后同理,矩陣M各列再按照Pennutation (i+l mod 3)方式進(jìn)行替換,替換前也要有一個(gè)XOR的操作。這樣保證了較好的擴(kuò)散性。以Permutation0為例,M的行轉(zhuǎn)置見表2。

而子變換DNAmodule則是模仿生物學(xué)的中心法則,將M矩陣每行(4bytes= 32bit)看成一段DNA片段(即用一種核苷酸替代2個(gè)連續(xù)的比特位,如A代表00,C代表01,G代表10,T代表11,則一段DNA含有16個(gè)核苷酸),再對每一段DNA片段進(jìn)行轉(zhuǎn)錄,并同時(shí)將相應(yīng)的輪子密鑰進(jìn)行相同的轉(zhuǎn)錄操作,并將其與DNA片段進(jìn)行BIO一XOR操作,最后執(zhí)行翻譯操作。
轉(zhuǎn)錄:就是將DNA轉(zhuǎn)換成RNA的過程,進(jìn)行一對一的字母替換(A到T,C到G,G到C,T到A)。
BIO一XOR操作:實(shí)現(xiàn)DNA片段與輪子密鑰進(jìn)行BIO—XOR操作,該操作方式如表3所示。

翻譯:與中心法則的翻譯類似,矩陣M含有16個(gè)字節(jié),每個(gè)字節(jié)由4個(gè)核苷酸組成,在給定16*16的氨基酸表的情況下(表4顯示的是氨基酸表格的一部分)一每個(gè)字節(jié)將前兩位的核苷酸作為氨基酸表的列索引,將后兩位的核苷酸作為氨基酸表的行索引,最后實(shí)現(xiàn)字節(jié)的替換。

二、電子健康檔案加密的實(shí)現(xiàn)與分析
1、加密對象
帶有醫(yī)學(xué)影像的電子健康檔案不僅能為醫(yī)生準(zhǔn)確診斷病人情況提供有力的依據(jù),而且更能夠避免病人日后就診時(shí)重復(fù)進(jìn)行相關(guān)的檢查。在國際上,DICOM(digital imaging and communications lnmedicine)是醫(yī)學(xué)影像格式的統(tǒng)一標(biāo)準(zhǔn),是數(shù)字醫(yī)學(xué)影像在網(wǎng)絡(luò)的傳輸、儲(chǔ)存與顯示的標(biāo)準(zhǔn)化的規(guī)范。在DICOM文件中,數(shù)據(jù)元素是基本單元并通過相應(yīng)的標(biāo)簽唯一確定,同時(shí)數(shù)據(jù)元素構(gòu)成了所有的數(shù)據(jù)集。
電子健康檔案是基于XML格式的,我們可以將DI-COM格式的醫(yī)學(xué)影像轉(zhuǎn)換成XML格式并添加到文檔中,即依據(jù)DICOM中的IOD(infon11ation object definition)標(biāo)準(zhǔn)對影像的頭部分進(jìn)行組合,同時(shí),以base64編碼圖像部分,最后將頭信息和圖像信息一起添加到XML格式文檔中,如下是一個(gè)帶有醫(yī)學(xué)影像的電子健康檔案的XML片段:
< ImageDocument>
< Patient>
< Name>
< lastname>zhang</lastname>
< Firstname>cheng</Firstname>
< /Name>
< Sex~nale</Sex>
< Age>32< /Age>
</Patient>
<Device>CT</Device>
< Image>4AAQSkZJR..,t.< /Image> < /ImageDoc-ument>
其中從元素到元素是頭信息部分,而元素中包含的即為base64編碼后的圖像數(shù)據(jù),這是要加密的對象。
2、電子檔案加密方式及平臺(tái)
為體現(xiàn)加密效率,本文將對2M的元素進(jìn)行加密,同時(shí)對該元素部分進(jìn)行反復(fù)多次加密實(shí)驗(yàn)。AES和DNA加密使用的均是10輪、128位加密方式,以C++為編程語言,在CPU為2.OGHz, RAM為1G,window操作系統(tǒng)的臺(tái)式電腦上實(shí)現(xiàn)。
3、安全性分析
DES 加密算法是第一個(gè)世界公認(rèn)的實(shí)用分組加密算法標(biāo)準(zhǔn)。隨著對稱密碼的發(fā)展,DES數(shù)據(jù)加密標(biāo)準(zhǔn)算法由于密鑰長度較小(56位),已經(jīng)不適應(yīng)當(dāng)今分布式開放網(wǎng)絡(luò)對數(shù)據(jù)加密安全性的要求。隨后出現(xiàn)了密鑰更長的3DES替代DES以提高安全性能。密鑰長度到達(dá)168位的3DES,可克服窮舉攻擊問題,同時(shí)其底層加密算法對密碼分析攻擊有很強(qiáng)的免疫力。但由于用軟件實(shí)現(xiàn)的3DES算法執(zhí)行速度慢,使得3DES不能成為未來使用的加密算法標(biāo)準(zhǔn)。
AES加密算法的密鑰建立時(shí)間極短,同時(shí)密鑰靈活性較好。其密鑰長度可設(shè)定為32位的任意倍數(shù),最小值為128位,最大值為256位,用窮舉法是不可能破解的。不管是從安全性、效率,還是密鑰的靈活性等方面都優(yōu)于DES加密算法,在今后將逐步代替DES而被廣泛應(yīng)用。
DNA加密不僅是運(yùn)用生物學(xué)的中心法則作為加密的主要機(jī)制,而且按照美國國家安全局專家建議,其算法結(jié)構(gòu)設(shè)計(jì)成SPN(substit:ution and permutationnetwork)結(jié)構(gòu),它是基予香農(nóng)的混亂和擴(kuò)散原則,并且各自通過使用替代和線性變換實(shí)現(xiàn)。密鑰長度最小值為128位,最大值為256位。用窮舉法是不可能破解的。但對其能否抵抗差分密碼分析以及線性密碼分析并未作分析。
4、加密速率分析
由表4得出原始的AES加解密較慢,速率在1MB/S以下,且解密比加密慢。DNA加解密最高速率接近6MB/S,且隨著文件大小的增加,加解密速率也有所提高,但解密速度相對加密速度較慢。改進(jìn)的AE:S加解密速率超過8MB/S,并且在加密速度和解密速度方面,兩者的差距不大。
為了更直觀地了解上述三者的加解密效率,將實(shí)驗(yàn)數(shù)據(jù)導(dǎo)人到MATLAB中,產(chǎn)生的效率曲線圖如下,其中,圖2和圖3中的AESO曲線為原始AES算法,AES曲線為改進(jìn)的AES算法,DNA曲線為DNA算法。

圖2中,改進(jìn)的AES算法和DNA算法加密效率明顯比原始的AES算法要高;改進(jìn)的AES算法又比DNA算法有更快的加密速率。
圖3中,解密的情況與加密類似。
綜合圖2和圖3可知,改進(jìn)的AES在加解密的效率上是最快的。此外,DNA和改進(jìn)的AES的加解密速率保持穩(wěn)定不變。
用這種方法給電子監(jiān)控檔案加密,非常適合醫(yī)院來使用。
"








