基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

隨著計算機、通信技術(shù)和區(qū)域醫(yī)療協(xié)同服務(wù)的不斷發(fā)展,信息的安全與保密顯得越來越重要。醫(yī)學(xué)圖像作為診斷依據(jù)的重要部分需要在公網(wǎng)上傳播,為了防止病人敏感信息的非法泄漏,研究醫(yī)學(xué)圖像文件加密有著重要的意義。

一、混沌的特點

混沌是指一種由非線性確定系統(tǒng)產(chǎn)生的類隨機行為,它具有以下特征:

1)隨機性:混沌系統(tǒng)產(chǎn)生的混沌序列表現(xiàn)出類隨機行為,具有長期不可預(yù)測性。

2)確定性:只要初始參數(shù)確定,產(chǎn)生的混沌序列即確定。

3)遍歷性:混沌系統(tǒng)將以一種不重復(fù)的方式遍歷相空間中的所有取值。

利用混沌系統(tǒng)的這些特點,可以設(shè)計出密鑰空間大、加密流隨機性高的加密算法,混沌加密近年在計算機領(lǐng)域成為了研究熱點,大量混沌圖像加密算法被提出來。

圖像文件加密與普通文件加密的不同之處在于,圖像相鄰像素之間通常存在著比較大的相關(guān)性,對圖像加密不僅要使圖像變得不可識別,還要盡可能地減小相鄰像素之間的相關(guān)性。目前國內(nèi)外提出的各種混沌圖像加密算法,有的通過Logistic函數(shù)生成混沌序列進行加密,有的通過DCT變換、Arnold變換進行加密,但總結(jié)起來,主要加密原理有以下兩種形式:

1)利用混沌系統(tǒng)產(chǎn)生的偽隨機序列與明文進行異或操作,直接改變明文的值,通過這種方式進行加密可使圖像明文轉(zhuǎn)變?yōu)橐幌盗袩o規(guī)則“噪聲”,能有效防止統(tǒng)計攻擊;

2)利用偽隨機序列對明文進行重新排序,通過這種方式加密能有效地對圖像進行置亂,使加密后的密文圖像具有一定的魯棒性,但由于置亂過程沒有改變像素本身的值,因此加密后圖像的顏色直方圖并沒有改變。

結(jié)合醫(yī)學(xué)圖像數(shù)據(jù)量大、同色像素連續(xù)性高的特點,本文采用異或的方式提出一種新的混沌圖像加密算法。

二、加密算法的創(chuàng)新

醫(yī)學(xué)圖像的特點是兩高一大(高分辨率、高精度、大數(shù)據(jù)量),這就要求加密算法具備較高的運行效率。對于混沌系統(tǒng),通常高維混沌系統(tǒng)產(chǎn)生的加密序列有較高的安全性,但運行速度較慢。低維混沌系統(tǒng)產(chǎn)生加密序列速度快,卻容易受到非線性預(yù)測、相重構(gòu)等方式的攻擊,綜合考慮算法運行效率與安全性,本文的算法將采用多個一維混沌系統(tǒng)混合的方式產(chǎn)生加密序列,并通過加密序列與圖像進行異或操作進行加密和解密。

醫(yī)學(xué)圖像通常有著大片連續(xù)的區(qū)域存在顏色相同的像素點,加密算法若簡單地采用加密序列與明文異或的方式生成密文,密碼攻擊者容易根據(jù)這片連續(xù)的區(qū)域分析對應(yīng)密鑰序列的情況。所以加密算法應(yīng)該以某種方式改變這種由于明文而導(dǎo)致密文單一變化的情況,本文算法通過在加密過程中加入雙重反饋解決這一問題。

三、加密算法的實現(xiàn)

考慮到加密算法的運行效率,本文選擇以下兩個混沌系統(tǒng)進行加密。

a、Logistic映射

基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

當X∈(0,1),u∈(3. 5699456,4),X≠1-(1/u)時,系統(tǒng)處于混沌狀態(tài)。

b、PLCM映射

基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

當X∈(0,1),p∈(0,0.5)時,系統(tǒng)處于混沌狀態(tài)。

以上兩個混沌系統(tǒng)皆為一維混沌系統(tǒng),從公式上看,不涉及sin與cos等復(fù)雜運算,所以能有較高的運行速度。

由于單個一維混沌系統(tǒng)產(chǎn)生的序列容易被非線性分析與相重構(gòu)攻擊,因此算法將選擇的混沌系統(tǒng)混合使用,交替產(chǎn)生序列。設(shè)所選混沌系統(tǒng)數(shù)為N,每個混沌系統(tǒng)產(chǎn)生序列的最大長度為MAX_LEN。從第t個混沌系統(tǒng)開始產(chǎn)生序列。以N,t及各混沌系統(tǒng)的初始參數(shù)作為密鑰:

a、用相應(yīng)參數(shù)初始化混沌系統(tǒng),為了跳過混沌系統(tǒng)初期迭代的非線性狀態(tài),每個混沌系統(tǒng)先進行P(P>100)次迭代。

b、獲取圖像中要進行加密的序列長度PL。

c、第f個混沌系統(tǒng)進行一次迭代產(chǎn)生混沌數(shù)值a,t=(t+1) mod N,令kLen=(a×E) mod MAX_LEN(文中E=10000,MAX-LEN=300),獲得下一個混沌系統(tǒng)將要產(chǎn)生的序列長度kLen。

d、若PL<kLen,令kLen=PL。利用第f個混沌系統(tǒng)產(chǎn)生長度為kLen的混沌序列。PL=PL-kLen。

e、若PL=0,序列產(chǎn)生算法結(jié)束;否則轉(zhuǎn)到第c步。

通過運行上述算法,即可得到加密所需的序列CARRAY,所產(chǎn)生的序列如圖1所示。

基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

混沌系統(tǒng)產(chǎn)生的混沌序列為一系列的實數(shù),想要利用CARRAY對圖像進行加密操作,需要對其進行離散化處理。

對CARRAY中的每個元素a,令a=(a×ENLARGE-MENT)mod256(文中ENLARGEMENT取10000),即取出了混沌序列中的一系列二進制密鑰流BARRAY。

醫(yī)學(xué)圖像中存在著大量連續(xù)的像素值相同的區(qū)域,若按傳統(tǒng)加密簡單地將圖像信息與密鑰流BARRAY進行異或操作以產(chǎn)生密文圖像,密文圖像在原圖相應(yīng)的同像素區(qū)域處容易反映出密鑰流的變化情況,繼而被攻擊破解。所以本文在加密的過程中加入了反饋機制,將圖像與密鑰流相結(jié)合作用,以產(chǎn)生變化更大的密文圖像。

設(shè)圖像數(shù)據(jù)流為DATA,反饋算法如下:

a、前向反饋

對于第一個數(shù)據(jù)點;DATA[O]=((DATA[O]+BAR-RAY[O])+BARRAY[O]) mod 256,對于之后的數(shù)據(jù)點:DA-TA[i]一(((DATA[i]0BARRAY[i])+BARRAY[i-1])mod 256)0 DATA[i-1]

b、后向反饋

對于非最后一個數(shù)據(jù)點:DATA[i]=(((nAlA[i]+BARRAY[i]) +BARRAY[i1])mod 256)+DATA[i+1],對于最后一個數(shù)據(jù)點:DATA[j]一《DATA[i]+BAR-RAYCi])+BARRAY[i]) mod 256

在前向反饋中,當i以遞增的形式進行時,加密過程為密文反饋,已經(jīng)加密的數(shù)據(jù)將反饋作用到后面的加密過程中,由于反饋的過程有混沌序列中的隨機二進制位參與,因此最后得到的密文圖像能呈現(xiàn)出良好的隨機特性,具有較強的抗統(tǒng)計分析能力。

而當i以遞減的形式進行時,加密過程為明文反饋,這時的反饋過程沒有傳遞性,每個密文字符只與加密時它的前面一個明文數(shù)值有關(guān),所以當明文圖像有較明顯的區(qū)域連續(xù)性時,加密后的圖像也容易看出大概的輪廓。但由于加密過程與明文緊密相關(guān),當解密過程中有一位明文遭到破壞時,將導(dǎo)致后續(xù)圖像無法解密,這就有效加大了攻擊者通過統(tǒng)計密文微小改變對明文造成的影響進而攻擊的難度。

無論明文反饋加密還是密文反饋加密,在單向反饋過程中圖像的第一點都沒有受到反饋的作用,所以算法對明文反饋與密文反饋都進行了雙向加密,這樣不但提高了圖像中第一點的安全性,也加大了密文圖像的隨機性,增大了對圖像的破解難度。

解密圖像只需在產(chǎn)生密鑰流后將算法反向運行即可。

四、實驗結(jié)果與安全性分析

采用以下實驗環(huán)境:操作系統(tǒng)為Windows XP SP3,CPU為InteI(R) Core (TM2) Duo CPU E7500色93GHz,內(nèi)存1. 96GB,在Visual Studi02005平臺上用VC++實現(xiàn)本文加密算法。從中南大學(xué)湘雅醫(yī)學(xué)院獲取了100幅不同形態(tài)的醫(yī)學(xué)圖像進行實驗,均得到了較好的加密效果,以下為對一幅1024×1024的24位CT圖像進行加密的結(jié)果,如圖2所示。

基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

實驗相關(guān)參數(shù)測試如下。

1、圖像直方圖

圖像直方圖能很好地反映出圖像的顏色分布特征,一個好的圖像加密算法應(yīng)使加密后圖像的直方圖分布均勻,盡量地減小加密圖像存在的像素統(tǒng)計特征,實驗結(jié)果如圖3所示。

基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

由圖可知,本文加密算法能很好地混淆圖像像素值的分布,具有較好的加密效果。

2、圖像相關(guān)性計算

應(yīng)用以下公式可計算圖像像素之間的相關(guān)性。

基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

式中,N為選取對比的像素對總數(shù),x與y分別是兩組對比像素的平均值。

本文隨機選取圖像中的3000個相鄰像素點對分別進行水平、垂直、對角關(guān)系的圖像相關(guān)性計算,結(jié)果如表1所列。

基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

可見,原本相關(guān)性很強的圖像加密后成了像素間關(guān)聯(lián)性很小的“雜亂”圖像。

3、敏感性測試

a)密鑰敏感性

首先對圖像文件進行加密操作,保存密文圖像后,對解密密鑰中一個混沌初始參數(shù)值進行微小的改變,再對圖像進行解密操作。由實驗結(jié)果可知,雖然密鑰只進行了10-15數(shù)量級的改變,亦將導(dǎo)致圖像無法解密。實驗結(jié)果說明算法中的密鑰有著極高的敏感性,算法由多個混沌系統(tǒng)組成,每個混沌系統(tǒng)都有著初始參數(shù)敏感性,可見算法有著極大的密鑰空間,能很好地抵抗暴力破解攻擊。

b)明文敏感性

實驗將對兩幅只有一個像素不同的圖像分別進行加密,再應(yīng)用式(3),將公式中的對比值設(shè)為兩幅圖中對應(yīng)位置的像素值,計算兩幅加密圖像的相似程度L,得L=0.06883??煽吹?,雖然明文圖像只有一個像素的差別,加密結(jié)果卻能得到兩個幾乎無相關(guān)性的圖像,說明算法具有良好的明文敏感性,能在加密過程中將明文的改變擴散到整個圖像。這一特性使算法能很好地抵抗通過對明文中存在的大量同色區(qū)域相對應(yīng)密文的變化來分析密鑰流情況的攻擊。

c)密文敏感性

實驗中先對圖像文件進行加密,再將密文圖像進行一個像素的改變。從結(jié)果可看到,一個像素的改變也能導(dǎo)致無法解密,說明在算法中密文也存在著極高的敏感性。

加密算法存在的這些敏感性,加大了差分攻擊等通過觀察加密過程中的細微變化來破解算法這類方式的攻擊難度。

4、圖像文件加密速度

醫(yī)學(xué)圖像成像精度通常較高,所生成的圖像大小相對較大,所以算法的加密速度也是一個關(guān)鍵因素。實驗中取了3類不同大小的醫(yī)學(xué)圖像進行加密,結(jié)果如表2所列。

基于多混沌系統(tǒng)的醫(yī)學(xué)圖像加密算法

由表2可知,加密時間與圖像大小基本成線性關(guān)系,對大小為3M的醫(yī)學(xué)圖像可在1s內(nèi)完成加密運算,符合實際應(yīng)用需求。

5、加密算法安全性分析

混沌系統(tǒng)在理論上是一個無限周期的偽隨機數(shù)發(fā)生器,但在計算機上實現(xiàn)時,由于計算機只能進行有限精度的計算,系統(tǒng)將不可避免地退化為一個周期函數(shù),在加密過程若因周期問題產(chǎn)生了重復(fù)的密鑰流,將大大降低算法的安全性。在本文提出的加密算法中,密鑰流是由多個混沌系統(tǒng)共同產(chǎn)生的,每個混沌系統(tǒng)在加密時都會由一個流長度生成點來決定下一個混沌系統(tǒng)產(chǎn)生的密鑰長度。這一個隨機生成的加密流長度取值較小,混沌系統(tǒng)間能緊密地相互作用,攻擊者雉以對其進行單一的分析,而且即使算法中的某一混沌系統(tǒng)在加密過程已經(jīng)到達周期長度,只要該系統(tǒng)在進行系統(tǒng)切換時的流長度決定點沒有停留在之前周期的同一個點,整體的密鑰流依然可以看成是非周期的。系統(tǒng)的加密周期由所選的混沌系統(tǒng)共同決定,足以應(yīng)用于大數(shù)據(jù)量的醫(yī)學(xué)圖像加密中。而混沌序列是由多個混沌系統(tǒng)共同產(chǎn)生,能很好地抵抗對單一混沌系統(tǒng)的非線性預(yù)測攻擊與相重構(gòu)攻擊。系統(tǒng)對一幅大小為3M的圖像加密只需244ms,可見算法有著較高的運行效率,能滿足在醫(yī)學(xué)中的應(yīng)用。

小知識之DCT變換

DCT變換的全稱是離散余弦變換(Discrete Cosine Transform),是指將一組光強數(shù)據(jù)轉(zhuǎn)換成頻率數(shù)據(jù),以便得知強度變化的情形。若對高頻的數(shù)據(jù)做些修飾,再轉(zhuǎn)回原來形式的數(shù)據(jù)時,顯然與原始數(shù)據(jù)有些差異,但是人類的眼睛卻是不容易辨認出來。