利用圖像分割思想的二維混沌映射及圖像加密算法
隨著信息技術(shù)的發(fā)展,越來(lái)越多的圖片通過(guò)互聯(lián)網(wǎng)、無(wú)線(xiàn)通信等渠道傳播。如何保護(hù)圖片的安全,防止非法攻擊,成為一個(gè)日益嚴(yán)重的問(wèn)題。傳統(tǒng)加密算法DES、IDEA、RSA等得到了成功應(yīng)用,但這些加密算法是根據(jù)文本文件加密的特點(diǎn)提出來(lái)的,在加密圖像時(shí),由于圖像具有信息量大、相鄰像素值相關(guān)性強(qiáng)等特點(diǎn),因此不能完全滿(mǎn)足圖像加密需要。為此我們今天給大家介紹一種基于圖像分割思想的二維混沌映射圖像加密算法。
一、新二維混沌映射原理和算法
1、新二維混沌映射原理
設(shè)圖像大小為N×N。首先沿圖像的對(duì)角線(xiàn)方向,將方圖分割為上下兩個(gè)等腰三角形圖像。由于等腰三角形圖像每一列的像素?cái)?shù)目和相鄰列的像素?cái)?shù)目是不同的,因此可以從水平方向,將一列中的像素插入到相鄰列的像素之間。反復(fù)該過(guò)程,依次連接,原始圖像被拉伸成為一條長(zhǎng)N2的直線(xiàn)。然后,再折疊成一個(gè)N×N的新圖像。如圖1所示,(a)為左映射,(b)為右映射。

舉例說(shuō)明:設(shè)圖像大小為4×4,如圖2所示,當(dāng)映射為左映射時(shí),則首先將圖像沿左上到右下的對(duì)角線(xiàn)方向分割為兩個(gè)等腰三角形圖像,依次將像素(3,3)插入到像素(2,2)之前,像素(2,3)插入到像素(2,2)和(1,2)之間,像素(1,3)插入到像素(1,2)和(0,2)之間……重復(fù)這個(gè)過(guò)程,即可將原圖像拉伸成為一條直線(xiàn):(3,3)、(2,2)、(2,3)、(1,2)、(1,3)、(0,2)……最后將直線(xiàn)折疊,得到映射后的新圖像。
當(dāng)映射為右映射時(shí),首先將圖像沿右上到左下的方向分割為兩個(gè)等腰三角形圖像。像素插入方向和左映射時(shí)相反。上述插入過(guò)程均采用將較長(zhǎng)的列像素插入到較短的列像素之間的方法,避免了當(dāng)列的個(gè)數(shù)為奇數(shù)時(shí),出現(xiàn)一列像素?zé)o法完成插入操作的問(wèn)題。

2、新二維混沌映射計(jì)算算法
圖像大小為N×N,設(shè)A(i,j),i,j=0,1,…,N-1為圖像中的任意一點(diǎn)像素值,l(i),i=0,1,…,N2-1,為將A(i,j)拉伸后的一維向量。由于映射是由左映射和右映射兩個(gè)子映射組成,分別給出算法如下:
左映射算法。如圖1(a)所示,左映射算法為:當(dāng)j≥i且N-j是奇數(shù)時(shí),有:

當(dāng)j≥i且N-j是偶數(shù)時(shí),有:

當(dāng)j<;i且j是偶數(shù)時(shí),有:

當(dāng)j<;i且j是奇數(shù)時(shí),有:

右映射算法??梢酝ㄟ^(guò)下列過(guò)程得到:將原圖做一次鏡像,A′表示映射后的圖像:
![]()
其中,i=0,1,…,N-1;j=0,1,…,N-1。通過(guò)左映射算法(1)~(4),得到右映射算法——折疊算法。
![]()
其中,i=0,1,…,N-1;j=0,1,…,N-1。
二、圖像加密、解密算法
映射分為左映射和右映射,其映射次數(shù)可以作為密鑰Key。如Key=1234,表示依次用左映射1次,用右映射2次,然后用左映射3次,最后用右映射4次。由于圖像是有限像素點(diǎn)的集合,像素的排列組合是有限的。因此在有限次迭代之后,加密圖像會(huì)恢復(fù)到原來(lái)的狀態(tài),即混沌映射都具有龐加萊回復(fù)性。Fridrich[10]指出,當(dāng)?shù)螖?shù)較小(如<;15)時(shí),加密算法是安全的。本文將密鑰的每一位設(shè)計(jì)為小于10的整數(shù)。由于新混沌映射的周期非常大(不小于105),這種設(shè)計(jì)是合理的。
加密算法如圖3所示。

其中K1及K2可以分別是密鑰K的一部分,也可以相同,或可互相推導(dǎo),函數(shù)F(K)為密鑰的函數(shù),輸出為擴(kuò)散函數(shù)的參數(shù)。
本文采用了一種簡(jiǎn)單的擴(kuò)散函數(shù):
![]()
其中,vk是指每一個(gè)像素的值,vk′為擴(kuò)散后的像素值,v-1′=F(K2),G(vk-1′)=5×vk-1′,L為像素灰度級(jí)。該擴(kuò)散函數(shù)結(jié)構(gòu)簡(jiǎn)單、擴(kuò)散速度快。
圖像加密算法分為三步:
(1)利用密鑰K1及算法(1)~(5),將圖像A(i,j)拉伸處理為一條直線(xiàn)l(i),其中i=0,1,…,N2-1。
(2)利用算法(6),將直線(xiàn)折疊處理,得到置亂圖像B(i,j)。
(3)利用密鑰K2及擴(kuò)散函數(shù),對(duì)置亂圖像進(jìn)行擴(kuò)散處理得到密圖。
解密算法與加密算法密鑰相同、過(guò)程相反。
由于密鑰相同,該加密算法為對(duì)稱(chēng)加密算法。
三、加密實(shí)例和安全性能分析
對(duì)L=256的lena圖進(jìn)行加密。為了研究二維混沌映射的加密效果,首先令K2=0,即不使用擴(kuò)散函數(shù)。此時(shí),加密系統(tǒng)僅僅置亂圖像,沒(méi)有改變圖像的像素值。當(dāng)Key=1時(shí),使用該映射加密之后,圖像沒(méi)有原圖的特征,如圖4(b)所示。而B(niǎo)akermap在加密次數(shù)為1時(shí),圖像特征明顯。如圖4(c)所示,當(dāng)Key=1234567890123456時(shí),密圖用肉眼已無(wú)法識(shí)別,說(shuō)明加密效果良好。密圖直方圖如圖4(d)所示。

1、安全分析
密鑰空間
由于最基本、最流行的破解方法是對(duì)密鑰進(jìn)行窮盡搜索,密鑰空間大是加密算法安全的前提。加密算法的密鑰空間(無(wú)擴(kuò)散函數(shù))如表1所示。

研究表明,密鑰空間大小只和密鑰長(zhǎng)度有關(guān),在理想情況下(計(jì)算速度允許),密鑰能無(wú)限增加。
密鑰敏感度
對(duì)用Key=1234567890123456加密的密圖,用Key1=1234567890123455解密,如圖5(a)所示。用Key2=1234567890123457解密,如圖5(b)所示??梢钥吹?,即使加密密鑰和解密密鑰僅有很小的差異(1位),也無(wú)法解密密圖,證明加密算法對(duì)密鑰非常敏感。

統(tǒng)計(jì)分析
于圖像相鄰像素之間具有很強(qiáng)的相關(guān)性,因此,如果加密后相鄰像素之間相關(guān)性越趨近于零,越能說(shuō)明加密算法的安全性。相鄰的相關(guān)系數(shù)如下:
![]()
其中x、y為兩個(gè)相鄰點(diǎn)的灰度值,

圖6為密圖像素(x,y)和(x,y+1)之間的關(guān)系。原圖的相關(guān)系數(shù)為0.9442,加密之后的相關(guān)系數(shù)為0.0017。其他相鄰點(diǎn)的相關(guān)系數(shù)如表2所示,可見(jiàn)加密后密圖像素之間的相關(guān)系數(shù)非常小。


2、擴(kuò)散機(jī)制
僅對(duì)圖像進(jìn)行像素置亂不夠安全,不能抵御已知(選擇)明文攻擊。因此,為了增強(qiáng)加密算法的安全性,需要在二維混沌映射的基礎(chǔ)上增加擴(kuò)散函數(shù)。本文采用的擴(kuò)散函數(shù)如式(7)所示,其中令v-1=F(K2)=150,增加擴(kuò)散機(jī)制之后,原圖的像素值發(fā)生改變。加密后的圖像和直方圖如圖7所示:

在增加了擴(kuò)散函數(shù)之后,為了檢驗(yàn)加密算法擴(kuò)散性,對(duì)兩個(gè)只有一個(gè)像素點(diǎn)有差異的圖像進(jìn)行NPCR(NumberofPixelsChangeRate)和UACI(UnifiedAverageChangingIntensity)分析。兩圖像的像素值分別為v1′和v2′,如果v1′(i,j)≠v2′(i,j),則D(i,j)=1

結(jié)果表明,在參數(shù)不變的情況下,即使只是兩個(gè)有一位像素不同的圖像,隨著加密次數(shù)的增加,密圖也會(huì)變得完全不同,擴(kuò)散速度非常快。如圖8(a)所示,當(dāng)加密次數(shù)n=2時(shí),兩個(gè)加密圖像便已基本不同(NPCR≈1)。

四、新映射與其他混沌映射比較
Bakermap是最典型、應(yīng)用最廣的混沌映射之一,在圖像加密領(lǐng)域得到廣泛的應(yīng)用。新映射和Bakermap比較:
(1)密鑰空間更大
介紹了Bakermap的兩種形式,但即使是Bakermap的一般形式(即密鑰不是圖像大小的因數(shù)的情況),Bakermap的密鑰空間最大僅為2N-1(N為圖像的寬),而新映射的密鑰空間只和密鑰本身長(zhǎng)度有關(guān)。只要計(jì)算速度允許,密鑰長(zhǎng)度沒(méi)有限制。
(2)對(duì)密鑰變化更加敏感
新映射只要密鑰稍有變化,密圖就會(huì)截然不同。因此,用相似但不相同的密鑰無(wú)法對(duì)密圖解密。而使用相似的密鑰也可以對(duì)Bakermap加密密圖進(jìn)行解密。
(3)加密算法更加簡(jiǎn)單
Bakermap一般形式下的算法具有非常復(fù)雜的形式。加密算法比較復(fù)雜。而新映射算法簡(jiǎn)單,加密算法非常簡(jiǎn)潔。
(4)能滿(mǎn)足實(shí)時(shí)加密需要
在一臺(tái)PentiumIII(M)1.13GHz的筆記本電腦上仿真結(jié)果表明,未優(yōu)化的VC程序,Key=1234567890123456時(shí),加密速度約為3Mb/s。
本文根據(jù)折疊、拉伸的思想,得到一種新的二維混沌映射,提出一種新的圖像加密算法。仿真結(jié)果表明:圖像加密算法密鑰為64bit時(shí),密鑰空間為1.84×1019,加密速度約為3Mb/s,基本滿(mǎn)足實(shí)時(shí)圖像加密需要。使用新映射的優(yōu)點(diǎn)是:
(1)算法非常簡(jiǎn)單,容易編程實(shí)現(xiàn)。
(2)二維混沌映射是可逆的。
(3)基于二維混沌映射的加密/解密算法沒(méi)有信息損失。
(4)具有與其它混沌映射一樣的性質(zhì),能應(yīng)用于信息安全的其他領(lǐng)域。
(5)加密的密鑰基本沒(méi)有限制,在速度允許的前提下,可以為任意整數(shù)(每位最好<10)。
(6)密圖和原圖大小一致,沒(méi)有大小差異。
(7)能滿(mǎn)足實(shí)時(shí)需要,適合大尺寸圖像加密。
(8)加密算法簡(jiǎn)單,容易硬件實(shí)現(xiàn)。
由于壓縮后的圖像也可以表示為二維矩陣形式,因此,混沌映射加密算法如何結(jié)合流行的圖像壓縮技術(shù),對(duì)壓縮后的圖像進(jìn)行加密,將是一個(gè)值得探討的問(wèn)題。
小知識(shí)之圖像分割
圖像分割就是把圖像分成若干個(gè)特定的、具有獨(dú)特性質(zhì)的區(qū)域并提出感興趣目標(biāo)的技術(shù)和過(guò)程。它是由圖像處理到圖像分析的關(guān)鍵步驟?,F(xiàn)有的圖像分割方法主要分以下幾類(lèi):基于閾值的分割方法、基于區(qū)域的分割方法、基于邊緣的分割方法以及基于特定理論的分割方法等。








