圖像加密算法之多種混沌系統(tǒng)加密
隨著計(jì)算機(jī)網(wǎng)絡(luò)和信息技術(shù)的迅猛發(fā)展,多媒體通信逐漸成為人們彼此之間信息交流的重要手段。數(shù)字圖像作為多媒體信息中最重要的1種信息表達(dá)形式,已經(jīng)廣泛應(yīng)用于我們的生活之中。但是數(shù)字圖像的傳輸存在著很多安全隱患,信息安全已成為日益嚴(yán)峻的現(xiàn)實(shí)問題。因此,研究圖像加密具有重要的現(xiàn)實(shí)意義。
一、多種混沌系統(tǒng)圖像加密算法原理
混沌現(xiàn)象是美國氣象學(xué)家Lorenz 1963年在研究模擬天氣預(yù)報(bào)時(shí)發(fā)現(xiàn)的。他把大氣的動(dòng)態(tài)方程簡(jiǎn)化成了三階非線性方程(后來被稱之為L(zhǎng)orenz方程),發(fā)現(xiàn)這個(gè)確定性方程的動(dòng)力學(xué)演化具有類似隨機(jī)的性質(zhì),發(fā)現(xiàn)了著名的Lorenz吸引子,因而推斷出長(zhǎng)期的天氣預(yù)報(bào)是不可能的結(jié)論(即著名的“蝴蝶效應(yīng)”)?;煦邕\(yùn)動(dòng)是自然界中客觀存在的有界的、不規(guī)則的、復(fù)雜的運(yùn)動(dòng)形式,而且對(duì)初值的極端敏感依賴性。
1990年英國數(shù)學(xué)家Matthews最早將離散混沌動(dòng)力系統(tǒng)應(yīng)用于加密算法吲,混沌系統(tǒng)應(yīng)用于圖文件像加密,首先由Fridrich于1997年提出,使用二維的Baker映射和Cat映射進(jìn)行了像素位置的變換.Chen和Mao在Fridrich的基礎(chǔ)上,分別將二維Baker映射和二維Cat映射擴(kuò)展到了三維,并分別利用三維映射提出了1種快速的圖像文件加密方案。
1、Arnold映射
Arnold變換是俄國數(shù)學(xué)家Vladimir I.Arnold提出的,俗稱描臉變換。貓映射的數(shù)學(xué)表達(dá)式為:
![]()
其中Xn+1,Yn+1,Xn,Y∈(o,1,2….,N一1),a和b均為正整數(shù)。它實(shí)際上是一種像素點(diǎn)的位置變換,這種變換是一一對(duì)應(yīng)的,并且可以進(jìn)行迭代運(yùn)算。
由于數(shù)字圖像中像素值的個(gè)數(shù)有限,在進(jìn)行有限的N次迭代變換后,圖像會(huì)懨復(fù)到原始狀態(tài),即Arnold變換具有周期性,所以這種方法的加密對(duì)是不安全的,使用窮舉法,從密文空間的任意一個(gè)狀態(tài)開始進(jìn)行迭代運(yùn)算,都會(huì)在有限的運(yùn)算次數(shù)內(nèi)得到原始圖像。
2、logistic映射和蟲口模型
一維Logistic映射是一個(gè)簡(jiǎn)單的混沌映射,其數(shù)學(xué)表達(dá)公式為:
![]()
其中tk是狀態(tài),λ是參數(shù),若選擇參數(shù)無限制在[0,2]區(qū)間內(nèi),則上式將是從線段,I=[-1,1]到它本身的1個(gè)非線性映射,當(dāng)逐漸增大時(shí),迭代出現(xiàn)多次突變。當(dāng)λ=λ∞=1.40115時(shí),迅速達(dá)到周期N→∞;當(dāng)λ>λ∞時(shí),多次迭代結(jié)果看起來時(shí)分布在一定區(qū)間內(nèi)的隨機(jī)數(shù),即進(jìn)入了混沌狀態(tài)。區(qū)間[丸,2]稱為混沌區(qū)。
另1種Logistic映射‘別是生態(tài)學(xué)家May.R于1976年提出來的蟲口模型,它是1個(gè)十分簡(jiǎn)單又具有重要意義的非線性迭代方程Logistic映射方程如下:
![]()
其中Xk∈(0,1)。μ為分支參數(shù).當(dāng)μ=3時(shí),單線開始一分為二。在μ=1+√6處,開始出現(xiàn)了4周期。在此之后,大量的倍周期分支出現(xiàn)在越來越窄的μ間隔里,經(jīng)過n次分支,周期長(zhǎng)度為2n。這種周期倍化的過程是沒有限制,但相應(yīng)的μ有一個(gè)極限值:3.569 945 67...,當(dāng)3.569 945 67<μ<4時(shí)便進(jìn)入混沌區(qū),這一過程具有很大的普遍性。
二、加密與解密方法
本圖像加密算法采用Arnold變換結(jié)合logistic映射思路,實(shí)現(xiàn)改變圖像像素的位置和圖像像素素值,并增強(qiáng)圖像加密的安全性Logistic系統(tǒng)對(duì)初始值的敏感性,把初始值作為密鑰。破譯者如果不知道確切的密鑰,攻擊密鑰與真正的密鑰有絲毫細(xì)微的差別,所產(chǎn)生的密鑰序列都會(huì)有很大的不同,給破譯增加了極大的難度。
1、圖像文件加密過程
(1)讀入一幅256*256的RGB模式彩色圖片,RGB模式彩色圖片共有3個(gè)通道,每個(gè)通道都有8位深度,即RGB模型為圖像中每一個(gè)像素的RGB分量分配一個(gè)0-255范圍內(nèi)的強(qiáng)度值。將圖
片分解成RGB二維圖片并將三幅圖轉(zhuǎn)換成二維厭度序列M1,M2,M3。
(2)紅色通道M1加密
Step1:將M1轉(zhuǎn)換成一個(gè)長(zhǎng)度為256*256的一維序列AA的像素點(diǎn)坐標(biāo)用二維矩陣x1表示,利用Arnold變換處理后生成二維矩陣X2,其中Arnold矩陣參數(shù)為A=[1 112],這樣使一維序列
亂序后生成圖片A1,二維矩陣X2也是以后要用到的解密矩陣。
Step2:選取初值xo=0.400 001,生成一個(gè)logistic序列L1,L1也是一個(gè)長(zhǎng)度為256*256的一維序列,把Al序列與LJ序列中的各個(gè)元素一一對(duì)應(yīng),構(gòu)造一個(gè)二維矩陣P,行的長(zhǎng)度是4,列長(zhǎng)度是256*256,我們把L1的元素放在矩陣P的第一行,A1的元素放在第二行,A1元素的行標(biāo)放在第三行,列標(biāo)放在第四行,這個(gè)二維矩陣也是我們以后要用到的解密矩陣。然后將L1中的元素進(jìn)行排序,即對(duì)P矩陣的第一行進(jìn)行排序,取出排序后的P1矩陣的第二行,得到一位序列A3,這樣,A1序列中的元素也跟隨混沌序列L1中的元素發(fā)生位置變換,生成密文序列A3。解密的方法也很簡(jiǎn)單,只需要分別對(duì)密文矩陣P1的第三行和第四行進(jìn)行排序,那么得到的矩陣P2的第一行就是解密的結(jié)果。
Step3:選取參數(shù)μ=3.800 001,初值xo=0.600001,利用蟲口模型生成一個(gè)長(zhǎng)度為256*256的一維序列L3,為了增加密文的破解難度,將L3序列小數(shù)點(diǎn)后1、6、8位取出組成一個(gè)3位數(shù),并對(duì)256求余,得到序列L5。
Step4:將A3與L5進(jìn)行異或運(yùn)算,生成A4,這就是最后經(jīng)仄度加密后的紅色通道密文。
(3)綠色通道M2加密
選取參數(shù)μ=3.900 002,初值xo=0.800 05,利用蟲口模型生成一個(gè)長(zhǎng)度為256*256的一維序列L31,因?yàn)榛煦缧蛄袑?duì)初值非常敏感,L31序列與前面的L3序列有非常大的差異,這也有利于增加密文的破解難度,然后采用step2的方法,對(duì)綠色通道M2進(jìn)行位置變換,M2經(jīng)logistic的蟲口模型亂序后生成一維序列A5。
(4)藍(lán)色通道M3加密
采用step1的方法,對(duì)藍(lán)色通道M3進(jìn)行位置變換,M3經(jīng)貓映射亂序后生成A6,我們可以把藍(lán)色通道M3進(jìn)行多次貓映射位置變換,這樣增加了M3的破解難度。
(5)A4,A5,A6分別代表紅綠藍(lán)三色通道的密文,將這3個(gè)一維序列分別轉(zhuǎn)換成256*256的二維序列,然后將它們分別映射成紅綠藍(lán)三色的分量,把它們組合后就是RGB模式的密文。
2、解密過程
(1)先對(duì)藍(lán)色通道的密文進(jìn)行解密A6經(jīng)貓映射逆運(yùn)算生成N1,其中變換矩陣A的逆陣為A-1=[1-1-12] ,如果藍(lán)色通道M3經(jīng)過多次貓映射亂序加密,那么解密也需要經(jīng)過相同次數(shù)的逆
映射解密。
(2)在對(duì)綠色通道的密文進(jìn)行解密采用Step2的解密方法,A5經(jīng)logistic重新排序后生成N2。
(3)對(duì)紅色通道的密文解密需要先把A4與L5再次異或生成N3,這是對(duì)厭度值的解密過程。
(4)采用Step2的解密方法,N3經(jīng)logistic重新排序生成N4。
(5)N4經(jīng)貓映射逆運(yùn)算處理生成N5。
(6)N1,N2,N5組合后是解密后的彩色圖片。
三、仿真實(shí)驗(yàn)效果
將原始圖片轉(zhuǎn)成RGB三色通道,見圖1。

將三色通道圖片轉(zhuǎn)換成厭度圖片,然后分別加密,得到以下3個(gè)密文圖片,如圖2所示。

將3個(gè)密文圖片后合成彩色RGB模式的密文圖片,見圖3。

四、圖像加密算法分析
1、直方圖分析
直方圖(Histogram)又稱柱狀圖、質(zhì)量分布圖,是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。對(duì)圖像文件加密的攻擊方法很多,其中一種就是對(duì)圖像進(jìn)行直方圖分析,由于G通道和B通道采用的是像素點(diǎn)位置變換的加密方法,這種方法不改變圖像的直方圖,而R通道的加密方式是先改變像素位置,再改變像素的仄度值,因此叵方圖也發(fā)生了變化,圖4是尺通道的直方圖變化圖。

2、密鑰敏感性分析
密鑰的敏感性是指當(dāng)初始密鑰發(fā)生微小變化時(shí),密文的變化程度,我們用混沌算法對(duì)矩陣變換的效果圖來檢測(cè)算法密鑰的敏感性。
對(duì)logistic公式進(jìn)行敏感性分析,我們分別采用不同的參數(shù)(在a=3.6的情況下,分別采用初始值xo=0.400 001和xo=0.400 002)來分析加密算法的敏感性。由圖5可以看出,不同的x0和以值對(duì)像素點(diǎn)置換后的影響很大,當(dāng)我們稍微變換x0和a的值時(shí),就能得到很不一樣的加密后的圖片。不斷變換x0值和a值,就有很多的變換,對(duì)圖片文件進(jìn)行加密后,攻擊者想破解密文就有了很大難度。

3、相鄰像素的相關(guān)性分析
圖像相鄰像素間的相關(guān)性,可以具體的反映出圖像中像素點(diǎn)的置亂效果。由圖6一圖8可以看出,未加密前的圖像,相鄰的幾個(gè)像素點(diǎn)的仄度是非常接近的,于是不管是水平、對(duì)角線還是
垂直相關(guān)度,它們的分布圖都基本在y=x這一條直線上,而經(jīng)過加密后的圖像,由圖的分散程度可以看出,各個(gè)像素點(diǎn)的臨近的像素點(diǎn)都不再是以前的,而得到的相關(guān)性圖越分散,說明圖像被置亂程度越明顯,加密的效果也就越顯著。


由圖6一圖8可以看出,R通道和G通道的圖像被置亂程度非常顯著,B通道的置亂程度很一般,這是因?yàn)锽通道采用的Arnold映射只進(jìn)行了1次迭代,如果進(jìn)行多次迭代,加密的效果要好
得多。
小知識(shí)之蝴蝶效應(yīng)
蝴蝶效應(yīng)(Butterfly Effect),是指在一個(gè)動(dòng)力系統(tǒng)中,初始條件下微小的變化能引起整個(gè)系統(tǒng)長(zhǎng)期而巨大的連鎖反應(yīng)。這是一種混沌現(xiàn)象。此效應(yīng)說明,事物發(fā)展的結(jié)果,對(duì)初始條件具有極為敏感的依賴性,初始條件的極小偏差,將會(huì)引起結(jié)果的極大差異。










