黃 碩
(信陽職業(yè)技術(shù)學院 數(shù)學與計算機學院,河南 信陽464000)
圖像加密是保護圖像安全的一種直接有效的手段,眾多學者對圖像加密技術(shù)做了大量研究并取得了豐富的成果,如基于現(xiàn)代密碼體制的圖像加密、基于矩陣變換的圖像加密、基于混沌的圖像加密、基于分存的圖像加密、基于頻域的圖像加密、基于SCAN語言的圖像加密和基于DNA計算的圖像加密等[1].針對彩色圖像加密設(shè)計,需要考慮以下四點基本要求:加解密速度快、Kerckhoff原則、密鑰空間大、解密保真度高.根據(jù)這四點基本要求,在不需要壓縮加密的前提下,應該盡量選擇在RGB色彩模型空間或空域上進行,并綜合考慮運行速度、抗攻擊能力、密鑰空間大小、抗噪聲及抗剪裁能力等因素來設(shè)計加解密算法.因此,針對密鑰情況提出了一種改進的、具有較大密鑰空間的Logistic混沌映射來產(chǎn)生混沌密碼序列;針對加密算法在序列異或加密算法上進行改進,以避免單純異或加密的缺點,同時又保留了加解密速度快的優(yōu)點;針對加密效果,通過實驗仿真,并從直方圖、加密效果評價參數(shù)、抗剪裁、抗噪聲、相關(guān)性、密鑰空間大小等方面進行了深入分析.
Logistic映射方程來自現(xiàn)實中的人口統(tǒng)計,是典型的非線性用來描述混沌狀態(tài)的方程,能夠簡單地表現(xiàn)混沌運動的一般特征.傳統(tǒng)單一性的Logistic算法過程如下:①挑選恰當?shù)腖ogistic方程生成密鑰序列的算法;②輸入作為加解密初始密鑰的初值;③從目前所處的軌跡啟動迭代程序;④形成混沌運動的實數(shù)序列,將這些序列轉(zhuǎn)化為方便處理的二進制序列;⑤將其中某部分的明/密文選為帶加/解密明文;⑥用異或運算來處理所得到的二進制序列與當前的待加密明文/待解密密文,結(jié)果為密/明文序列;⑦將目前運算的行蹤作為下一次加/解密的初始密鑰;⑧對加/解密是否完成進行判斷,沒有完成則返回到第③步;⑨加/解密完成.
傳統(tǒng)的Logistic加密算法方便快捷、便于實現(xiàn),并且由于混沌系統(tǒng)本身對初值比較敏感,又有隨機性,這使得傳統(tǒng)的Logistic算法具有一定的安全性.但是,傳統(tǒng)的Logistic算法缺點也非常明顯,主要有以下幾點:
(1)通過試驗總結(jié)出來的混沌序列的周期、偽隨機性和復雜性,很難保證這些參數(shù)都足夠高;
(2)為了保證一樣的周期,混沌函數(shù)內(nèi)部所使用的存儲器數(shù)目是寄存器的兩倍;
(3)混沌序列發(fā)生器使用的是有限精度器,有限的精度是實際應用混沌序列的一大障礙.
其中,缺陷(3)非常突出,故基于此對傳統(tǒng)的Logistic系統(tǒng)進行了改進.
Logistic映射是用得最廣的一種混沌系統(tǒng),其定義如下:
其中,0<μ≤4稱為分支參數(shù),xk∈(0,1),當3.569 946<μ≤4時,Logistic映射處于混沌狀態(tài),也就是說初始條件x0在Logistic映射的作用下所產(chǎn)生的序列{xk}是非周期性的、不收斂的并對初始值非常敏感.因此,若僅僅用以上一維Logistic混沌映射來產(chǎn)生混沌密碼序列已不夠安全,極易暴露混沌系統(tǒng)的相關(guān)信息.為了提高系統(tǒng)的混沌程度,張靚[2]提出了一種改進的二維Logistic混沌映射,如下式所示:
當3.81≤u≤3.815時,其最大Lyapunov指數(shù)在2.2左右,該映射處于混沌狀態(tài).但是,根據(jù)Kerckhoff原則,要求密鑰空間盡可能大,為了增大式(2)Logistic混沌映射的混沌度,結(jié)合Chebychev混沌映射,如下式所示:
對式(2)所示的Logistic混沌映射的參數(shù)μ進行擾動,即μ不再是一個定值,而是隨Chebychev混沌映射的值而動態(tài)地變化.
當參數(shù)k=6時,Chebychev系統(tǒng)的Lyapunov指數(shù)為1.791 733…,映射處于混沌狀態(tài)且zn∈[-1 1].由此,可構(gòu)造新的參數(shù)μ的表達式,如下式所示:
從而,式(2)變成了式(5),即為本算法所提出的改進的Logistic混沌映射:
通過Matlab編程,當x0=0.345 678,y0=0.578 993,z0=0.234 567時,式(5)在迭代1 000次后的三維散點圖如圖1所示.在迭代100萬次后,統(tǒng)計得到xn,yn,zn的值域(只顯示16位有效數(shù)字)分別如下:
同時,通過Matlab中的tabulate函數(shù)對xn,yn,zn進行了頻數(shù)統(tǒng)計,發(fā)現(xiàn)每一個值都只出現(xiàn)了1次,表明所提出的Logistic混沌映射系統(tǒng)能產(chǎn)生較高隨機性的3組混沌序列.
圖1 迭代1 000次后的三維散點圖Fig.1 Three-dimensional scatter plot after iteration 1 000 times
針對一幅M×N的24位真彩色圖像,共有M×N個像素和M×N×3個灰度值.鑒于圖像異或加密的簡單性與快速性,將其進行改進,提出一種新的加解密算法,整體流程如圖2所示.
加密步驟如下:
(1)輸入密鑰x0,y0,z0和I,其中x0,y0,z0分別為式(5)所示混沌映射的初始值,I為混沌序列的初始迭代次數(shù).然后,產(chǎn)生兩組長度為M×N×3的一維混沌密碼序列SX和SY,其產(chǎn)生方式如下式所示:
其中,i∈[1 M×N×3],xi和yi分別為式(5)在迭代I+i次后的值.
圖2 加解密算法流程Fig.2 The flow chart of encryption algorithm
(2)對原圖像的數(shù)據(jù)序列進行先異或運算再求和求余運算,其加密公式如下式所示:
其中,Pi表示彩色圖像每個像素的R或G或B分量的值,P'i為加密后的值.
解密算法是加密的逆過程,具體步驟如下:
(1)與加密過程一樣,由式(5)和式(6)產(chǎn)生兩組長度為M×N×3的一維混沌密碼序列SX,SY;
(2)對加密圖像的數(shù)據(jù)序列進行先求和求余運算再異或運算,其解密公式如下式所示,最后得到解密圖像:
式(8)也可以寫成式(9)的形式:
以大小為256×256個灰度級、24位真彩色的Lina圖像(如圖3(a)所示)為實驗對象,設(shè)定初始密鑰值為x0=0.345 678,y0=0.578 993,z0=0.234 567,I=222,加密效果如圖3(b)所示,正常解密圖像如圖3(c)所示,當改變密鑰x0=0.345 678 1時的解密圖像如圖3(d)所示.可以看出,加密圖像在直觀上已經(jīng)變得雜亂無章,即使微小改動初始密鑰值,也不能獲得原圖像的任何信息,體現(xiàn)了該加密算法對密鑰有較強的敏感性.
圖3 圖像加解密效果Fig.3 The results of encryption and decryption of images
原圖像和加密圖像的直方圖分別如圖4(a)和4(b)所示.可以看出,加密后的直方圖變得非常均勻,圖像的像素變化大,通過直方圖信息來破解圖像將會變得非常困難.
圖像加密效果的評價是在原始圖像與加密后的圖像之間進行的.設(shè)原始圖像為O,加密后的圖像為E,則O(i)和E(i)分別代表各自數(shù)組中第i個元素代表的亮度值,數(shù)組的長度為n.
圖4 原圖像與加密圖像的直方圖Fig.4 Histogram of the original image and the effect of the encrypted image
(1)信息熵:
其中,p(xi)表示符號集中符號xi在消息中出現(xiàn)的概率,l表示灰度等級數(shù),也表示符號的個數(shù),本系統(tǒng)中l(wèi)為256個,即為0~255.顯然,信息X的不確定性越大,信息熵越高.當所有變量出現(xiàn)的概率都相同時,信息熵最大,本系統(tǒng)中的最大信息熵為log2256=8.
(2)灰度平均變化值:
當兩個圖像的灰度產(chǎn)生均勻變化時,圖像置亂的效果是最好的,并且越均勻安全性越高,最好的情況應該是圖像灰度平均變化值為128.
(3)圖像相似度:
若原圖像與加密圖像完全相同,則其相似度為1,即完全相似.對于加密圖像來說,與原圖像的相似度越小,安全性就越高.以藍色分量為例,對加密前后圖像的信息熵、灰度平均變化值和圖像相似度進行了統(tǒng)計,如表1所示.可以看出,加密后圖像的信息熵大大增加,加密前后的相似度也較小,表明加密效果較好.由于算法沒有涉及像素間的置亂操作,故灰度變化值不是特別大.
表1 算法加密效果的評價參數(shù)情況(針對藍色分量)Tab.1 The results of evaluation parameters of encryption algorithm results(for the blue component)
對加密后的圖像(如圖3(b)所示)進行1/8剪裁,如圖5(a)所示,然后進行解密操作,得到解密后的圖像,如圖5(b)所示.可以看出,剪裁部分對未被剪裁部分圖像的解密沒有任何影響,表明該算法抗剪裁能力較強.
對加密后的圖像如圖3(b)所示,每個像素的RGB分量都增加0~20的隨機值,當值超過255時以255代替,然后進行解密操作,得到解密后的圖像如圖6所示.可以看出,解密后的圖像基本能恢復原圖像的信息,但存在部分失真,這表明該算法具有一定的抗隨機噪聲能力.
圖5 抗1/8剪裁效果分析Fig.5 The analysis of 1/8 anti-cut effectiveness
圖6 抗隨機噪聲效果Fig.6 The effects anti-random noise
(1)在改進的方法中,對μ進行擾動,使它不再是一個定值,這樣增大了密鑰空間并提高了Logistic的混沌度,使得混沌系統(tǒng)的相關(guān)信息不易被暴露,提高了安全度;
(2)經(jīng)過改進之后,對xn,yn,zn進行處理,在統(tǒng)計過程中每個值都出現(xiàn)了一次,這說明在迭代的過程中,沒有出現(xiàn)同樣的xn,yn,zn,這解決了單純的Logistic映射的有限精度所導致的周期循環(huán)問題;
(3)彩色圖像加密算法設(shè)計應考慮以下四點基本要求:加解密速度快、Kerckhoff原則、密鑰空間大、解密保真度高.
對傳統(tǒng)的算法和改進后的算法做一些隨機性的比較,結(jié)果見表2.
表2 傳統(tǒng)算法與改進算法隨機性檢驗結(jié)果對比Tab.2 The eom parison of randomness of traditional algorithm and im proved algorithm test results
由表2可知,改進后的Logistic算法通過了隨機性檢驗試驗,在產(chǎn)生密鑰序列的隨機性方面,與傳統(tǒng)的Logistic算法相比得到了明顯提高,增強了改進算法的安全性.
(1)為了抵抗解密圖像的破解攻擊,需在保證加密運算速度和低資源消耗的前提下,盡量增大系統(tǒng)的密鑰空間.因此,結(jié)合Chebychev混沌映射的值域為[-1,1]的特性,設(shè)計算法對二維Logistic混沌系統(tǒng)的參數(shù)μ進行迭代變化,大大增加了密鑰空間.該算法在序列異或加密算法上進行了改進,改進后的算法非常簡單,可以對圖像數(shù)據(jù)流快速地實時加解密.
(2)彩色圖像加密算法設(shè)計時應考慮以下四點基本要求:加解密速度快、Kerckhoff原則、密鑰空間大、解密保真度高.在不需要壓縮加密的前提下,應該盡量選擇在RGB色彩模型空間或空域上進行,并且要綜合考慮運行速度、抗攻擊能力、密鑰空間大小、抗噪聲及抗剪裁能力等因素.
[1]張曉強,王蒙蒙,朱貴良,等.圖像加密算法研究新進展[J].計算機工程與科學,2012,34(5):1-6.
[2]張靚.混沌偽隨機序列發(fā)生器設(shè)計及應用[D].哈爾濱:黑龍江大學,2008.