基于雙混沌互擾系統(tǒng)的圖像加密算法
針對低維混沌系統(tǒng)有可能退化為周期問題,以及高維混沌系統(tǒng)計(jì)算量大的缺陷,提出基于雙混沌互擾系統(tǒng)的圖像加密算法。通過兩個(gè)簡單的Logistic映射間的互擾,構(gòu)造一個(gè)雙混沌互擾系統(tǒng)。雙混沌互擾系統(tǒng)的最大特點(diǎn)是擾動項(xiàng)同時(shí)包括常數(shù)擾動項(xiàng)和隨機(jī)擾動項(xiàng),不僅保證了系統(tǒng)必要的復(fù)雜性,而且增大了系統(tǒng)參數(shù)的取值范圍。
一、雙混沌系統(tǒng)互擾方案及混沌實(shí)值序列生成
在生態(tài)學(xué)中一些非常簡單的確定性的數(shù)學(xué)模型卻能產(chǎn)生看似隨機(jī)的行為。如:
![]()
稱之為人口方程,即著名的Logistic模型。其中xn∈(0,1),當(dāng)控制參數(shù)3 569946--≤μ≤4時(shí),Logistic映射表現(xiàn)出混沌的特性。
1、雙混沌系統(tǒng)互擾方案
從兩個(gè)簡單的Logistic映射混沌系統(tǒng)模型出發(fā),設(shè)計(jì)混沌系統(tǒng)互擾方案,迭代映射如下:

其中:mod為求余運(yùn)算;x0、y0為混沌的初始值;cr1、cr2為常數(shù),稱之為常數(shù)擾動項(xiàng);sr1(n+1)、sr2(n+1)為隨機(jī)擾動項(xiàng);μ1、μ2是混沌系統(tǒng)的控制參數(shù)。

其中:floor是向下取整運(yùn)算:mean是序列平均值:m1、n1、m2、n2為隨機(jī)擾動項(xiàng)的控制參數(shù)。隨機(jī)擾動項(xiàng)的隨機(jī)性由混沌序列本身決定,即將混沌序列值與混沌序列的平均值相比較。
當(dāng)系統(tǒng)參數(shù)cr1=e0.3,cr2=e0.4,m1=m2=2,n1=n2=8時(shí),初值x0=0.1,y0=0.2。Logistic映射是在初始值x0∈(0,1),控制參數(shù)3,569946--≤μ≤4條件下才出現(xiàn)混沌現(xiàn)象,但在本文的雙混沌互擾方案中,對初始值的取值范圍沒有任何限制,混沌系統(tǒng)互擾映射在控制參數(shù)μ1;1,μ2;2時(shí)各自都出現(xiàn)混沌現(xiàn)象,x,y∈(0,2),如圖1的分岔圖所示。

通過混沌系統(tǒng)間的擾動后,雙混沌互擾系統(tǒng)變得更復(fù)雜,更加不可預(yù)測。與常用的超混沌系統(tǒng)和高維混沌系統(tǒng)相比較,本文構(gòu)造的雙混沌互擾系統(tǒng)具有以下優(yōu)勢:
1)構(gòu)造混沌互擾系統(tǒng)時(shí),可以任意選擇相同或不同的多個(gè)混沌系統(tǒng)(不只限于兩個(gè)混沌系統(tǒng)),構(gòu)造方法靈活,且易于實(shí)現(xiàn);
2)隨機(jī)擾動項(xiàng)的隨機(jī)性可以人為地控制,在不知道隨機(jī)擾動項(xiàng)的隨機(jī)性如何決定的情況下,對破譯者來說亦增加了難度;
3)增加了系統(tǒng)參數(shù)的個(gè)數(shù),擴(kuò)展了初始條件的取值范圍,進(jìn)一步增大了密鑰空間,安全性得到提高。
2、混沌實(shí)值序列的產(chǎn)生
由兩個(gè)簡單的Logistic映射混沌系統(tǒng)經(jīng)過常數(shù)擾動和隨機(jī)擾動后,得到兩個(gè)混沌序列分別為:{x:x1,x2,x3,…,xn},{y:y1,y2,y3,…,yn},其中n為序列的長度。 定義1,用于產(chǎn)生二值序列的混沌序列z為:
![]()
式中j=1,2 3,…。
最終混沌序列提由Logistic映射互擾后得到的混度序{x:x1,x2,x3,…,xn},{y:y1,y2,y3,…,yn}交叉組合而成,為了消除初始值對混沌序列過渡部分的影響,選取迭代1000次后的序列值構(gòu)成最終混沌序列z。
當(dāng)參數(shù)為μ1=60,μ2=70,cr1=e0.3,cr2=e0.4,m1=m2=2,n1=n2=8時(shí),初值x0=0.1,y0=0.2,系統(tǒng)參數(shù)不變,只是初始值x0或y0發(fā)生0.000001的微小變化,得到的混沌序列的差異相當(dāng)明顯。實(shí)驗(yàn)中選取了混沌序列的前40個(gè)序列值對比,如圖2所示。

圖2中,實(shí)線表示的是初始值未發(fā)生變化的混沌序列值,虛線表示的是初始值發(fā)生0.000001微小變化后的混沌序列值,實(shí)驗(yàn)結(jié)果也表明了由雙混沌互擾系統(tǒng)產(chǎn)生的混沌序列對初始值具有十分的敏感性。
二、混沌二值序列的產(chǎn)生
由混沌實(shí)值序列轉(zhuǎn)換為二進(jìn)制序列的方法有多種。有將混沌序列值與混沌序列平均值進(jìn)行大小比較,然后量化成0,1二值序列。有用混沌系統(tǒng)生成兩個(gè)混沌序列,比較兩個(gè)序列對應(yīng)項(xiàng)的大小,然后量化成0,1二值序列。有基于一個(gè)四維混沌系統(tǒng)生成四個(gè)混沌序列,將混沌序列劃分小區(qū)間,接著在小區(qū)間內(nèi)取平均值后與0比較大小,然后量化成二值序列。 本文采取的二值量化算法如下:
1)設(shè)定雙混沌互擾系統(tǒng)的初始值小粥,經(jīng)過系統(tǒng)迭代映射產(chǎn)生混沌序列z;
2)提取混沌序列神每個(gè)混沌實(shí)值小數(shù)部分的2、4、6,組成一個(gè)新的3位整數(shù),比如:0.372 685189—765,由這些整數(shù)組成新的整數(shù)序列I;
3)將整數(shù)序列對256求余預(yù)算,即I'= mod(I,256),比如765—253,這樣就得到一個(gè)新的整數(shù)序列I',且序列I'每個(gè)值都在區(qū)間[0,255];
4)將得到的整數(shù)序列I'換成二進(jìn)制序列{I':253→11111101},這樣就完成了由混沌序列考z值序列s的轉(zhuǎn)換; 所得到的整數(shù)序列,I'的直方圖如圖3所示。

可以看出,整數(shù)序列I'分布不夠均勻,區(qū)間[225,255]的數(shù)明顯偏少,這將影響圖像加密效果。因此對量化算法進(jìn)行改進(jìn),改進(jìn)的量化算法如下:
1)設(shè)定雙混沌互擾系統(tǒng)的初始值孫J6,經(jīng)過系統(tǒng)迭代映射產(chǎn)生混沌序列z;
2)提取混沌序列神每個(gè)混沌實(shí)值小數(shù)部分的2、4、6位,組成一個(gè)新的3位整數(shù),比如:0.372685189—765,由這些整數(shù)組成新的整數(shù)序列I1;提取混沌序列神每個(gè)混沌實(shí)值小數(shù)部分的3、5、7位,組成一個(gè)新的3整數(shù),比如:0.372685189—281,由這些整數(shù)組成新的整數(shù)序列I2;
3)將整數(shù)序列I1、I2分別對256求余預(yù)算,即I1'=mod(I',256),比如765—253;,I'=mod(I2,256),比如281—25。這樣就得到兩個(gè)新的整數(shù)序列I1,I2且序列I1,I2的每 個(gè)值都在區(qū)間[0,255]內(nèi);
4)將得到的整數(shù)序列I1'、I2'的每個(gè)整數(shù)都轉(zhuǎn)換成二進(jìn)制,例如{I1':253—11111101},{I2':25—00011001}。分別提取二進(jìn)制序列后面4位交叉排列,組成新的二進(jìn)制序列S那么就有{S:1101 8 1001—11100011},以及與二值序列對應(yīng)的整數(shù)序列I; 改進(jìn)后得到的二值序列轉(zhuǎn)換成整數(shù)序列I的直方圖如圖4所示。

可以看出,改進(jìn)后得到的整數(shù)序列I更加均勻。
三、加密流程及仿真試驗(yàn)
1、加密流程
1)設(shè)定雙混沌互擾系統(tǒng)的參數(shù)及初始值x0,y0,經(jīng)過系統(tǒng)迭代映射產(chǎn)生混沌序列z。
2)置換:由前面的方法對混沌序列量化得到混沌二值序列S同時(shí)將明文圖像轉(zhuǎn)換成二進(jìn)制,然后從混沌序列S中每次取8個(gè)數(shù)與明文圖像像素二進(jìn)制值“異或”運(yùn)算,最后轉(zhuǎn)
換成十進(jìn)制整數(shù),這樣就得到置換后的密文圖像。
3)置亂混沌序列從小到大排列成Z',z'與z'排列前后之間的位置就形成了一組對應(yīng)關(guān)系。將置換后的密文圖像按照z'與z'的位置對應(yīng)關(guān)系重排,得到最終密文圖像。
解密就是加密的逆運(yùn)算,只有正確的密鑰才能得到正確的恢復(fù)圖像。
2、仿真實(shí)驗(yàn)
根據(jù)上節(jié)的加密流程用Matlab進(jìn)行圖像加解密實(shí)驗(yàn)仿真。試驗(yàn)中選取標(biāo)準(zhǔn)的Lena圖像作為待加密的明文圖像,如圖6(a)所示,其灰度直方圖如圖6(e)所示。

設(shè)定參數(shù)μ1=60,μ2=70,cr1=e0.3,cr2=e0.4,m1=m2=2,n1=n2=8時(shí)初始值x=0.1,y=0.2。按照的加密流程對明文圖像加密,得到最終的密文圖像如圖6(b)所示,圖6(f)是密文圖像灰度直方圖。通過原始圖像與加密圖像的灰度直方圖對比可以看出,加密圖像的像素灰度直方圖非常均勻,說明二值序列能有效地掩蓋明文信息。
小知識之MATLAB
MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。









