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

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

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

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

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

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

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

1、壓縮算法

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

(1)上下壓縮算法

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

首先定義函數(shù):

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

則上下壓縮算法為:

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

其中:

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

其中:

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

(2)左右壓縮算法

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

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

首先定義函數(shù):

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

則左右壓縮算法為:

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

其中:

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

其中:

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

2、折疊算法

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

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

(1)對(duì)角線折疊算法

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

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

其中:

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

其中:

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

其中:

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

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

(2)渦卷折疊算法

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

定義函數(shù):

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

則渦卷折疊算法為:

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

其中:

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

其中:

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

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

3、二維可逆映射集

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

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

見(jiàn)表1所示:

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

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

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

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

加密算法如圖2所示:

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

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

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

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

圖像加密算法分為三步:

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

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

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

如圖3所示,圖像解密算法與加密算法相反,解密過(guò)程與加密過(guò)程對(duì)稱(chēng),且解密密鑰與加密密鑰相同。

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

三、加密實(shí)例和安全性分析

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

1、運(yùn)用二維可逆映射加密實(shí)例

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

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

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

2、安全性能分析

密鑰空間分析

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

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

密鑰敏感度

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

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

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

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

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

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

式中x、y為兩個(gè)相鄰點(diǎn)的灰度值。

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

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

3、擴(kuò)散算法

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

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

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

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

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

①更大的密鑰空間

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

②對(duì)密鑰變化更敏感

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

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

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

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

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

小知識(shí)之二維

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