圖像文件加密方法之可逆二維混沌映射

如何保護(hù)圖像的安全,防止非法攻擊,我們提出了一種用于圖像文件加密的可逆二維混沌映射,該映射由左映射和右映射兩個子映射組成。通過對圖像文件的拉伸和折疊處理,實(shí)現(xiàn)了圖像文件的混沌加密。

一、新的二維可逆混沌映射

設(shè)圖像為L級灰度圖,大小為N×N,如圖1所示。從對角線方向?qū)D像分為上下兩個部分并重新組合成一個平行四邊形。利用四邊形的列像素數(shù)目與相鄰列的像素數(shù)目差,將某列中的像素水平插入到相鄰列像素之間。反復(fù)該過程,依次連接,將圖像拉伸成為一列長為Nz的直線,然后將它折疊成為N×N的圖像。

下面舉例說明左映射。圖2(a)中圖像大小為偶數(shù)4×4,(0,0)被插入到(1,1)和(0,1)當(dāng)中,(2,2)被插入到(3,3)和(2,3)當(dāng)中…,經(jīng)過拉伸得到一個數(shù)列(1,1),(O,o),(0,1),(3,3),(2,2)--,然后折疊得到密圖。為了保證兩個三角形的每一列都能插入到后一列之中,將像素插入改為從第二列開始。上三角形的倒數(shù)第二列插入到最后一列之中。重復(fù)上述過程,得到密圖。

右映射時,沿從右到左的方向?qū)D像像素進(jìn)行操作,其過程與左映射水平對稱。

二、二維混沌映射算法

圖像大小為N×N,設(shè)A(i,j),i,j=0,1,…,N-1為圖像中的任意一點(diǎn)像素值,L(i),i=0,1,…,N2—1為將Ai,j拉伸后的一維向量。

1、左映射算法

如圖1(a)所示,左映射算法是,當(dāng)j≥i,N和j同時為奇數(shù)或同時為偶數(shù)時,當(dāng)j≥i,N和j不同時為奇數(shù)或偶數(shù)時,當(dāng)j<i,j是偶數(shù)時,當(dāng)j<i,J是奇數(shù)時:

2、右映射算法

右映射算法可以通過下列過程得到:

將原圖作一次鏡像,A'表示變換后的圖像式中:i=0,1,…,N- 1;j=0,l,…,N- 1。

通過左映射算法公式(1)~(4),可得到右映射算法。

3、折疊算法

式中:i=0,l,…,N- l;j=0,1,…,N- 1。

三、圖像文件加密和解密算法

映射分為左映射和右映射,其映射次數(shù)可以作為密鑰Key。例如Key=1234,表示依次用左映射1次,用右映射2次,然后用左映射3次,最后用右映射4次。加密算法如圖3所示。其中K1和K2可以分別是密鑰K的一部分,也可以相同,或可互相推導(dǎo)。函數(shù)F(K)為密鑰的函數(shù),其輸出為擴(kuò)散函數(shù)的參數(shù)。

式中:vk為每一個像素的值;Vk'為擴(kuò)散后的像素值v-l=F(K2);G(V'k-1)=5×v'-1;256灰度圖L=256。

加密算法可分為三步:

(1)利用密鑰Ki及式(1)~(5),將圖像A(i,j)拉伸成一條直線L(i),i=0,1,…,N2—1。

(2)利用式(6)折疊直線得到置亂圖像B(i,j)。

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

圖像解密算法與加密算法相反,如圖4所示。密鑰與加密過程的密鑰相同,因此該系統(tǒng)為對稱加密系統(tǒng)。

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

如圖5所示,對lena256灰度圖進(jìn)行加密。為了研究二維混沌映射的加密效果,首先令K2=0,即不使用擴(kuò)散函數(shù)。此時,加密系統(tǒng)僅僅置亂圖像,沒有改變圖像的像素值(直方圖不變)。

即使Key=1,使用該映射加密之后,圖像也沒有原圖的特征。而Baker map等在加密次數(shù)為1時,原圖特征依然明顯。如5(b)所示,當(dāng)Key =1234567890123456時,密圖像素隨機(jī)分布,加密效果良好。

1、安全分析

密鑰空間分析

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

密鑰敏感度測試

對用Key=1234567890123456加密的密圖來說,用KeYi=1234567890123455解密,用Key2=1234567890123457解密,如圖6(b)所示口即使加密密鑰與解密密鑰僅有很小的差異,也無法解密密圖,可見算法對密鑰非常敏感。

統(tǒng)計(jì)分析

由于圖像相鄰像素之間具有很強(qiáng)的相關(guān)性,因此,如果加密后相鄰像素之間相關(guān)性趨近于零,能說明加密算法的安全性較強(qiáng)。計(jì)算相鄰點(diǎn)的相關(guān)系數(shù)。圖7為密圖像素(x,y)與(x,y+l)之間的關(guān)系。原圖的相關(guān)系數(shù)為0. 9442,加密之后的相關(guān)系數(shù)為0. 00540其它相鄰點(diǎn)的相關(guān)系數(shù)如表2所示。加密后密圖像素之間的相關(guān)系數(shù)非常小。

2、擴(kuò)散算法

僅對圖像進(jìn)行置亂是不夠安全的,不能抵御明文攻擊。為了增強(qiáng)加密算法的安全性,需要在二維混沌映射的基礎(chǔ)上增加擴(kuò)散函數(shù)。

對原圖像只有一個像素點(diǎn)有差異的兩個密圖進(jìn)行NPCR和UACI分析。如圖9和圖10所示。

當(dāng)加密次數(shù)n=2時,NPCR≈1。在參數(shù)不變的情況下,兩個有一個像素不同的圖像,隨著加密次數(shù)的增加,密圖變得完全不同,兩個原圖的差別擴(kuò)散到密圖的整個區(qū)域。

小知識之映射

映射,或者射影,在數(shù)學(xué)及相關(guān)的領(lǐng)域經(jīng)常等同于函數(shù)。 基于此,部分映射就相當(dāng)于部分函數(shù),而完全映射相當(dāng)于完全函數(shù)。