圖像加密算法之基于二維可逆映射的加密

基于二維可逆映射的圖像加密算法可以通過置亂圖像像素位置實現(xiàn)圖像文件加密。二維可逆映射可以高效地實現(xiàn)網(wǎng)像像素置亂。二維可逆映射由壓縮拉仲和折疊兩個子映射組成。壓縮拉仲映射,使原始圖像變換成線,折疊映射使線變換成罔。所有可逆映射構(gòu)成了可逆映射集合。經(jīng)過擴散處理改變像素值,實現(xiàn)圖像文件加密。

一、二維可逆映射原理和加密算法

二維可逆映射利用了圖像的一個重要性質(zhì):像素能通過插入到其他像素之間從而壓縮為線。設(shè)圖像大小為M×N。通過映射首先將原圖像壓縮拉伸為長MN的直線,然后再折疊成一個M×N的圖像。

如圖1所示。(a)為上下壓縮對角線折疊映射,(b)為左右壓縮渦卷折疊映射。

圖像加密算法之基于二維可逆映射的加密

設(shè)圖像大小為M×N,設(shè)A(i,j),i=1,2,…,N;j=1,2,…,M為圖像中的任意一點,l(i),i=1,…,MN為將A(i,j)拉伸后的向量,B(i,j),i=l,2,…,N;j=1,2,…,M為折疊后生成的密圖坐標為(i,j)的像索點。[x]是取最接近于X的整數(shù)。

1、壓縮算法

本文只在水平和垂直兩個方向推導(dǎo)了壓縮算法,分別為上下壓縮映射和左右壓縮映射。

(1)上下壓縮算法

如圖1(a)所示,上下壓縮映射算法如下:

首先定義函數(shù):

圖像加密算法之基于二維可逆映射的加密

則上下壓縮算法為:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

(2)左右壓縮算法

該壓縮算法無論形式還是推導(dǎo)過程都與上一種類似。

如圖1所示,左右壓縮映射算法如下:

首先定義函數(shù):

圖像加密算法之基于二維可逆映射的加密

則左右壓縮算法為:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

2、折疊算法

推導(dǎo)了兩類折疊算法,分別是對角線折疊和渦卷折疊。

其中每一種根據(jù)不同的起點又有四種變換,這樣一共是12種折疊算法。四處起點分別為:左上、右上、左下和右下。本文只對兩類算法在左上起點處給出了數(shù)學(xué)公式。

(1)對角線折疊算法

如圖1(a)所示,對角線折疊算法如下:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

式中,lmin表示M和N中的較小值,lmin表示M和N中的較大值。

(2)渦卷折疊算法

如圖1(b)所示,渦卷折疊算法如下:

定義函數(shù):

圖像加密算法之基于二維可逆映射的加密

則渦卷折疊算法為:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

其中:

圖像加密算法之基于二維可逆映射的加密

式中,lmin表示M和N中的較小值,lmin表示M和N中的較大值。

3、二維可逆映射集

上面介紹了兩種壓縮算法:上下壓縮和左右壓縮;兩類折疊算法:對角線折疊和渦卷折疊;而每類折疊依據(jù)起點不同又分為四種,即折疊算法一共有2×4=8種。將壓縮和折疊組合成可逆映射,則一共有2×8 =16種映射。將16種映射用A,B.…,O,P表示,其構(gòu)成二維可逆映射集,用Z表示。即:

圖像加密算法之基于二維可逆映射的加密

見表1所示:

圖像加密算法之基于二維可逆映射的加密

如E表示上下壓縮和左上起點渦卷折疊組合的二維可逆映射。

二、使用二維可逆映射實現(xiàn)圖像的加密和解密密鑰設(shè)計

由于各種映射構(gòu)成了二維可逆映射集。將子映射種類和映射次數(shù)設(shè)計為密鑰Keyo如Key;A1F2K3P4,表示圖像依次A映射1次,F(xiàn)映射2次,然后用K映射3次,最后用P映射4次。其中A.F、K和P所代表的映射種類可查閱表1。為了保證加密效果,每一個部分密鑰值都小于10。

加密算法如圖2所示:

圖像加密算法之基于二維可逆映射的加密

圖像加密算法所采用的擴散函數(shù)為:

圖像加密算法之基于二維可逆映射的加密

式中,A(i,j)是指擴散前每一個像素的值,A’(i,j)為擴散后的像素值,256灰度圖L= 256。

圖像加密算法分為三步:

1)利用密鑰及公式(1)一(4)。將圖像A(i,j)拉仲成一條直線l(i),i=0,1,…,MN -1。

2)利用公式(6)一(9),將直線折疊,得到置亂圖像C(i,j)。

3)利用擴散函數(shù),對置亂圖像進行處理得到密圖。

如圖3所示,圖像解密算法與加密算法相反,解密過程與加密過程對稱,且解密密鑰與加密密鑰相同。

圖像加密算法之基于二維可逆映射的加密

三、加密實例和安全性分析

通過運行仿真程序,得到了較好的加密結(jié)果;仿真結(jié)果表明該方法安全性較好。

1、運用二維可逆映射加密實例

如圖4所示,對256灰度圖文件加密。為了研究二維可逆映射的加密效果,沒有加入擴散函數(shù)。此時,加密系統(tǒng)僅僅置亂圖像,沒有改變圖像的像素值(直方圖不變),如圖4(d)。如圖4(b)所示當(dāng)Keyi=A1時,圖像已沒有原圖 特征。

如圖4(c)所示當(dāng)Key2=AIM2C3P4F5J6H7L8時,密圖像素平均分布,加密效果良好。

圖像加密算法之基于二維可逆映射的加密

2、安全性能分析

密鑰空間分析

由于最基本、最流行的破解方法是對密鑰進行窮盡搜索。密鑰空間大是加密算法安全的前提。加密算法的密鑰空間如表2所示。研究表明,密鑰空間大小只和密鑰長度有關(guān),在理想情況下(計算速度允許),可認為密鑰能無限增加。

圖像加密算法之基于二維可逆映射的加密

密鑰敏感度

當(dāng)加密密鑰Key=AIM2C3P4F5J6H71J8加密時,用解密密鑰Key1=AIM2C3P4F5J6H7K8和Key2=AIM2C3P4F5J6H7 L9分別解密。如圖5所示,即使加密密鑰和解密密鑰僅一位有最小的差異,也無法解密圖像,證明對密鑰差異非常敏感。

圖像加密算法之基于二維可逆映射的加密

相關(guān)性統(tǒng)計分析

由于原始圖像相鄰像索之問具有很強的相關(guān)性,而二維可逆映射置亂像素后,一個很重要的特性就是改變了原來相鄰像索間的聯(lián)系。如果加密圖相鄰像素之間相關(guān)性變小,說明密圖安全性變強。

用下列兩個公式計算他們的相關(guān)系數(shù):

圖像加密算法之基于二維可逆映射的加密

式中x、y為兩個相鄰點的灰度值。

原圖的相關(guān)系數(shù)為0. 9578.加密之后的相關(guān)系數(shù)為0.0047,證明密圖相鄰像素之間相關(guān)度接近于零。相鄰點的相關(guān)系數(shù)如表3所示,說明密圖相鄰像素之間相關(guān)性很小。

圖像加密算法之基于二維可逆映射的加密

3、擴散算法

僅對圖像進行置亂,而不改變像素值足不安全的,很難抵御朋文攻擊。因此為了增強加密算法的安全性,增加擴散函數(shù)。

見式(10)。將置亂圖像進行一次異或變換(擴散算法),可得到各灰度級下的像素點數(shù)趨于相同,這樣更好的隱藏了圖像的信息,從而可以抵御明文攻擊。加密后,密圖和直方圖分別如圖6(a)、(b)所示。

圖像加密算法之基于二維可逆映射的加密

四、與其他混沌加密技術(shù)的比較

和其他混沌映射比較具有:

①更大的密鑰空間

如Baker map最大為2N-1(N為圖像的寬),而本加密的密鑰空間理論上只和密鑰長度有關(guān),只要計算速度允許,秘鑰長度可隨之增加。

②對密鑰變化更敏感

本圖像加密算法將密鑰設(shè)計為整個圖像拉伸、折疊的數(shù)目,因此只要秘鑰稍有變化,密圖就會截然不同。但其他二維混沌映射基本都將圖像分塊的數(shù)目設(shè)計為密鑰,拉伸、折疊操作都是對部分圖像進行的。因此,用相似的密鑰可以解密密圖,降低了加密安全性。

③加密算法更加簡單、清晰,易于實現(xiàn)

如Baker map的一般形式下的算法具有非常復(fù)雜的形式。而本加密算法非常簡單,易于實現(xiàn)。

④加密速度快,能夠?qū)崿F(xiàn)實時加密

在一臺Pentium M l.3Gffz的筆記本電腦上仿真表明,未優(yōu)化的二維可逆映射的VC程序,運行速度約為3Mbpso能滿足實時加密需要。

小知識之二維

在一個平面上的內(nèi)容就是二維。 二維即左右、上下兩個方向,不存在前后。在一張紙上的內(nèi)容就可以看做成是二維。 即只有面積,沒有立體。二維是平面技術(shù)的一種,例如普通的平面動漫,稱之為二維動漫、簡稱二維。(富有立體感的是三維)。另外,腦海里的想象也可看做二維。