基于有限狀態(tài)斜帳篷映射的圖像加密算法

針對圖像加密算法中迭代性高、低維離散混沌加密密鑰空間小、保密性低等特點(diǎn),我們提出了一種基于有限狀態(tài)斜帳篷映射的混沌加密方法。該方法采用一種有限狀態(tài)skew tent映射來產(chǎn)生偽隨機(jī)整數(shù)序列,然后依據(jù)該混沌序列控制圖像像素的置換和灰度值的修改,攻擊者在不知道密鑰的情況下,加密圖像不能被正確重建。

一、有限狀態(tài)斜帳篷混沌映射

考慮如下一維離散時(shí)間非線性動(dòng)力學(xué)系統(tǒng)Xk+1=τ(xk),其中Xk∈P,k=0,1,2,…,稱之為狀態(tài);而τ:P→P是一個(gè)映射,將當(dāng)前狀態(tài)Xk映射到下一個(gè)狀態(tài)Xk+1,如果由初始值x0反復(fù)應(yīng)用τ,就得到一個(gè)序列{Xk}k=o,1,2,…,這一序列稱為該離散時(shí)間動(dòng)力系統(tǒng)的一條軌跡。

定義有限狀態(tài)斜帳篷映射fa(x):{1,2,…,M}→{1,2,…,M}為:

基于有限狀態(tài)斜帳篷映射的圖像加密算法

fa(x)是一維正合的,因而也是混合和遍歷的,其中控制參數(shù)a=0.5時(shí),(1)式即為Tent映射,f的Lyapunov指數(shù)定義為:

基于有限狀態(tài)斜帳篷映射的圖像加密算法

有限狀態(tài)帳篷映射fa(x){1,2,…,M}→{1,2,…,M}是一個(gè)雙射,在有限精度數(shù)字計(jì)算機(jī)中迭代時(shí),由于截?cái)嗾`差,x將很快落人一個(gè)循環(huán)。將區(qū)間[o,1]分成M等分,將外部密鑰P和密文C表示為所有的等分點(diǎn)構(gòu)成一個(gè)狀態(tài)集合:

基于有限狀態(tài)斜帳篷映射的圖像加密算法

同時(shí)將外部密鑰空間K定義為:

基于有限狀態(tài)斜帳篷映射的圖像加密算法

基于fa,可以構(gòu)造一個(gè)在P上的有限狀態(tài)映射fa。

基于有限狀態(tài)斜帳篷映射的圖像加密算法

其中a∈K,[z]表示小于z且與z最接近的古的倍數(shù)。

為了使混沌映射在整數(shù)集上運(yùn)算,在(2)式的基礎(chǔ)上,重新定義明文空間、密文空間、密鑰空間和混沌映射FA如下:

基于有限狀態(tài)斜帳篷映射的圖像加密算法

其中P’為明文空間,C’為密文空間,K’為密鑰空間。

二、圖像加密算法

圖像加密算法過程如下:

Step1:設(shè)待加密圖像Ie={o≤fk(i,j)≤255),若圖像為彩色圖像,k=1,2,3分別對應(yīng)三個(gè)彩色分量R、G、B;若圖像為灰度圖像,k=1,i=0,1,2,…,M-1,j=0,1,2,…,N-1,圖像分辨率為MxN。不失一般性,假設(shè)明文圖像大小為t= 256×256,對于比之大或比之小的圖像,可以分別采取分割為256×256的塊組或填充至256×256的辦法。

Step2:利用有限狀態(tài)斜帳篷映射產(chǎn)生偽隨機(jī)整數(shù)序列Sk∞=0,Sk∈(1,M)),該序列對初始值十分敏感,不同的初始值將產(chǎn)生完全不同的隨機(jī)參數(shù)序列,從而達(dá)到像素置亂之目的。

Step3:二值序列,可以通過定義一個(gè)閾值函數(shù)Ⅱ,由上述的偽隨機(jī)整數(shù)序列得到2H值混沌序列,閾值函數(shù)Ⅱ定義為:

基于有限狀態(tài)斜帳篷映射的圖像加密算法

Step4:在對MxN的圖像進(jìn)行位置置換時(shí),一般做法是建立一個(gè)等大的輸出空間,將此空間中的每個(gè)像素坐標(biāo)(i,j)作為初始值代人混沌映射序列T1 (x)=Cn-1Cn-2…C1C0中,對于某一個(gè)像素點(diǎn)(i,j)的灰度值I(i,j),0≤/(i,j)≤255,將它表示為二進(jìn)制形式I7I6…I1I0。利用2H值混沌序列T(x)=Cn-1Cn-2…C1C0來修改I7I6…I1I0。

Step5:執(zhí)行混沌置亂算法,混沌置亂采用的是使用較多的貓映射,也叫Amold映射,其定義為:

基于有限狀態(tài)斜帳篷映射的圖像加密算法

從式(3)不難看出,Arnold映射過程是把原圖像位置(x,y)上的像素映射到(x’,y')位置上,那么其逆映射即為把(x’,y')的像素映射到(x’,y')位置上.因此,可以用原來式(3)的映射過程,通過(x,y)求得(x’,y')后,把位置(x’,y')上的像素移動(dòng)到(x,y)上便實(shí)現(xiàn)逆映射過程,該逆映射方法簡單,不需要進(jìn)行判斷。

Step6:圖像加密過程結(jié)束。

本文設(shè)計(jì)的加密算法是對稱的,也就是圖像文件加密和解密都使用同一個(gè)密鑰,因此解密算法是上述加密算法的逆過程。

三、加密算法安全性分析

1、密文統(tǒng)計(jì)特性與密文相關(guān)性

明文圖像一般具有某種統(tǒng)計(jì)特征,經(jīng)過圖像文件加密處理后,這種統(tǒng)計(jì)特性應(yīng)該消失,即密文圖像的灰度分布應(yīng)該是均勻的,從圖1可以發(fā)現(xiàn),加密算法在消除明文圖像的統(tǒng)計(jì)特性方面是有效的。

基于有限狀態(tài)斜帳篷映射的圖像加密算法

分別測試密文圖像中垂直方向、水平方向和對角線方向相鄰像素之間的相關(guān)性。首先,從密文圖像中隨機(jī)選擇1000對相鄰像素點(diǎn);然后,通過下式計(jì)算每對相鄰像素點(diǎn)之間的相關(guān)系數(shù):

基于有限狀態(tài)斜帳篷映射的圖像加密算法

其中x和y是相鄰兩個(gè)像素點(diǎn)的灰度值。在數(shù)值計(jì)算中,使用如下離散公式計(jì)算:

基于有限狀態(tài)斜帳篷映射的圖像加密算法

2、密文圖像受損攻擊

數(shù)字圖像在傳輸過程中,難免經(jīng)過必要的數(shù)據(jù)處理或遭受人為攻擊,如壓縮、濾波、噪聲污染、破損和幾何失真等,算法應(yīng)該具有抵抗這種攻擊和干擾的能力,在密文圖像受到破損攻擊后,經(jīng)解密算法,破損部分應(yīng)該沒有擴(kuò)散,其余部分應(yīng)能正確還原,圖2所示為密文圖像破損攻擊,設(shè)定密文圖像的左上方有一塊15 ×10大小的圖像像素丟失,設(shè)丟失部分的圖像像素灰度值為0,圖2(d)所示為解密結(jié)果,可以發(fā)現(xiàn)解密圖像與明文圖像相似程度很高。

基于有限狀態(tài)斜帳篷映射的圖像加密算法

小知識(shí)之閾值函數(shù):

閾值函數(shù)定義為:Y=X-T,X≥TX+T,X≤-T0,|X|小波變換的系數(shù),T是預(yù)先選定的閾值。而閾值的量化采用固定閾值法,其定義為:T=σ2log(N),這里N為信號(hào)采樣的數(shù)目,σ為噪聲的標(biāo)準(zhǔn)偏差。