基于AES的醫(yī)學(xué)圖像加密算法

針對(duì)醫(yī)學(xué)圖像數(shù)據(jù)量大,冗余度高、像素間相關(guān)性強(qiáng)等特點(diǎn),我們將AES加密算法與Logistic混沌映射相結(jié)合,設(shè)計(jì)出了一種更合理的加密算法——基于AES的醫(yī)學(xué)圖像加密算法,使得醫(yī)學(xué)圖像在存儲(chǔ)和傳輸過程中得到有效的保護(hù)。

一、AES加密算法

AES加密算法是美國商業(yè)部的一個(gè)單位,國家標(biāo)準(zhǔn)與技術(shù)局發(fā)明的一種新的加密過程,并且發(fā)現(xiàn)這種新的加密術(shù)可以很好地代替數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),在2000年,國家標(biāo)準(zhǔn)與技術(shù)局宣布Rijndael加密算法為AES的最佳候選算法。

Rijndael加密算法是一個(gè)分組迭代加密算法,分組長度可以是128啦,192位或256位,由分組構(gòu)成狀態(tài)矩陣,再進(jìn)行行和列的處理。比如128位分組就構(gòu)成4×4的矩陣,矩陣的單位是字節(jié),4×4×8=128,其加密過程如圖1所示。

基于AES的醫(yī)學(xué)圖像加密算法

從加密流程可以看出每一輪運(yùn)算由價(jià)變換組成,它們是:s盒變換,行置換,列混合和輪密鑰異或。用類C語言描述為:

Round (state, RoundKey)

{

ShbBytes Gtate);

Shif tRows Gtat e);

MixColLrms Gta t e);

AddRoundKey (State, RoundKey);

//s盒變換

//行置換

//列混合

//輪密鑰異或

Round運(yùn)算的次數(shù)由分組長度和密鑰長度決定,其中:

①s盒變換是非線性變換,s盒是一個(gè)16行×16列的替換表,將128位分組數(shù)據(jù)構(gòu)成的矩陣中每個(gè)字節(jié)替換成一個(gè)由S-盒決定的新字節(jié)。目的是為了得到一個(gè)非線性的代換密碼,起到混亂的作用。

②行置換是一個(gè)字節(jié)換位,它將狀態(tài)矩陣中的行按照不同的偏移量進(jìn)行循環(huán)移位。

⑨列混合是將狀態(tài)矩陣的每個(gè)列行作為GF(2*)上的3次多項(xiàng)式的系數(shù)(這里系數(shù)為十六進(jìn)制),然后將這些多項(xiàng)式與l嗣定多項(xiàng)式c (x)關(guān)于模x4+1乘。目的是明文消息分組在不同位置上的字節(jié)的混亂導(dǎo)數(shù)消息在整個(gè)消息空間中廣泛的分布,以確保多輪之上的高度擴(kuò)散。

④最后進(jìn)行密鑰異或運(yùn)好使得消息分布更具有秘密觸機(jī)性。

二、基于AES的圖像加密算法

圖像數(shù)據(jù)是二維的像素矩陣,長度因圖像的大小而不同,單位是顏色值,比如大小足M×N的24位彩色圖像,矩陣就是M×N,矩陣元素的值有3個(gè)字節(jié)(即24位)構(gòu)成。S-盒變換,行置換,列混合,把這三個(gè)操作應(yīng)用到像素矩陣上有較好的置亂作用。

設(shè)一副數(shù)字圖像的大小為M×N.可用矩陣A= (aij)M×N表示,圖緣的大小為M×N個(gè)像素。其中0≤i≤M—1,0≤j≤N-1。aij表示第i行第j列像素處的顏色值。

第一步:利用Logistic映射生成的隨機(jī)數(shù)kt(t=0,1,…,127)作為種子巒鑰,按字節(jié)與待加密圖像的像素aij (i=0,1...M-1,j=0,1...,N-1)異或得到新的像素bi(i=0,1...M-1,j=0,1...,N-1)。

第二步:利用查表進(jìn)行S-盒變換。一個(gè)字節(jié)的前4位作為s-盒列坐標(biāo),后4位作為s-盒行坐標(biāo),用s-盒行列坐標(biāo)處的值替換bij新的像素使cij(i=0,1...M-1,j=0,1...,N-1)。

第三步:行置換是一個(gè)字節(jié)換位操作,用Logistic映射生成一個(gè)泄沌序列PPt(t=o,1.….M-1,M,….M+N+1)作為圖像像素進(jìn)行橫向移動(dòng)的位數(shù)——將圖像的每行像素cij對(duì)換到該行的另一位cit。

基于AES的醫(yī)學(xué)圖像加密算法

第四步:在列混合中,將圖像的每列像素cij根據(jù)第三步的對(duì)換方法轉(zhuǎn)換到該列的另一位置cij。通過行列置換得到到新的像素值dij。

第五步:圖像的像素值dij與擴(kuò)展密鑰異或。在這個(gè)變換中,圖像像素dij,通過與擴(kuò)展密鑰進(jìn)行逐字節(jié)異或而得到一個(gè)新像素eij (i=0,1...M-1,j=0,1...,N-1)。擴(kuò)展密鑰通過運(yùn)用密鑰擴(kuò)展方案,由種子密鑰所生成。

第六步:同到笫二,進(jìn)行下一輪加密,總共進(jìn)行10輪加密。其中最后一輪稍有不同,少了列置換。加密流程如圖2所示。

解密過程是上述過程的反次序。

三、AES加密算法在醫(yī)學(xué)圖像文件加密中的運(yùn)用

DICOM文件是指按照DICOM標(biāo)準(zhǔn)而存儲(chǔ)的醫(yī)學(xué)圖像文件,一般由一個(gè)DICOM文件頭和一個(gè)DICOM數(shù)據(jù)結(jié)合組成。

DICOM集合是由DICOM數(shù)據(jù)元素按照一定的循序排列組成的,如圖3所示。

基于AES的醫(yī)學(xué)圖像加密算法

關(guān)鍵的數(shù)據(jù)元素如表1所示:

基于AES的醫(yī)學(xué)圖像加密算法

根據(jù)查詢DICOM文件中的標(biāo)識(shí)符,可以得到圖像的幀數(shù),每一幀圖像的行數(shù),列數(shù)和像素值,再根據(jù)前面介紹的加密流程對(duì)其醫(yī)學(xué)圖像文件加密,結(jié)果如圖4所示:

基于AES的醫(yī)學(xué)圖像加密算法

小知識(shí)之DICOM

DICOM即數(shù)字影像和通信標(biāo)準(zhǔn)。在醫(yī)學(xué)影像信息學(xué)的發(fā)展和PACS的研究過程中,由于醫(yī)療設(shè)備生產(chǎn)廠商的不同,造成與各種設(shè)備有關(guān)的醫(yī)學(xué)圖像存儲(chǔ)格式、傳輸方式千差萬別,使得醫(yī)學(xué)影像及其相關(guān)信息在不同系統(tǒng)、不同應(yīng)用之間的交換受到嚴(yán)重阻礙。為此,美國放射學(xué)會(huì)(ACR)和全美電子廠商聯(lián)合會(huì)(NEMA)認(rèn)識(shí)到急需建立一種標(biāo)準(zhǔn),以規(guī)范醫(yī)學(xué)影像及其相關(guān)信息的交換, DICOM(Digitalimaging and Communications in Medicine)標(biāo)準(zhǔn)就是在這樣的背景下產(chǎn)生的。