二值圖像加密之Arnold變換加密

在數(shù)字水印方案中,單純地用各種信息隱藏加密算法對(duì)秘密信息進(jìn)行加密是不安全的,因?yàn)楣粽咧灰平饬思用芩惴?,就可能直接提取出秘密信息。針?duì)這一點(diǎn),我們提出在秘密信息隱藏之前,先對(duì)其進(jìn)行置亂處理,使其失去本身原有的面目,再隱藏到載體中,以確保信息的安全性。以Fibonacci變換和Arnold變換的實(shí)驗(yàn)結(jié)果闡述了數(shù)字圖像置亂方法在數(shù)字水印中的作用,并提了出一種利用Arnold反變換恢復(fù)圖像的方法。

一、數(shù)字圖像置亂的目的

到目前為止,比較成熟的信息隱藏算法基本上都是以圖像作為載體的。圖像置亂,顧名思義,就是把圖像打亂,隱藏原始圖像的真實(shí)內(nèi)容。數(shù)字圖像置亂和信息文件加密思想類似,它主要是通過對(duì)數(shù)字圖像的像素位置做變換來“擾亂”圖像,使其變得面目全非、雜亂無章,從而隱藏圖像所要表達(dá)的真實(shí)信息。圖像置亂可以達(dá)到兩個(gè)目的:

1、加密處理

圖像置亂變換是一種基于內(nèi)容的圖像加密方法,與不知道密鑰對(duì)已加密信息進(jìn)行解密一樣,倘若不知道圖像置亂所采用的算法,同樣難以恢復(fù)原始圖像的信息。

2、增強(qiáng)圖像偽裝的魯棒性

置亂技術(shù)作為信息隱藏的預(yù)處理手段,可以大大增強(qiáng)圖像信息偽裝的魯棒性。主要體現(xiàn)在3個(gè)方面:

①圖像置亂以后,將得到一幅雜亂無序的圖像,沒有內(nèi)容,沒有紋理,也沒有形狀,從中無法讀取出有意義的信息。

我們將這樣一幅“三無”圖像嵌入到另一幅普通圖像里時(shí)就不易引起這幅圖像在內(nèi)容、紋理、形狀上的太大改變,甚至覺察不出發(fā)生了改變,這樣人眼就不易識(shí)別,從而逃出了第三方的視線,可以更好地保證水印信息的隱蔽性。

②由于秘密圖像是置亂以后的圖像,第三方難以對(duì)它的內(nèi)容、紋理、形狀等進(jìn)行統(tǒng)計(jì)分析,這樣即便他們截獲到了秘密圖像,也對(duì)此無能為力。如果第三方企圖對(duì)秘密圖像進(jìn)行反置亂運(yùn)算,這也是非常困難的,因?yàn)閳D像置亂的方法很多,每種方法又可以使用不同的置亂算法,設(shè)置不同的參數(shù),加密方可以根據(jù)自己的想法得到很多不同的結(jié)果,這給企圖進(jìn)行反置亂的第三方帶來了很大的困難,需要耗費(fèi)巨大的計(jì)算量來窮舉測試各種可能性。

③如果第三方進(jìn)行反置亂運(yùn)算不成,也可能會(huì)在隱蔽的載體上進(jìn)行惡意修改,用置亂的方法也可以達(dá)到抵抗這些攻擊的目的。因?yàn)楹戏ń邮照邔?duì)秘密圖像進(jìn)行反置亂的時(shí)候,會(huì)使第三方在圖像上所涂畫的信息分散到畫面的各個(gè)位置,形成點(diǎn)狀的隨機(jī)噪聲,對(duì)視覺影響的程度不是很大。

二值圖像加密算法之Arnold變換加密

圖1是在置亂圖像上進(jìn)行涂改和剪裁兩種惡意修改以后,恢復(fù)出的秘密圖像??梢钥吹?,秘密圖像的內(nèi)容依然可見。為了使提取的圖像信息更為清晰,還可以對(duì)破壞嚴(yán)重的圖像進(jìn)行中值濾波等方面的處理,以去除隨機(jī)噪聲。

當(dāng)然,不應(yīng)該忽視的是圖像置亂在一定程度上增加了加密計(jì)算的復(fù)雜度和計(jì)算量,但是與非法攻擊者可能花費(fèi)的更大的計(jì)算量相比,圖像置亂仍是一種值得付出代價(jià)的、相對(duì)安全的手段。正是因?yàn)槿绱?,圖像置亂技術(shù)在數(shù)字水印技術(shù)中具有非常重要的作用和意義。

二、數(shù)字圖像置亂的方法

數(shù)字圖像的置亂可以在位置空間、色彩空間、頻率空間上進(jìn)行。隨著計(jì)算機(jī)技術(shù)和數(shù)字圖像處理技術(shù)的發(fā)展,很多文獻(xiàn)對(duì)圖像置亂提出了不同的置亂算法,大體上可以分為線性變換、幾何變換和仿射變換。目前研究較多的置亂技術(shù)包括Fibonacci變換、Arnold變換、Hilbert曲線變換、E-曲線變換、Gray變換、仿射變換、幻方、正交拉丁方變換等方法。無論哪一種置亂技術(shù)都是可逆的,或者是具有周期性的,即多次迭代或者做反變換均能恢復(fù)原圖像。

下面僅以Fibonacci變換和Arnold變換為例討論數(shù)字圖像置亂。

1、Fibonacci變換

1200年意大利數(shù)學(xué)家Leonardo Fibonacci提出了著名的Fibonacci數(shù)列,將Fibonacci數(shù)列應(yīng)用于數(shù)字圖像變換,可以得到Fibonacci變換。Fibonacci變換的原理是先作x軸方向的錯(cuò)切變換,再作相對(duì)于x軸的對(duì)稱變換,然后作y軸方向的錯(cuò)切變換,最后的模運(yùn)算相當(dāng)于切割回填操作,其變換如圖2所示。

二值圖像加密算法之Arnold變換加密

利用Fibonacci變換置亂效果圖如圖3所示。

二值圖像加密算法之Arnold變換加密

Fibonacci變換是具有周期性的。對(duì)圖像反復(fù)進(jìn)行Fibonacci變換,當(dāng)?shù)揭欢ǖ牟綌?shù)時(shí),就可以重新恢復(fù)到原始圖像,F(xiàn)ibonacci變換的周期如表1所示。

二值圖像加密算法之Arnold變換加密

2、Arnold變換

Arnold變換是V.J.Arnold在遍歷理論的研究中提出的一種變換,原意為catmapping,俗稱貓臉變換。Arnold變換直觀、簡單、具有周期性,使用非常方便。Arnold變換的原理是先作x軸方向的錯(cuò)切變換,再作y軸方向的錯(cuò)切變換,最后的模運(yùn)算相當(dāng)于切割回填操作,其變換示意圖如圖4所示。

二值圖像加密算法之Arnold變換加密

Arnold變換的置亂效果圖如圖5所示。

二值圖像加密算法之Arnold變換加密

當(dāng)對(duì)圖像進(jìn)行Arnold變換時(shí),就是把圖像的各個(gè)像素點(diǎn)位置按照下列公式進(jìn)行移動(dòng),

二值圖像加密算法之Arnold變換加密

從而得到一個(gè)相對(duì)原圖像比較混亂的圖像。對(duì)圖像每進(jìn)行一次Arnold變換,就相當(dāng)于對(duì)該圖像進(jìn)行了一次置亂,一般來說這一過程需要反復(fù)進(jìn)行多次才能達(dá)到令人滿意的效果。利用Arnold變換對(duì)圖像進(jìn)行置亂后,使原本有意義的圖像變成了像白噪聲一樣無意義的圖像,從而實(shí)現(xiàn)了信息的初步隱藏。同時(shí)置亂次數(shù)可以作為水印系統(tǒng)的密鑰,從而進(jìn)一步增強(qiáng)系統(tǒng)的安全性和保密性。

Arnold變換也是具有周期性的。F.J.Dyson和H.Falk在分析離散Arnold變換的周期性時(shí),給出了這樣的結(jié)論:對(duì)于任意的N>2,Arnold變換的周期L≤N2/2。這是迄今為止最好的結(jié)果。計(jì)算Arnold周期的方法,對(duì)于給定的自然數(shù)N>2,下式的Arnold變換周期M是使得它成立的最小自然數(shù)n。

二值圖像加密算法之Arnold變換加密

例如,尺寸為32×32的二值水印圖像,根據(jù)文相關(guān)結(jié)論,大小為32×32的二值圖像置亂迭代6次置亂度最大。所以N=32,對(duì)水印置亂的次數(shù)k=6(k可作為密鑰),可以算出N=32時(shí),周期M=24。因此,如果開始對(duì)水印置亂了6次,那么在提取水印后還要再對(duì)水印置亂24 -6—18次才能得到原來的水印圖像,如圖6所示。

二值圖像加密算法之Arnold變換加密

圖像的大小與Arnold變換的周期的關(guān)系,如表1所示。

二值圖像加密算法之Arnold變換加密

3、Arnold反變換

如前所述,Arnold變換是具有周期性的,反復(fù)使用Arnold變換,可以在某一時(shí)刻恢復(fù)原始圖像。但是Arnold變換的周期性與圖像的大小有關(guān),如果我們利用它的周期性來達(dá)到恢復(fù)原圖的目的,勢必要花費(fèi)很長時(shí)間。然而在實(shí)際應(yīng)用中,應(yīng)該盡可能地減少計(jì)算時(shí)間和計(jì)算量,我們希望Arnold變換的周期越短越好,所以在設(shè)計(jì)數(shù)字水印圖像的大小時(shí),我們往往會(huì)選擇Arnold變換周期比較小的圖像,而這也在一定程度上限制了圖像的選擇,而且選擇圖像前需要事先計(jì)算出它的周期,從而增加了工作量。這個(gè)問題可以通過Arnold反變換的方法解決。

Arnofd變換式為:

二值圖像加密算法之Arnold變換加密

假設(shè):

二值圖像加密算法之Arnold變換加密

其中,t1,t2為整數(shù),則:

二值圖像加密算法之Arnold變換加密

則Arnold反變換為:

二值圖像加密算法之Arnold變換加密

用數(shù)學(xué)歸納法可以證明,當(dāng)作n次變換時(shí),即:

二值圖像加密算法之Arnold變換加密

時(shí),Arnold反變換為:

二值圖像加密算法之Arnold變換加密

其中,(x,y)是原圖像的像素點(diǎn),(x',y')是變換后圖像的像素點(diǎn)。利用Arnold反變換式可以將水印圖像進(jìn)行恢復(fù)。

由以上可以得出,對(duì)一幅置亂m次的圖像進(jìn)行恢復(fù)時(shí),只要恢復(fù)后的圖像的置亂次數(shù)k滿足0≤k≤m,圖像的恢復(fù)都可以通過對(duì)置亂圖像作m-k次Arnold反變換得到,顯然當(dāng)k=0時(shí),反變換后的圖像就是原圖像。

Arnold反變換的方法使Arnold變換置亂圖像的恢復(fù)不再需要計(jì)算出圖像變換的周期,并且可以恢復(fù)到圖像的任意次置亂效果,恢復(fù)的效率大大提高了。

三、圖像置亂效果的評(píng)定

通常,圖像置亂度的評(píng)定應(yīng)該主要考慮以下幾個(gè)方面:①像素移動(dòng)的距離;②像素分散的均勻度;③相對(duì)于原始圖像差別;④圖像視覺感知效果。

一般來說,置亂后的秘密圖像越“亂”,它的隱蔽性越好,安全性也越高。從置亂變換的概念可以看出,位置空間置亂的實(shí)質(zhì)就是將原始圖像各個(gè)像素的位置進(jìn)行了移動(dòng),從直觀上來看,像素移動(dòng)的距離越大,其置亂程度也就越大。另一方面,像素位置發(fā)生移動(dòng)以后,像素分散的均勻程度也是要考慮的一個(gè)問題。如果圖像的局部像素都向同一個(gè)方向平行移動(dòng)的話,那么即使平移的距離很大,它置亂效果也是不理想的。

一般說來,原來集中在一起的像素,置亂以后分散得越均勻,圖像的置亂效果越好。再者,置亂變換的目的就是最太限度地隱蔽原始圖像的信息,因此,置亂圖像相對(duì)于原始圖像的差別越大,其置亂效果越好,因?yàn)橹脕y變換雖然不改變?cè)紙D像像素的灰度值,但是它會(huì)改變像素點(diǎn)鄰域的灰度值分布,所以置亂圖像相對(duì)于原始圖像越“亂”,表明該置亂算法越有效。

小知識(shí)之二值圖像

二值圖像 binary image是指每個(gè)像素不是黑就是白,其灰度值沒有中間過渡的圖像。二值圖像一般用來描述文字或者圖形,其優(yōu)點(diǎn)是占用空間少,缺點(diǎn)是,當(dāng)表示人物,風(fēng)景的圖像時(shí),二值圖像只能描述其輪廓,不能描述細(xì)節(jié)。這時(shí)候要用更高的灰度級(jí)。