多級圖像文件加密之TD-ERCS混沌系統(tǒng)

為了保障圖像信息傳輸?shù)陌踩?,我們提出了一種基于TD-ERCS混沌系統(tǒng)的多級混沌圖像加密方案:利用TD-ERCS混沌系統(tǒng)生成多組離散混沌序列,選擇一組生成地址索引表對像素地址進行全局置亂:以一定方式反復從余下幾組混沌序列中選擇一組,取其一個字節(jié)與置亂后圖像進行像素灰度值加密操作直至所有像素點均被加密為止。

一、加密算法

1、混沌系統(tǒng)介紹

TD-ERCS系統(tǒng)是一類新的全域性離散混沌系統(tǒng),具有零相關特性和穩(wěn)定的概率分布特性,μ,xo,α稱為TD-ERCS的種子參數(shù),參數(shù)μ∈(O,1],初值xo∈[-1,1],α∈(O,π),切延遲參數(shù)m(m=2,4,5,6,....)。

TD-ERCS通過上述迭代關系將產(chǎn)生兩個獨立的實值序列{xn}和{kn}。

2、圖像全局置亂矩陣生成

圖像的相鄰像素點間具有很強的相關性,為了打亂這種相關性,我們使用圖像全局置亂矩陣來置亂原始圖像的像素點位置,不失一般性,假設原始圖像的維數(shù)是M×N,像素點的位置矩陣是Pi,j(i=O,l,,M=l;j=O,1,…n=l),分別對圖像進行行置換和行內(nèi)列置換。

首先,對圖像進行行置換,算法設計如下:

(1)對于TD-ERCS混沌系統(tǒng),任意給定一組符合要求的初始值(μ,xo,α,m),進行一定步數(shù)的迭代,得到去除混沌暫態(tài)且完全獨立的混沌序列,Z={zi(xi,Yi)| i=l,2,...}和K={ki|Z=1,2,...},其中,Z序列可以分解為兩個單獨的序列。

(2)從Z混沌序列中取出序列{yi|i=l,2,...},令l={li|li= mod(yi×1010,M),i=l,2,…}。很明顯,li∈[O,M-1]。從L序列中取出M個介于O到M-l之間的不同數(shù)據(jù),同時把這些數(shù)據(jù)以{hi| i=l,2,…M}的形式記錄下來,并且要求當i≠j時,h≠hj,同時,記錄下這個時候從Z序列中取得的Yi的下標,用變量t來保存。

(3)根據(jù){hi|i=1,2,…M}的形式重新排列矩陣Pi,j的行,即把h1行移動到第一行,h2行移動到第二行,這樣就可以得到一個新的位置矩陣pi,j。

其次,在進行了行置換的圖像矩陣Phij,的基礎上,再進行行內(nèi)的列置換,算法設計和行置換類似。

3、加密實現(xiàn)過程

圖像加密的具體實現(xiàn)過程如下:

步驟1 通過前述的圖像全局置亂矩陣的產(chǎn)生方法生成原始灰度圖像的全局置亂矩陣。假設該矩陣的維數(shù)是M×N,將其像素點灰度值按照從上往下,從左至右的順序序列化為集合B={B1,B2,…,BMxN}。

步驟2 對TD-ERCS生成的混沌序列做如下預處理,abs(xi)返回的是x的絕對值,很顯然,經(jīng)過預處理后的混沌序列{ xi}和{ki}中的任意值都是介于0.255之間的整數(shù)。

步驟3 使用公式ri= mod(abs(yi)×lOlo,2)生成{ri}序列,其中,i=t,t+l,….因ri∈[O,l],故可以根據(jù)ri的值來選擇是用{xi}還是{ki}中的一個字節(jié)來生成{Di|i=1,2,…},用公式可表示為:

步驟4 加密操作是將{Di|i=1,2,…}中相應的一個字節(jié)與B={B1,B2,…,BMxN}中相應的一個字節(jié)的數(shù)據(jù)按照以下的公式做異或運算:

其中,符號+表示按位作異或操作,初始值Co置為128.上述處理過程直到集合B={Bi,Bz,…,BMxN}中的元素全部被加密后結(jié)束。

至此,得到了加密圖像的像素集合C={C1,C2,…,CMxN},將該集合矩陣化之后便得到最終的加密圖像。

二、試驗分析

在實驗中,加密方案采用256×256的標準灰度圖像作為原始圖像,TD-ERCS混沌系統(tǒng)的參數(shù)初始值分別為:μ=0.4,xo=0.8,α=0.9876,m=5,迭代200步后開始取值。

1、直方圖分析

直方圖是圖像中每一灰度級與其出現(xiàn)頻數(shù)之間的統(tǒng)計關系,用橫坐標表示灰度級,縱坐標表示頻數(shù),直方圖分析可以用來衡量加密算法的擾動性。
2、信息熵分析

信息熵反映的是圖像中的灰度分布情況,分布越均勻,信息熵越大,包含的不確定信息就越多。

從表1中可以看出,置亂加密后的圖像的信息熵基本上等于256紉灰度圖像信息熵的最大值8,由此可知,加密圖像的灰度分布是非常均勻的,攻擊者要想通過對像素灰度值變化的統(tǒng)計分析來對加密方案進行攻擊,無疑將極其困難。

3、兩相鄰像素點相關性分析

相關性分析是用統(tǒng)計分析的方法對算法的擴散性能進行分析,一般來說,原始圖像的兩個相鄰像素往往具有較高的相關性,而加密后的圖像冗余度分散到密文中,從而隱藏了明文的統(tǒng)計信息。

為了測試加密前后圖像的相關性,我們做了相關仿真試驗,實驗中,隨機從圖像中選擇了5000對相鄰像素點,原始圖像和加密圖像中兩個相鄰像素點的相關性。

數(shù)據(jù)可知,加密后的圖像相關系數(shù)遠遠小于加密前,這也證明了本加密方案具有良好的擴散性。

4、密鑰敏感性測試

圖2中(a)、(d)驗證了本文的加密方案對初始參數(shù)的敏感性,而這些參數(shù)可以用來作為密鑰,圖2(a)是將加密方案中的參數(shù)μ=0.4改為μ=0.400000000001,而其余參數(shù)均保持不變的情況下得到的加密圖像,圖2(b)是對應的直方圖;圖2(c)是將加密方案中參數(shù)x0=0.8改為x0=0. 80000000001,其余保持不變得到的加密圖像。

由上述實驗結(jié)果可得出以下結(jié)論:本方案中混沌加密算法對密鑰非常敏感,對密鑰的一個微小變化都將會導致生成一個完全不相同的加密結(jié)果。

小知識之直方圖

直方圖(Histogram)又稱質(zhì)量分布圖。是一種統(tǒng)計報告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。 一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。