圖像加密算法之Markov分割
為了設(shè)計(jì)復(fù)雜度高、安全性好而計(jì)算代價(jià)小的圖像密碼算法,我們從一類新的具有Markov分割性質(zhì)的混沌系統(tǒng)出發(fā)構(gòu)造了此算法。
一、混沌系統(tǒng)構(gòu)造
1、可Markov分割的混沌系統(tǒng)的特性
本文使用一種可Markov分割的混沌系,簡(jiǎn)單描述如下:選取參數(shù)p(p≥7)是素?cái)?shù),將[0,1]區(qū)間p等分,構(gòu)造映射T(x,p,σ)如式(1),其中σ∈Z+且2<σ≤p -1。
其平均Lyapunov指數(shù)為In(σ),其Markov分割為i1,i2,...,I,其中Ik=[(k - 1)/p,k/p],σ=l,2,…,p。
此系統(tǒng)產(chǎn)生的序列有著比較好的統(tǒng)計(jì)性質(zhì):其極限分布為均勻分布,自相關(guān)函數(shù)近似為6函數(shù),為一個(gè)理想的均勻偽隨機(jī)序列。而通過對(duì)其復(fù)雜度分析可知,通過參數(shù)調(diào)整它具有比Logistic映射和帳篷映射高得多的復(fù)雜度,其符號(hào)熵對(duì)比分析結(jié)果如圖1(a)所示。
2、隨機(jī)選取初始點(diǎn)(xo =1/23)迭代4096次實(shí)驗(yàn),其均勻性和相關(guān)性如圖1(b)和圖1(c)所示。從圖1(b)可知,其累計(jì)分布函數(shù)類似一條直線,這意味著其概率密度函數(shù)近似于常數(shù),即為均勻分布。通過Kolmogorov-Smirnov統(tǒng)計(jì)檢驗(yàn)得p值為pl_KS=0.9590,通過Chi-square擬合優(yōu)度檢驗(yàn)得p值為p1_CHI2=0.9597,可以認(rèn)為此系統(tǒng)產(chǎn)生的序列服從均勻分布。而對(duì)序列的相關(guān)分析如圖3(c)所示,其接近于一個(gè)6函數(shù),為一個(gè)理想的偽隨機(jī)序列。
2、改進(jìn)時(shí)空混沌系統(tǒng)
低維的混沌系統(tǒng)因密鑰空間限制和相空間結(jié)構(gòu)簡(jiǎn)單而可能產(chǎn)生安全漏洞,這可以利用時(shí)空混沌系統(tǒng)來(lái)解決,其中最常用的是耦合格子映射。一個(gè)K階的單向發(fā)展的耦合格子映射如式(2),可掩蓋系統(tǒng)的相空間結(jié)構(gòu),其常用于密碼系統(tǒng)的設(shè)計(jì),其結(jié)構(gòu)表示如式(2)。
邊緣條件滿足yn(K+1)=yn(1),gn表示耦合格子映射的輸出,K表示系統(tǒng)耦合的階數(shù),g表示為耦合軌道分配的權(quán)重函數(shù),為基本的混沌系統(tǒng),因其產(chǎn)生的序列非均勻分布,用于密碼設(shè)計(jì)不夠理想這里用上述的混沌系統(tǒng)T(x,p,σ)來(lái)代替。(yo(1),y0(2),…,y0(K))表示耦合格子系統(tǒng)的初始值,可用做混沌密碼系統(tǒng)的初始密鑰。
選取系統(tǒng)參數(shù)為k=6,權(quán)重ε=0.99初始值為(0.9/6, 1.9/6, 2.9/6, 3.9/6, 4.9/6, 5.9/6),迭代4096次后測(cè)試結(jié)果如圖2所示。通過耦合格子映射變換后的混沌系統(tǒng)的相空間如圖2(a)和圖2(b)所示已無(wú)規(guī)律可循,由圖中可以看出,原系統(tǒng)的相空間分布在邊緣位置較稠密而中間偏稀疏,而改進(jìn)后的系統(tǒng)其分布明顯好于原系統(tǒng)。然后,對(duì)改進(jìn)的系統(tǒng)測(cè)試其累積分布,與原系統(tǒng)的對(duì)比如圖2(c)和圖2(d)所示,可見改進(jìn)系統(tǒng)其累積分布更接近均勻分布,因而更適合用于密碼算法的設(shè)計(jì)。
二、圖像加密算法構(gòu)造
1、加密算法框架
1、算法框架
分析了上述加耦合格子映射的混沌系統(tǒng)性質(zhì)后,利用其產(chǎn)生的序列生成密鑰流,根據(jù)密鑰流生成動(dòng)態(tài)置亂矩陣,對(duì)圖像像素位置進(jìn)行置亂,然后利用迭代加密模塊對(duì)像素?cái)?shù)值進(jìn)行替換。該圖像密碼算法分為3個(gè)部分:密鑰生成算法,加密算法和解密算法。其加密過程如圖3所示。
2、密鑰流生成算法
步驟1 選擇混沌系統(tǒng)參數(shù)p(為素?cái)?shù))和σ(sigma),耦合格子系統(tǒng)階數(shù)K(dim)和耦合軌道分配的權(quán)重e。
步驟2 根據(jù)耦合格子系統(tǒng)階數(shù)K選擇迭代系統(tǒng)初始值為(XI,X2,xk),密鑰為(xl,X2,…,Xk),此處xt(t=1,…,K)僅表示與Xt(t=1,m,K)區(qū)別,無(wú)特殊意義。然后通過[0,1]上均勻分布的真隨機(jī)數(shù)RND(其生成方式已有不少擾動(dòng)密鑰,生成迭代初始值X=xi+RND(i=L 2,…,K)。引入真隨機(jī)數(shù)可達(dá)到一次一密的效果。迭代過程中產(chǎn)生的密鑰流需要量化為字節(jié)流kn= floor(gL×256)。
步驟3根據(jù)輸入的明文圖像尺寸S(M×N)生成密鑰流的長(zhǎng)度/-2×M×Ⅳ,記為向,砭,…,kL。其中KLi =(ki,k2,…,kLi(Pi,p:,…,p/i)(/i=M×Ⅳ-1)用于消除系統(tǒng)初始迭代時(shí)的震蕩和構(gòu)造置換矩陣,舍棄前16個(gè)數(shù)值,然后依次產(chǎn)生M個(gè)和N個(gè)不同的整數(shù)序列構(gòu)成兩個(gè)置換PM和PN廣將生成的置換矩陣記為P他(,)= PMoPN(J)。后半部分密鑰記為Kj:2 =(kLi+I,kLi+2,…,kL)=(kl,k2,…,kn),直接用于加密圖像的迭代操作。
3、加密步驟
步驟1初始明文圖像記為J= (Iij)MxN,置換操作后的圖像為P= (Pij)M×Ⅳ=P(J)。將置換后的圖像記為數(shù)據(jù)流的形式即為(mi,7712,…,mt,…,m。),其中mt=Pij,t=(i-1)×M+n,1<t<s。
步驟2將生成的數(shù)據(jù)流依次輸入兩輪迭代系統(tǒng)表示如式(3)和式(4),經(jīng)過此兩輪操作后產(chǎn)生的密文為(Di,D2,…,Dt,…,Ds)。這里的CO為迭代系統(tǒng)的啟動(dòng)參數(shù),它作為密鑰由密鑰文件提供。
4、解密步驟
該圖像密碼算法為對(duì)稱密碼算法,所用解密密鑰同加密密鑰一致,密鑰生成算法同上,此處真隨機(jī)數(shù)與加密過程所用保持一致。
5、密鑰文件
上述算法所用的密鑰文件如表所示,主要有4個(gè)部分構(gòu)成,混沌系統(tǒng)參數(shù)、耦合格子映射參數(shù),加密系統(tǒng)啟動(dòng)參數(shù)和真隨機(jī)數(shù)。其中參數(shù)(p,sigma,dim,e)這4個(gè)參數(shù)變動(dòng)范圍比較小,密鑰空間的大小主要靠(XI,X2,…,Xdim)和RND來(lái)提高,以dim-6為例,在32位系統(tǒng)中,密鑰長(zhǎng)度即可達(dá)到192 bit,再加上產(chǎn)生的真隨機(jī)數(shù)C也是32 bit,系統(tǒng)的密鑰長(zhǎng)度可達(dá)224 bit。該圖像加密算法對(duì)密鑰的變化非常敏感,這可由后文的密鑰敏感性測(cè)試看出。系統(tǒng)密鑰文件的參數(shù)和功能如表1所示。
小知識(shí)之Markov
因安德烈·馬爾可夫(A.A.Markov,1856-1922)得名,是數(shù)學(xué)中具有馬爾可夫性質(zhì)的離散事件隨機(jī)過程。該過程中,在給定當(dāng)前知識(shí)或信息的情況下,過去(即當(dāng)前以前的歷史狀態(tài))對(duì)于預(yù)測(cè)將來(lái)(即當(dāng)前以后的未來(lái)狀態(tài))是無(wú)關(guān)的。














