改進的AES加密算法在DICOM醫(yī)學圖像中的應(yīng)用
DICOM文件的安全性不容忽視,然而目前在其加密方面的研究還比較少,現(xiàn)在醫(yī)學圖像中常用的文件加密方法只是將經(jīng)典的加密算法直接運用在醫(yī)學圖像中,如DES,AES加密算法等。傳統(tǒng)的加密算法將輸入明文看作二進制流,沒有考慮圖像本身的特性,使得其對圖像并不十分適用?;贏ES加密算法的設(shè)計原理,并結(jié)合斜帳篷映射提出了一種改進的算法,使之能夠適應(yīng)醫(yī)學圖像的數(shù)據(jù)特點。此外,針對DICOM格式的特點增加了對病人基本信息的保護,并與圖像文件加密相結(jié)合。
一、AES加密算法分析與改進方案
1、AES加密算法簡介
AES加密算法是分組迭代加密算法,能有效抵抗強力攻擊、差分攻擊和線性密碼分析,具有分組長度和密鑰長度設(shè)計靈活、高安全性和高運行效率等優(yōu)點。AES加密的每一輪運算由4個變換組成,它們是:輪密鑰異或、S盒變換、行置換和列混合。為了后文描述方便,將這4個步驟稱為AddRoundKey、SubBytes、ShiftRows、MixColumns,加密流程如圖1所示。

2、改進方案
AES加密算法采用分組迭代,分塊大小為4×4矩陣,每個元素為8比特。本文加密算法以像素(8比特)為單位,對整幅圖像進行處理,為了使算法適用于圖像文件加密,達到較好的安全性,并提高加密效率,我們基于AES加密算法框架進行了如下改進:
(1)改進密鑰序列生成方法
混沌動力學系統(tǒng)具有偽隨機性和對初始條件與系統(tǒng)參數(shù)的極端敏感性,因此,它為圖像信息加密提供了很好的途徑。在改進加密算法中采用如下所示的斜帳篷映射(Skew tent map)生成密鑰序列。
![]()
當a∈[O,1]時系統(tǒng)呈混沌狀態(tài)。該映射迭代軌道序列的相關(guān)性以指數(shù)遞減,混沌變量的分布均勻,具有很好的偽隨機特性。
基于斜帳篷映射生成偽隨機序列的方法如下:一幅大小為MxN的圖像,需要加密R輪。首先迭代斜帳篷映射得到R個長為M×N的序列Xr={ Xr,o,Xr,1,…,Xr,mn-1},1≤r≤R。對序列X按照式(2)擴展為0一255的整數(shù)序列Kr={kr,0,kr,1,…,kr,mn-1}。
![]()
其中[]運算表示向下取整。
(2)改進加密/解密操作
AES加密算法的加密方式為像素矩陣D與密鑰序列K直接進行異或操作,為了增加對明文的敏感性,本加密算法做出了改進,第r輪的加密過程如下所示:

其中i∈[O,m- 1],j∈[0,N-1],D[il[jJ為明文像素,C[Z][j]為得到的密文像素。
明文圖像矩陣按照從左到右,從上到下加密;密文圖像矩陣按照從右到左,從下到上逐像素進行解密。經(jīng)過以上的異或操作之后,使得密鑰與明文相關(guān),兩幅不同圖像即使采用相同的初始條件,生成的密鑰序列也不同。
(3)改進列混合操作
AES加密算法中,列混合操作(MixColumns)采用矩陣運算,每個像素平均需要經(jīng)過移位和異或運算。為了降低運算量并達到較好的混合效果,在改進的加密算法中,我們改變了MixColumns的矩陣運算,采用簡單的加減運算增強像素間的聯(lián)系,具體做法如下:對于每一行,第一個像素保持不變,從第二個像素開始用相鄰像素的更新當前像素(如式(4)所示);對于每一列,第一個像素保持不變,從第二個像素開始用相鄰像素的值更新當前像素(如式(5)所示)。

以5×4的像素矩陣為例.運算過程如圖2所示。

從圖2中可以看出,當D(O](O]發(fā)生變化時,將影響所有像素;當D[M-I][N-l]發(fā)生改變時,在同一輪中將不影響其他像素,因此在行列變換操作中,應(yīng)將每一行循環(huán)向左移動,每一列循環(huán)向上移動,經(jīng)多輪加密后將有明顯的擴散效果。
改進的行列混合操作中采用簡單的加減運算,每個像素平均僅需要2個加法運算,該操作不僅減少了運算量還增強了像素之間的聯(lián)系,經(jīng)多輪加密后能達到較好的混合效果。
二、改進的AES加密算法算法在DICOM醫(yī)學圖像中的應(yīng)用
DICOM文件一般由一個DICOM文件頭和DICOM數(shù)據(jù)集合組成.DICOM數(shù)據(jù)集合足由DICOM數(shù)據(jù)元素按照一定的順序排列組成的,它不僅包括圖像數(shù)據(jù),還包括許多和病人相關(guān)的信息,如病人姓名、年齡、病歷等。數(shù)據(jù)元素的組成結(jié)構(gòu)如圖3所示,其中標志符由組號與元素號組成,表示為(組號,元素號),是數(shù)據(jù)元素的唯一標識。

因此,DICOM文件需要保密的內(nèi)容包括兩個部分:病人的基本信息和圖像信息。
1、病人信息和圖像數(shù)據(jù)的交換方案
我們將病人基本信息的保護與圖像數(shù)據(jù)的加密結(jié)合起來:設(shè)計一個一維到二維的映射方法,將病人信息以8比特為單位與圖像像素明文交換。假設(shè)存儲病人信息的變量為一維數(shù)組P[L],其中L為病人信息的字節(jié)散,其處理過程為:
Step1迭代斜帳篷映射得到序列X'={x’0,x’1,…,x’2xL-1}將其分成長為L的兩個子序列X'1={x'o,x’1,...,x’L-1},x'2={x’L+1,x’L+2,....x'2L-I}。
Step2獲取隨機整數(shù)序列作為橫坐標.將x1’用類似式(2)的方法擴展到0一M范圍內(nèi),得到橫坐標序列U={uo,u1.…,ul- 1}。
Step3獲取隨機整數(shù)序列作為橫坐標.將X2’用擴展到0—N范圍內(nèi),得到縱坐標序列v={v0,v1,…,vL-1}。
Step4組合兩個序列得到坐標序列為(U,V)={(uo,v0),(u1,v1).....(UL-I,VL-1)}。
令L= 1000,M; 1000,N=1000,xo=0.80,a'= 0.6.得到的坐標序列分布情況如圖4,分布比較均勻,映射前,病人信息顯示的是ASCII碼;映射后顯示的是亂碼,以病人姓名為例:假設(shè)映射前病人姓名為:" Anoyrniaed",映射后將數(shù)組內(nèi)容重新填充回DICOM原標簽中,顯示的內(nèi)容為:“q筆OK w■篁一”。
這種做法使得病人信息失去可讀性,其安全性依賴于圖像的安全性,只要采用安全的圖像加密算法便能保證病人信息的安全。

2、DICOM文件加密方案
本節(jié)列出了將保護病人信息的方案和改進的AES加密算法應(yīng)用于DICOM文件加密的具體步驟,其基本的加密結(jié)構(gòu)如圖5。

加密算法步驟如下:
Step1初始化r=0。隱藏病人基本信息,將DICOM文件中的病人信息數(shù)據(jù)取出放在一維效組P[L]中;將圖像像素數(shù)據(jù)取出放在二維矩陣D[M][N]中;按照上節(jié)中的映射算法依次將P的數(shù)據(jù)和D對應(yīng)的數(shù)據(jù)交換,得到交換后的病人信息P',交換后的圖像像素矩陣D1。
Step2密鑰異或操作(HxeIXOR),將圖像像素矩陣D與密鑰序列群按照式(3)異或,得到C1。
Step3 S盒置換(SubBytes)。采用S盒,將C1的每個元素的高4位作為S盒的行坐標,低4位作為S盒的列坐標,查表進行S盒替換,得到C2。
Step4行列置換(ShiRRowsandColumns)。 C2中第i行元素向左循環(huán)移動j個單位,第j列元素向上循環(huán)移動j個單位,得到C3。
Step5擴散增強(MixRowsandColumns).對c3每行所有像素按照式(”進行處理操作,對C每列所有像素按式(5)操作,得到C4。
Step6 r= r+1,D= C4.回到Step2進行下一輪加密,總共進行尺輪.最后得到加密后的像素矩陣C。
其解密過程為加密算法的逆過程:
首先還原圖像像素,即對密文像素矩陣依次進行逆MixColumns、Shif/Rows、SubByteo、AddRoundKey操作;然后還原病人信息,重建DICOM文件。
三、實驗結(jié)果與分析
本加密算法采用Visual C++ 2008平臺進行數(shù)據(jù)仿真實驗,同時采用DCMTK開發(fā)包實現(xiàn)DICOM文件讀寫。機器配置:Iruel CoreDu0 1.83GHz CPU, 2GB RAM.Win-dows7 Ultimate中文版操作系統(tǒng).其中明文圖像為440×440的標準DJCOM圖像,密鑰設(shè)置為:xo =0.8,a=0.6,x0’= 0.8,a’=0.6,R=10。
1、加密實驗結(jié)果
加解密圖像如圖6所示。圖6(a)與圖6(c)分別為原始明文圖像和明文直方圖;圖6(b)和圖6(d)是密文圖像和對應(yīng)的直方圖。從圖中可以看出密文直方圖分幫均勻,能夠有效地抵抗統(tǒng)計分析。

2、實驗分析
(1)密鑰空間
本加密算法的密鑰由兩組斜帳篷映射初始值與參數(shù)組成:一組參數(shù)控制密鑰流的生成(x0,ao)。另一組控鑰病人信息保護的映射(x0',a0')。在計算機實現(xiàn)時,分別由64位數(shù)表示,也就是說算法的密鑰為256位,明文空間為256,能夠抵抗暴力破解。
(2)相關(guān)性分析
分別從圖像的水平、豎直和對角相鄰方向隨機地選取1024對像素,加密10輪,對比它們加密前后的相關(guān)系數(shù):

實驗結(jié)果如下表2所示,表中數(shù)據(jù)顯示明文圖像中相鄰像素之間的相關(guān)性比較高,但是在密文圖像中相鄰像素的相關(guān)性均很低。

(3)敏感性分析
密鑰敏感性分析
將原始密鑰進行微小改動,將薯o由0.8改為0.80000001。其余密鑰保持不變,對應(yīng)的解密結(jié)果如圖7所示。解密圖像呈現(xiàn)隨機分布,其直方圖很均勻.即使加密密鑰和解密密鑰有微小的相差也能正確解密,說明該算法能夠抵抗各種基于密鑰敏感性的攻擊。

明文敏感性性分析
為了測試加密算法對明文的敏感性,應(yīng)用2幅幾乎完全相同的明文圖像(440×440的DICOM圖像Cheat. dcm,其中只有(0,0)位置的像素值不同),對它們進行加密,完成4輪加密后,得到對應(yīng)的密文圖像并比較他們的像素值,從圖8中可以看出,當僅有一位像索發(fā)生變化時,加密后的圖像幾乎完全不同(白色的像素點表示相同部分,黑色為不同)。通過計算可知,當兩幅圖(o,0)位置像素值不同時,對應(yīng)的密文圖像有99.6196的像素不同。通過以上分析,可看出改進算法具有良好的擴散效應(yīng),達到了安全性的要求。
小知識之DICOM
DICOM(Digital Imaging and Communications in Medicine)即醫(yī)學數(shù)字成像和通信,是醫(yī)學圖像和相關(guān)信息的國際標準(ISO 12052)。它定義了質(zhì)量能滿足臨床需要的可用于數(shù)據(jù)交換的醫(yī)學圖像格式。










