張 帥,楊雪霞
(1.太原廣播電視大學(xué) 教學(xué)研究中心,山西 太原 030024;2.太原科技大學(xué) 應(yīng)用科學(xué)學(xué)院,山西 太原 030024)
圖像的加密算法常采用兩種方式,一種是對(duì)通過(guò)位置變換達(dá)到降低像素間關(guān)聯(lián)性的目的,常見(jiàn)算法有Arnold變換、Hilbert曲線變換、幻方變換等[1,2].第二種是通過(guò)像素值的改變達(dá)到圖像加密的目的,常見(jiàn)的算法有Gray碼置亂、混沌加密等[3].Arnold變換是最常用的圖像置亂算法之一,在圖像加密預(yù)處理中被廣泛應(yīng)用,但僅能對(duì)方陣圖像進(jìn)行置亂缺少了應(yīng)用的普遍性.
文獻(xiàn)[4]給出了非等長(zhǎng)Arnold變換的公式,證明了當(dāng)圖像長(zhǎng)寬比為整數(shù)或者互質(zhì)時(shí)周期性的存在.文獻(xiàn)[5]在非等長(zhǎng)Arnold變換公式的基礎(chǔ)上給出了當(dāng)圖像寬與長(zhǎng)的比為奇數(shù)時(shí)也滿足周期性.文獻(xiàn)[6]根據(jù)非等長(zhǎng)Arnold變換公式,給出了其逆變換公式,避免了在圖像解密過(guò)程中要先求解周期的問(wèn)題,并且通過(guò)構(gòu)造系數(shù)矩陣將該公式推廣到任意尺寸的變換.文獻(xiàn)[7]對(duì)圖像進(jìn)行分塊處理,分別對(duì)方陣和非方陣的圖像進(jìn)行等長(zhǎng)與非等長(zhǎng)Arnold置亂加密處理.文獻(xiàn)[8]對(duì)傳統(tǒng)的方陣圖像進(jìn)行Arnold變換并結(jié)合了Gray變換,對(duì)圖像進(jìn)行了雙重加密.文獻(xiàn)[9]對(duì)方陣圖像利用Kent混沌映射對(duì)圖像進(jìn)行置亂并結(jié)合廣義的Gray碼變換對(duì)圖像的信息進(jìn)行了加密處理.
本文提出了一種利用非等長(zhǎng)Arnold置亂與Gray碼相結(jié)合的算法,首先對(duì)任意尺寸的載體圖像進(jìn)行非等長(zhǎng)Arnold變換,然后對(duì)圖像的灰度值進(jìn)行置亂廣義Gray碼變換,通過(guò)雙重變換達(dá)到了對(duì)圖像加密的目的.實(shí)驗(yàn)結(jié)果表明該算法在圖像加密過(guò)程中表現(xiàn)出更好的安全性.
非等長(zhǎng)Arnold變換是針對(duì)任意尺寸載體圖像進(jìn)行的研究,具體公式如下:
(1)
為了保證公式(1)能夠應(yīng)用于圖像置亂,基本思路是要保證原始載體圖像中的兩點(diǎn)不能對(duì)應(yīng)于置亂后的同一點(diǎn).文獻(xiàn)[4-6]分別從載體圖像的長(zhǎng)、寬與系數(shù)矩陣兩個(gè)角度對(duì)非等長(zhǎng)Arnold變換公式的周期性進(jìn)行了研究,為了保證變換公式具有普遍性,即能夠應(yīng)用于任意尺寸的載體圖像,我們對(duì)系數(shù)矩陣進(jìn)行了約束,要求a=1,b>0,c=KN(gcd(M,N))-1,d=1+bc.其中b,k為整數(shù).根據(jù)系數(shù)矩陣的約束條件,公式1等價(jià)為:
(2)
為了避免在圖像還原過(guò)程中,還需要計(jì)算置亂圖像的周期性,我們根據(jù)公式2給出了逆變換公式,具體形式如下:
(3)
定義1任意自然數(shù)u,二進(jìn)制碼可以表示為(un-1un-2…u1u0)2,令
gn-1=un-1,gi=ui⊕ui+1.
(4)
其中,i=1,2,…,n-2, 通過(guò)計(jì)算得,g(u)=(gn-1gn-2…g1g0)2則稱g(u)為u的二進(jìn)制Gray碼變換.對(duì)公式進(jìn)行分析,變換過(guò)程中最高位進(jìn)行了直接賦值,因此當(dāng)圖像的灰度值通過(guò)Gray碼變換以后,灰度值發(fā)生了一定的變化,但是由于最高位二進(jìn)制碼保持運(yùn)算不變,因此灰度值變化幅度并不大,于是我們對(duì)公式進(jìn)行改進(jìn)提出了廣義置亂Gray的表達(dá)式.具體定義如下:
定義2任意自然數(shù)u,二進(jìn)制碼可以表示為(un-1un-2…u1u0)2,令
(5)
由定義2可知,置亂廣義Gray碼存在可逆變換,具體表達(dá)形式如下:
(6)
其中,i=1,2,…,n-2.自然碼、Gray碼與置亂廣義Gray碼變換如表1所示.
表1 Gray碼和置亂廣義Gray變換對(duì)照表
在表1我們分別給出了十進(jìn)制和二進(jìn)制的表示形式,通過(guò)分析可知,經(jīng)過(guò)Gray碼變換以后,數(shù)值仍然基本符合從小到大變換的規(guī)律,并且數(shù)值變化幅度不大,而經(jīng)過(guò)置亂廣義Gray碼變換后,數(shù)值變換較大,分布離散,更能符合灰度值置亂的要求.
本算法結(jié)合了非等長(zhǎng)Arnold變換與置亂廣義Gray碼的特點(diǎn),首先對(duì)非等長(zhǎng)載體圖像進(jìn)行位置變換,然后再利用Gray碼變換改變其灰度值,最后根據(jù)相應(yīng)的逆變換公式對(duì)圖像進(jìn)行還原.本算法加密與解密的原理如圖1所示.
圖1 加密與解密流程圖
本文選擇大小為248×504的非方陣圖像進(jìn)行研究,根據(jù)系數(shù)矩陣約束條件,我們?nèi)=5,k=1,結(jié)合載體圖像的具體尺寸,經(jīng)計(jì)算得c=63,d=316.置亂效果如2所示.
圖2 非等長(zhǎng)Arnold置亂圖像
如圖2所示,經(jīng)過(guò)非等長(zhǎng)Arnold變換迭代1次與10次,置亂圖像與原始圖像對(duì)比,圖像被完全打亂,紋理逐漸變細(xì)膩,曾現(xiàn)出雜亂無(wú)章的效果.我們從像素相關(guān)性的角度作進(jìn)一步分析,分別在原始圖像和迭代10次的置亂圖像中選取5 000對(duì)像素點(diǎn),具體結(jié)果如圖3所示.
由圖3(a)可知,原始圖像相鄰像素點(diǎn)關(guān)系表現(xiàn)出良好的線性相關(guān)性,經(jīng)過(guò)水平置亂以后,圖像像素點(diǎn)的分布表現(xiàn)為離散與隨機(jī)性,置亂效果顯著.雖然圖像達(dá)到了很好的置亂效果,但由于非等長(zhǎng)Arnold 變換僅改變了像素位置,像素的灰度值并沒(méi)有發(fā)生變換,解密仍然可以從其灰度值直方圖分布以及置亂的周期性角度進(jìn)行研究,因此本文在非等長(zhǎng)Arnold置亂的基礎(chǔ)上結(jié)合Gray碼變換,改變像素的灰度值,進(jìn)一步提高圖像的加密水平,具體結(jié)果如圖4所示.
圖4 原始圖像與置亂圖像直方圖的相關(guān)性
由圖4可知,原始圖像經(jīng)過(guò)非等長(zhǎng)Arnold置亂以后,其灰度值直方圖并沒(méi)有發(fā)生變換,經(jīng)過(guò)置亂廣義Gray碼變換以后,不僅灰度值發(fā)生了變換,而且分布更加均勻,因此經(jīng)過(guò)非等長(zhǎng)Arnold變換并結(jié)合置亂廣義Gray碼變換以后,不僅打破了像素點(diǎn)之間的關(guān)聯(lián)性而且改變了灰度值的統(tǒng)計(jì)特性,使得加密算法有更好的安全性.
最后我們選取5 000對(duì)像素點(diǎn),對(duì)經(jīng)過(guò)非等長(zhǎng)Arnold變換與置亂廣義Gray碼雙重加密以后圖像通過(guò)相關(guān)系數(shù)進(jìn)行分析,具體公式如下:
(7)
(8)
其中,cov(x,y)表示協(xié)方差,rx,y表示相關(guān)系數(shù).相關(guān)性我們分別從水平、垂直和對(duì)角線三個(gè)方向進(jìn)行,并與參考文獻(xiàn)進(jìn)行對(duì)比分析.
表2 加密相關(guān)性系數(shù)對(duì)比
對(duì)表2分析可知,與原始圖像相比加密后圖像的相關(guān)性趨于0,即像素間幾乎不存在相關(guān)性,與文獻(xiàn)[7,11]僅使用Arnold算法的方法做對(duì)比,其相關(guān)性更低,因此結(jié)合Gray碼變換以后本算法達(dá)到了更好的加密效果.
本文提出了一種非等長(zhǎng)Arnold變換與置亂廣義Gray碼變換相結(jié)合的算法,該算法的特點(diǎn)是不僅實(shí)現(xiàn)了任意尺寸載體圖像的灰度值位置變換,而且結(jié)合Gray碼變換后實(shí)現(xiàn)了灰度值的變化,達(dá)到了對(duì)圖像雙重加密的效果,實(shí)驗(yàn)結(jié)果表明,該算法比傳統(tǒng)的僅適用Arnold置亂算法具有更好的加密效果,因此在圖像加密預(yù)處理過(guò)程中具備更好的安全性.