混沌圖像加密算法之圖像相關性

利用圖像之間的相關性,我們提出了一種基于混沌的圖像加密算法,利用圖像相鄰像素點具有較高相關性,對傳統(tǒng)置亂擴散加密框架進行了改進。該算法只需要一次置亂操作和一次擴散操作在保證算法安全性的前提下,有效地減少了加密時間。

一、圖像的相關性及置亂操作

基于置亂擴散框架的加密算法需要進行若干輪的加密過程,且每一輪加密過程又分別包括若干輪的置亂和擴散,從而達到比較安全的加密效果通常來說,明文具有較高相關性,表現(xiàn)為相鄰像素點的灰度值的差值均在一個較小范圍的鄰域內置亂操作的作用之一就是降低像素點之間的相關性。

在傳統(tǒng)的置亂過程中,將所有像素點看成一個集合,然后使用二維混沌映射對這個集合進行置亂操作在進行置亂操作中,若只進行一次置亂操作,在得到的中間密文中很多原始相鄰的像素點依然相鄰,具有較高的相關性,這樣往往需要多輪迭代才能有效地降低圖像的相關性,進而達到理想的效果通常這樣的方法往往需要更多的運算時間。

為此,本文提出一種將4個相鄰的像素點“分而治之”的思想進行置亂對于相鄰像素點先進行分離,然后再進行置亂,置亂之后再組合,有效地減少了單輪加密操作中的置亂輪數(shù),從而減少了加密時間。

定義1 對于一個長和寬均為w的256級灰度圖像,設圖像中所有像素點p( i,j)的集合為:

若P上存在一個一一映射f,滿足:

即,使得P中的所有元素分別映射到SubA,SubB,Sub C和Sub D子集合,則稱,為分離映射。

分離映射,可以將原始集合中相鄰的4個像素點被分離到4個子集中的對應位置。
定義2 對于集合P上的分離映射f,一定存在一個f的逆映射f-1。

則逆映射f-1定義了4個子集中的像素點與原始像素點集合中相應位置的對應關系。

設存在一個集合S(i,j),表示4個子集Sub A,SubB,Sub c和SubD中具有相同位置的4個像素點的集合,即:

則在上述定義的基礎上,設計一個置亂操作:

1)分離映射,將明文的像素點集合映射到4個子集中對4個子集像素點使用不同的參數(shù)進行置亂,得到4種不同的置亂效果。

2)利用隨機序列控制4個子集對應位置像素點S(i,j)進行旋轉操作,即對SubA (i,j),SubB(i,j),Sub C(i,j)和SubD(i,j)4個像素點進行位置旋轉置換。

隨機旋轉規(guī)則如圖2所示對子集中所有像素點進行旋轉操作之后,可以使用f-l將4個子集中的像素點映射到原始像素點集合中,結束置亂操作。

為了對比傳統(tǒng)置亂操作和上述置亂操作的效果,使用512×512的Lena圖進行實驗對比對于傳統(tǒng)的置亂方法,以參數(shù)為(3,3)的Cat Map對測試圖進行一輪置亂操作,結果如圖3b所示圖3c為使用本文提出的置亂方法進行一輪置亂操作的效果分別使用參數(shù)為(1,6),(2,7),(3,8)和(4,9)的Cat Map對4個子集置亂后,進行對應位置像素點的旋轉操作控制旋轉的隨機序列由Logistic映射生成,參數(shù)選擇x0=0.123 400 123 432 3 α=4。

從表1可以看出,同樣進行一輪置亂操作,由本文提出的置亂方法得到的置亂圖像的相關性系數(shù)遠遠低于傳統(tǒng)置亂方法得到的相關性系數(shù)。

二、基于圖像相關性的混沌圖像加密算法

本文采用經(jīng)典加密框架,整個加密過程分為置亂階段和擴散階段。

1、置亂階段

在置亂階段,使用Cat Map對特定的像素點集進行置亂,其中p,g為Cat Map的控制參數(shù)。

第1步將原始圖像的像素集根據(jù)分離映射f映射到4個像素子集中它們分別為SubA,SubB,Sub C和Sub D。

第2步對4個像素點子集SubA,SubB,Sub c和Sub D以不同的參數(shù)使用Cat Map進行置亂,對應的Cat Map參數(shù)分別為(127,234),(99 ,111),(233 ,55),(27 ,222)設得到4個子集為Sub A',SubB',Sub C'和SubD'。

第3步使用Logistic Map生成混沌序列,f(k),k∈[0, 65 535]式(2)中α=4.O, xo=0.123 400 123 432 3。

根據(jù)式(3),對f(k)進行量化操作,使生成的新的隨機序列rand,cs(k)的元素的值域為[O,3]。

第4步設置亂后的像素點集的相對位置。

對4個子集中對應位置的像素點進行旋轉操作即對Sub A'(i,j),SubB'(i,j),Sub c'(i,j)和SubD'(i,j) 4個像素點順時針旋轉rand_cs(k)次,如圖2所示設旋轉后得到的4個像素點子集為Sub Au''(i,j),SubB''(i,j),Sub C''(i,j)和Sub D''(i,j)。

第5步根據(jù)定義2,將SubA''(i,j),SubB''(i,j),Sub C''(i,j)和SubD''(i,j)映射到原始圖像大小的像素點集合中,設其為permuted f m,n),其中O≤m≤w-l,O≤m≤w-l,置亂階段結束。

2、擴散階段

從安全性考慮,通常要求擴散過程對于明文的微小變化要足夠的敏感并且能夠將這種微小的變化擴散到其他像素點中去即當前像素值的變化需要與前面像素值相關,使得每一個微小的變化都可以影響到后續(xù)的像素點然后通過置亂操作,將所有變化分散到像素點集的不同位置由此,本文采取一種改進的Logistic映射進行擴散操作:

式中:d-key為擴散階段的密鑰,這里設d-key=0.177 234 534 242 4;a =4為Logistic映射的控制參數(shù)j。pi為置亂后的第z個像素點j ci是擴散后的第f個像素點通過式(4) ci+和ci的關系被建立起來,即當前處理的像素點總是和前一個像素點的值相關,從而使其對于像素點值的變化具有較高的敏感性。

三、混沌圖像加密算法之圖像相關性實驗結果

實驗環(huán)境為為Intel 2.5 GHz CPU,2(B內存操作系統(tǒng)為VVindows XP,編譯環(huán)境為Visual C++6.0。

1、柱狀圖分析

柱狀圖顯示了測試圖像的像素值的分布信息加密后圖像的柱狀圖應該是均勻平滑的,本文采用Lena圖作為測試圖。

2、相關性分析

為了對本文提出的算法進行相關性分析,試驗中相關性系數(shù)的計算按照方法計算得到的明文和密文的相關性系數(shù)如表2所示通過表2可以看出,密文的3個方向的相關性系數(shù)在O的一個微小鄰域內,相對明文減少很多為明文和密文的相關性散點圖。

3、差分攻擊分析

好的加密算法應該對明文的1b改變有兩種準則判斷這種敏感性,它們是NPCR和UACI以Lena圖為例,將原始的明文和在明文的右下像素點改變1b的圖像進行測試對比,即把像素點a[511][511]從‘‘01101100”改為"01101101”本算法和NPCR和UACI的信息。

從表3看出,本算法在第4輪NPCR可以達到99.6%,UACI在第3輪可以達到33.4%的理想值。本算法需要更少的輪數(shù)就可以達到更高的安全狀態(tài)。

4、速度分析

本算法在每一輪加密中,只需要一次置亂操作和一次擴散操作對于512×512大小、256級灰度的Lena圖來說,只需要21.8ms。

小知識之圖像相關圖像相關,圖像在不同相對位置上相似性程度和相關匹配程度的度量。圖像f(x,y)和g(x,Y)的相關兩幅圖像之間的相關稱為互相關;同一圖像的相關( f和g為同一圖像)為自相關。