圖像加密算法之交替迭代混沌系統(tǒng)加密
基于logistic映射和時(shí)空混沌系統(tǒng),我們設(shè)計(jì)了一個(gè)密鑰長度為256 bit的圖像分組加密算法,將256 bit的明文圖像分組加密為等長的密文圖像。該加密算法引人的輔助密鑰和設(shè)計(jì)的迭代次數(shù)敏感地依賴于明文分組和密鑰,交替迭代混沌系統(tǒng)及Arnold映射實(shí)現(xiàn)了像素值的擾亂和位置置亂,接下來我就給您詳細(xì)介紹一下。
一、混沌系統(tǒng)
logistic映射是一種在混沌密碼中常用的一維離散動態(tài)自治系統(tǒng),可以通過微小的改變參數(shù)值或初值來產(chǎn)生完全不同的偽隨機(jī)序列。其動力學(xué)方程為:
![]()
式中:μ∈ [0,4]被稱為Logistic參數(shù),初值X0∈(0,1);xi為狀態(tài)變量在第i次迭代的值,隨著參數(shù)μ的增加,系統(tǒng)(1)不斷地經(jīng)歷倍周期分叉最終達(dá)到混沌狀態(tài)。當(dāng)控制參數(shù)滿足3. 599 456 <p≤4時(shí),對于不同的初值,迭代生成的狀態(tài)值均處于偽隨機(jī)分布的混沌狀態(tài),時(shí)空混沌系統(tǒng)的基本模型——耦合映像格子( coupled map lattices,CML)是由日本學(xué)者Kaneko提出來的,耦合映像格子在時(shí)間上和空間上均具有混沌行為,有多個(gè)正李雅普諾夫指數(shù),其定義如下:
![]()
式中:n為離散時(shí)間步數(shù);i =1,2,…,L為離散格子的坐標(biāo);xn(i)為第f個(gè)格子在n時(shí)刻的狀態(tài);耦合系數(shù)ε∈??(0,1);L為系統(tǒng)尺寸;f為演化規(guī)則,邊界條件滿足xn(0)=xn( L),局部映射廠可取擴(kuò)展帳篷映射:

式中,α,β為常數(shù)且0<α,β<1,α≠β。fα(β)≠α,當(dāng)xi∈?[O,1]時(shí),系統(tǒng)處于混沌狀態(tài)。
時(shí)空混沌具有不可逆性,有優(yōu)于低維度混沌系統(tǒng)的良好的混淆和擴(kuò)散特性以及對初始值和參數(shù)的敏感性等特性,當(dāng)初始條件為[0,1]內(nèi)的隨機(jī)數(shù),參數(shù)α=0.5,β=o.1,L=16,ε=0.05時(shí),耦合映像格子系統(tǒng)呈現(xiàn)如圖1所示的混沌行為。

二、基于交替迭代混沌系統(tǒng)的圖像加密算法
本文加密算法分為兩部分:像素值擾亂和像素位置置亂,第一部分由256 bit的明文產(chǎn)生256 bit的密文,主要完成對明文像素的擾亂。明文分組在加密過程中使用了一個(gè)基于明文和密鑰變化而變化的輔助密鑰,首先從初始條件出發(fā)交替迭代logisLic映射和擴(kuò)展帳篷( tent)映射生成序列,該序列驅(qū)動映像格子快速產(chǎn)生時(shí)空混沌序列;然后將此序列比特串做循環(huán)左移運(yùn)算得到新序列,與明文像素分組異或產(chǎn)生密文像素分組.算法的關(guān)鍵是輔助密鑰和混沌置亂序列的產(chǎn)生,明文像素分組的加密過程如圖2所示。

第二部分作像素位置置亂,首先將生成的各個(gè)密文像素分組,用Matlab軟件的矩陣成型函數(shù)reshape()將各個(gè)分組組合成矩陣的形式,重新置亂矩陣的各位置,得到加密的密文圖像。本文采用二維Arnold混沌映射來完成像素位置置亂。
1、加密算法原理
一種安全性好的加密算法不僅要求密文敏感地依賴于密鑰,也要求其敏感地依賴于明文,并且密文在密文空間中均勻分布。本加密算法引入的輔助密鑰,既依賴于明文圖像的大小和像素值,又依賴于密鑰,使得不同的明文或密鑰每次都會產(chǎn)生不同的輔助密鑰,輔助密鑰的構(gòu)造方法是:首先求出明文大小N×N、明文分組像素值之和以及密鑰之和,三者相乘的結(jié)果再作模256運(yùn)算,最后除以256生成一個(gè)(0,1)之間的輔助密鑰.由于混沌初值對明文已經(jīng)有很強(qiáng)的依賴作用,這種輔助密鑰對混沌初值和參數(shù)的調(diào)制作用(相乘),增加了算法對明文和密鑰的敏感性,可以抵抗差分攻擊[12J和已知明文攻擊;同時(shí)增大了密鑰空間,使破譯者的窮盡搜索攻擊變得更加困難。加密算法設(shè)計(jì)的混沌迭代次數(shù)是對明文分組和密鑰之和作模256運(yùn)算,這種設(shè)計(jì)使混沌迭代次數(shù)可以根據(jù)分組和密鑰的不同來動態(tài)的選取。
混沌密碼分析方法主要是根據(jù)所截獲信號的混沌動力學(xué)行為來重構(gòu)相空間,得出混沌映射的數(shù)學(xué)表達(dá)式,再通過分析大量的明文一密文對獲得加密算法,甚至破譯出整個(gè)明文或密鑰,交替迭代logisLic映射和擴(kuò)展帳篷映射生成隨機(jī)序列的方法,增強(qiáng)了算法的擴(kuò)散效果,能有效避免單混沌系統(tǒng)由于信號的泄露而導(dǎo)致的相空間重構(gòu)攻擊。交替迭代式(2)和式(3)生成的序列對初值有很好的敏感性,如圖3所示,橫坐標(biāo)表示迭代次數(shù),縱坐標(biāo)表示生成序列的取值范圍(0,1),在依次迭代200一400次,初值為xo=0.566 358和y0=0.566 359時(shí),序列的分布差別很大。

交替迭代后耦合映像格子生成的序列(類似于圖1)具有很好的密碼學(xué)特性,比單混沌的生成序列具有更好的隨機(jī)性和相關(guān)性;序列的線性復(fù)雜度高,初始值X0=0.566 358在圖1的參數(shù)控制下演化,取長度為256 bit的生成序列,按照Berlekamp-Massey算法計(jì)算的線性復(fù)雜度為127。十分逼近于理想值256/2=128,說明生成的序列有理想的線性復(fù)雜度,具備很好的抵抗線性攻擊的能力;易于批量的生產(chǎn),非常適合于圖像加密領(lǐng)域。
基于以上因素,本文采用交替迭代混沌系統(tǒng)的方法,在輔助密鑰的控制下擾亂像素值,并對像素位置置亂進(jìn)行加密。
三、本文加密算法與傳統(tǒng)分組加密算法的比較
處理復(fù)雜度和數(shù)據(jù)復(fù)雜度是加密短發(fā)可靠性的兩個(gè)衡量標(biāo)準(zhǔn),分別用來說明處理數(shù)據(jù)的計(jì)算量和攻擊所需的數(shù)據(jù)量,由于本文加密算法基于混沌系統(tǒng),與傳統(tǒng)分組密碼算法AES、DES過程完全不同,故只需比較處理復(fù)雜度,處理復(fù)雜度通常以密鑰窮盡搜索攻擊的復(fù)雜度表示,所以需要考察算法的密鑰空間來比較兩者的處理復(fù)雜度。本文算法的主密鑰空間已達(dá)2的256次方,與AES、DES加密算法相比顯然提高了很多,因而本算法具有足夠高的處理復(fù)雜度,比較結(jié)果詳見表2。

小知識之迭代
迭代是重復(fù)反饋過程的活動,其目的通常是為了接近并到達(dá)所需的目標(biāo)或結(jié)果。每一次對過程的重復(fù)被稱為一次“迭代”,而每一次迭代得到的結(jié)果會被用來作為下一次迭代的初始值。










