利用圖像分割思想的二維混沌映射及圖像加密算法

隨著信息技術(shù)的發(fā)展,越來越多的圖片通過互聯(lián)網(wǎng)、無線通信等渠道傳播。如何保護(hù)圖片的安全,防止非法攻擊,成為一個日益嚴(yán)重的問題。傳統(tǒng)加密算法DES、IDEA、RSA等得到了成功應(yīng)用,但這些加密算法是根據(jù)文本文件加密的特點(diǎn)提出來的,在加密圖像時,由于圖像具有信息量大、相鄰像素值相關(guān)性強(qiáng)等特點(diǎn),因此不能完全滿足圖像加密需要。為此我們今天給大家介紹一種基于圖像分割思想的二維混沌映射圖像加密算法。

一、新二維混沌映射原理和算法

1、新二維混沌映射原理

設(shè)圖像大小為N×N。首先沿圖像的對角線方向,將方圖分割為上下兩個等腰三角形圖像。由于等腰三角形圖像每一列的像素數(shù)目和相鄰列的像素數(shù)目是不同的,因此可以從水平方向,將一列中的像素插入到相鄰列的像素之間。反復(fù)該過程,依次連接,原始圖像被拉伸成為一條長N2的直線。然后,再折疊成一個N×N的新圖像。如圖1所示,(a)為左映射,(b)為右映射。

利用圖像分割思想的二維混沌映射及圖像加密算法

舉例說明:設(shè)圖像大小為4×4,如圖2所示,當(dāng)映射為左映射時,則首先將圖像沿左上到右下的對角線方向分割為兩個等腰三角形圖像,依次將像素(3,3)插入到像素(2,2)之前,像素(2,3)插入到像素(2,2)和(1,2)之間,像素(1,3)插入到像素(1,2)和(0,2)之間……重復(fù)這個過程,即可將原圖像拉伸成為一條直線:(3,3)、(2,2)、(2,3)、(1,2)、(1,3)、(0,2)……最后將直線折疊,得到映射后的新圖像。

當(dāng)映射為右映射時,首先將圖像沿右上到左下的方向分割為兩個等腰三角形圖像。像素插入方向和左映射時相反。上述插入過程均采用將較長的列像素插入到較短的列像素之間的方法,避免了當(dāng)列的個數(shù)為奇數(shù)時,出現(xiàn)一列像素?zé)o法完成插入操作的問題。

利用圖像分割思想的二維混沌映射及圖像加密算法

2、新二維混沌映射計算算法

圖像大小為N×N,設(shè)A(i,j),i,j=0,1,…,N-1為圖像中的任意一點(diǎn)像素值,l(i),i=0,1,…,N2-1,為將A(i,j)拉伸后的一維向量。由于映射是由左映射和右映射兩個子映射組成,分別給出算法如下:

左映射算法。如圖1(a)所示,左映射算法為:當(dāng)j≥i且N-j是奇數(shù)時,有:

利用圖像分割思想的二維混沌映射及圖像加密算法

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

利用圖像分割思想的二維混沌映射及圖像加密算法

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

利用圖像分割思想的二維混沌映射及圖像加密算法

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

利用圖像分割思想的二維混沌映射及圖像加密算法

右映射算法??梢酝ㄟ^下列過程得到:將原圖做一次鏡像,A′表示映射后的圖像:

利用圖像分割思想的二維混沌映射及圖像加密算法

其中,i=0,1,…,N-1;j=0,1,…,N-1。通過左映射算法(1)~(4),得到右映射算法——折疊算法。

利用圖像分割思想的二維混沌映射及圖像加密算法

其中,i=0,1,…,N-1;j=0,1,…,N-1。

二、圖像加密、解密算法

映射分為左映射和右映射,其映射次數(shù)可以作為密鑰Key。如Key=1234,表示依次用左映射1次,用右映射2次,然后用左映射3次,最后用右映射4次。由于圖像是有限像素點(diǎn)的集合,像素的排列組合是有限的。因此在有限次迭代之后,加密圖像會恢復(fù)到原來的狀態(tài),即混沌映射都具有龐加萊回復(fù)性。Fridrich[10]指出,當(dāng)?shù)螖?shù)較?。ㄈ?amp;lt;15)時,加密算法是安全的。本文將密鑰的每一位設(shè)計為小于10的整數(shù)。由于新混沌映射的周期非常大(不小于105),這種設(shè)計是合理的。

加密算法如圖3所示。

利用圖像分割思想的二維混沌映射及圖像加密算法

其中K1及K2可以分別是密鑰K的一部分,也可以相同,或可互相推導(dǎo),函數(shù)F(K)為密鑰的函數(shù),輸出為擴(kuò)散函數(shù)的參數(shù)。

本文采用了一種簡單的擴(kuò)散函數(shù):

利用圖像分割思想的二維混沌映射及圖像加密算法

其中,vk是指每一個像素的值,vk′為擴(kuò)散后的像素值,v-1′=F(K2),G(vk-1′)=5×vk-1′,L為像素灰度級。該擴(kuò)散函數(shù)結(jié)構(gòu)簡單、擴(kuò)散速度快。

圖像加密算法分為三步:

(1)利用密鑰K1及算法(1)~(5),將圖像A(i,j)拉伸處理為一條直線l(i),其中i=0,1,…,N2-1。

(2)利用算法(6),將直線折疊處理,得到置亂圖像B(i,j)。

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

解密算法與加密算法密鑰相同、過程相反。

由于密鑰相同,該加密算法為對稱加密算法。

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

對L=256的lena圖進(jìn)行加密。為了研究二維混沌映射的加密效果,首先令K2=0,即不使用擴(kuò)散函數(shù)。此時,加密系統(tǒng)僅僅置亂圖像,沒有改變圖像的像素值。當(dāng)Key=1時,使用該映射加密之后,圖像沒有原圖的特征,如圖4(b)所示。而Bakermap在加密次數(shù)為1時,圖像特征明顯。如圖4(c)所示,當(dāng)Key=1234567890123456時,密圖用肉眼已無法識別,說明加密效果良好。密圖直方圖如圖4(d)所示。

1c

1、安全分析

密鑰空間

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

利用圖像分割思想的二維混沌映射及圖像加密算法

研究表明,密鑰空間大小只和密鑰長度有關(guān),在理想情況下(計算速度允許),密鑰能無限增加。

密鑰敏感度

對用Key=1234567890123456加密的密圖,用Key1=1234567890123455解密,如圖5(a)所示。用Key2=1234567890123457解密,如圖5(b)所示。可以看到,即使加密密鑰和解密密鑰僅有很小的差異(1位),也無法解密密圖,證明加密算法對密鑰非常敏感。

利用圖像分割思想的二維混沌映射及圖像加密算法

統(tǒng)計分析

于圖像相鄰像素之間具有很強(qiáng)的相關(guān)性,因此,如果加密后相鄰像素之間相關(guān)性越趨近于零,越能說明加密算法的安全性。相鄰的相關(guān)系數(shù)如下:

利用圖像分割思想的二維混沌映射及圖像加密算法

其中x、y為兩個相鄰點(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所示,可見加密后密圖像素之間的相關(guān)系數(shù)非常小。

利用圖像分割思想的二維混沌映射及圖像加密算法

利用圖像分割思想的二維混沌映射及圖像加密算法

2、擴(kuò)散機(jī)制

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

利用圖像分割思想的二維混沌映射及圖像加密算法

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

利用圖像分割思想的二維混沌映射及圖像加密算法

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

利用圖像分割思想的二維混沌映射及圖像加密算法

四、新映射與其他混沌映射比較

Bakermap是最典型、應(yīng)用最廣的混沌映射之一,在圖像加密領(lǐng)域得到廣泛的應(yīng)用。新映射和Bakermap比較:

(1)密鑰空間更大

介紹了Bakermap的兩種形式,但即使是Bakermap的一般形式(即密鑰不是圖像大小的因數(shù)的情況),Bakermap的密鑰空間最大僅為2N-1(N為圖像的寬),而新映射的密鑰空間只和密鑰本身長度有關(guān)。只要計算速度允許,密鑰長度沒有限制。

(2)對密鑰變化更加敏感

新映射只要密鑰稍有變化,密圖就會截然不同。因此,用相似但不相同的密鑰無法對密圖解密。而使用相似的密鑰也可以對Bakermap加密密圖進(jìn)行解密。

(3)加密算法更加簡單

Bakermap一般形式下的算法具有非常復(fù)雜的形式。加密算法比較復(fù)雜。而新映射算法簡單,加密算法非常簡潔。

(4)能滿足實(shí)時加密需要

在一臺PentiumIII(M)1.13GHz的筆記本電腦上仿真結(jié)果表明,未優(yōu)化的VC程序,Key=1234567890123456時,加密速度約為3Mb/s。

本文根據(jù)折疊、拉伸的思想,得到一種新的二維混沌映射,提出一種新的圖像加密算法。仿真結(jié)果表明:圖像加密算法密鑰為64bit時,密鑰空間為1.84×1019,加密速度約為3Mb/s,基本滿足實(shí)時圖像加密需要。使用新映射的優(yōu)點(diǎn)是:

(1)算法非常簡單,容易編程實(shí)現(xiàn)。

(2)二維混沌映射是可逆的。

(3)基于二維混沌映射的加密/解密算法沒有信息損失。

(4)具有與其它混沌映射一樣的性質(zhì),能應(yīng)用于信息安全的其他領(lǐng)域。

(5)加密的密鑰基本沒有限制,在速度允許的前提下,可以為任意整數(shù)(每位最好<10)。

(6)密圖和原圖大小一致,沒有大小差異。

(7)能滿足實(shí)時需要,適合大尺寸圖像加密。

(8)加密算法簡單,容易硬件實(shí)現(xiàn)。

由于壓縮后的圖像也可以表示為二維矩陣形式,因此,混沌映射加密算法如何結(jié)合流行的圖像壓縮技術(shù),對壓縮后的圖像進(jìn)行加密,將是一個值得探討的問題。

小知識之圖像分割

圖像分割就是把圖像分成若干個特定的、具有獨(dú)特性質(zhì)的區(qū)域并提出感興趣目標(biāo)的技術(shù)和過程。它是由圖像處理到圖像分析的關(guān)鍵步驟。現(xiàn)有的圖像分割方法主要分以下幾類:基于閾值的分割方法、基于區(qū)域的分割方法、基于邊緣的分割方法以及基于特定理論的分割方法等。