數(shù)字圖像加密新算法之多級多層置亂加密

多級多層置亂圖像加密算法依據(jù)信息密級,把置亂劃分為初、中、高三個等級,通過逐步深化的置亂層,復(fù)雜像素位置變換,然后利用非對稱橢圓曲線加密體制(ECC)對系列關(guān)鍵參數(shù)進(jìn)行加密。該加密算法能夠有效削減上述加密算法存在的缺陷,為提高數(shù)字圖像文件加密質(zhì)量探索了一條新途徑。

一、置亂策略與實(shí)現(xiàn)

每幅用于交互的灰度圖像文件,都是一個具有特定排列結(jié)構(gòu)的二維像素矩陣,依據(jù)這一特征,改變像素的灰度值,即可獲得置亂效果令人滿意的圖像文件。

1、初級置亂步驟設(shè)計(jì)與實(shí)現(xiàn)

設(shè)A=[aij]I×J,為一幅二維數(shù)字圖像。L為一個數(shù)據(jù)隊(duì)列,1≤Lk≤I×J,其中1≤k≤I×J。

第1步:隨機(jī)選取圖像矩陣A的像素點(diǎn),aij∈A作為置亂圖像第一層的起始點(diǎn),依序掃描該點(diǎn)相若(i+1)>I或(i-1) <1,(j+1)>j,或(j-1) <1,則說明該像素點(diǎn)不存在,其灰度值將不再寫入L隊(duì)列。

第2步:將第1步寫入L隊(duì)列的像素點(diǎn),分別作為置亂圖像第二層的出發(fā)點(diǎn),依序分別掃描各出發(fā)點(diǎn)相鄰上、下、左、右的像素點(diǎn),即ai-2,j,ai,j,,ai-1,j-1,ai-1,j+1;
ai,j,ai+2,j,ai+1,j-1,ai+1,j-1;ai-1,j-11,ai+1,j-1,ai,j-2,ai,j;ai-1,j+l,ai+1,j+1,ai,j,ai,j+2。依序?qū)呙椟c(diǎn)的灰度值插入隊(duì)列L。若出發(fā)點(diǎn)在某個方向上的相鄰像素點(diǎn)不存在或者已經(jīng)被訪問過,則其灰度值將不再寫入隊(duì)列L。

第3步:同理,籽第2步寫入L隊(duì)列的像素點(diǎn),分別作為置亂圖像第L層的出發(fā)點(diǎn)……直到遍歷完所有的像素點(diǎn)為止。

第4步:應(yīng)用隨機(jī)函數(shù),產(chǎn)生一個正整數(shù)1≤LK(Ixj-1),將aij,插入L隊(duì)列的第K處。顯然,L隊(duì)列由IxJ個像素灰度值構(gòu)成。

從L中的第1個像素值開始,依次以隊(duì)列L中的J個像素為一行,可將L隊(duì)列的一維像素元素轉(zhuǎn)換為IxJ的二維矩陣數(shù)字圖像加密新算法之多級多層置亂加密,即置亂圖像矩陣。為增強(qiáng)置亂效果,以數(shù)字圖像加密新算法之多級多層置亂加密為基礎(chǔ),重復(fù)上述步驟,可以獲得多次置亂效果更佳的加密圖像A'2,A'3,……,A'r。其中,r為對交互圖像A置亂的層數(shù)。

示例:圖1中,圖a是一幅小沙彌讀經(jīng)的原始圖像A,圖b是以圖a為基礎(chǔ),生成的置亂圖像A'1;圖c是以圖b為基礎(chǔ),生成的置亂圖像A’2;依序類推,得到6次置亂后的效果圖,如圖1中的b至g所示。圖1中的c至g說明,第二次置亂后數(shù)據(jù)圖像效果已經(jīng)非常接近鋪開的平毯狀,置亂效果令人滿意。

數(shù)字圖像加密新算法之多級多層置亂加密

2、中級置亂步驟設(shè)計(jì)與實(shí)現(xiàn)

在初級置亂成果的基礎(chǔ)上,采用偽裝圖像(以下簡稱為偽圖像)與原始圖像(以下簡稱為真圖像)的疊加模式,可以獲得質(zhì)量更高的置亂效果圖像。

第1步:選取一幅與真圖像像素點(diǎn)數(shù)量相等或不相等的偽圖像B,如圖2所示。按照上節(jié)中的步驟1-4,獲得置亂2次后的圖像如圖3所示。為便于定性討論方便,定義真圖像A與偽圖像B的行列值相等,且相應(yīng)各行的像素點(diǎn)的數(shù)量亦相等。

數(shù)字圖像加密新算法之多級多層置亂加密

第2步:選取真圖像與偽圖像分別置亂后的示例圖各一幅,按照疊加規(guī)則,定義疊加后的圖像為D。

第3步:以圖1(c)和圖3疊加為例,圖1(c)的第1個像素點(diǎn)作為D的第一個像素點(diǎn),圖3的第1個像素點(diǎn)作為D的第2個像素點(diǎn),圖1(c)的第2個像素點(diǎn)作為D的第3個像素點(diǎn),圖3的第2個像素點(diǎn)作為D的第4個像素點(diǎn)……以此類推,疊加后的數(shù)字圖像如圖4所示。

數(shù)字圖像加密新算法之多級多層置亂加密

顯然,以D為基礎(chǔ),按照上節(jié)中的步驟1-4,將會得到置亂效果更好、置亂過程更為復(fù)雜的置亂圖像。由以上實(shí)現(xiàn)過程可以推知,由上節(jié)和本節(jié)得到的置亂效果應(yīng)該能夠滿足一般意義上的置亂需求。如若不能,可以考慮對D的多次置亂,以獲得更加滿意的置亂圖像。

由第3步可以推知,如果I×J足夠大,圖4的行列值構(gòu)成方案將趨近于+00。當(dāng)然,也可以用2幅以上的偽圖像參與疊加過程,如果加密機(jī)能夠滿足效率要求,將會更加富有意義。

實(shí)際應(yīng)用過程中,可以建立一個以偽圖像為基礎(chǔ)的偽置亂圖像庫,通過調(diào)用一幅置亂后的偽圖像,直接參與疊加運(yùn)算即可,而不必每次計(jì)算偽圖像的置亂圖像。

3、高級置亂步驟設(shè)計(jì)與實(shí)現(xiàn)

在中級置亂成果的基礎(chǔ)上,將疊加后圖像D分割成大小相等的圖元,利用隨機(jī)函數(shù)產(chǎn)生一個與圖元塊數(shù)一致的隨機(jī)數(shù)列,按照得到的隨機(jī)數(shù)列值,依序選取分割后的圖元,組合成新圖像,可獲得質(zhì)量更高的置亂圖像。實(shí)現(xiàn)步驟如下:

第1步:選取真圖像AIxJ與偽圖像BIxJ各一幅,生成疊加圖像。

第2步:以圖4為例,按照設(shè)定的圖元大小,將圖像D分割為有64個元素的圖元集,如圖5所示。應(yīng)用隨機(jī)函數(shù),生成一個分割后圖元的新序列值,按照新的序列值改變分割后的圖元位置,如圖6所示。

數(shù)字圖像加密新算法之多級多層置亂加密

第3步:按照圖6所示的新的圖元序列對其進(jìn)行重新組合,生產(chǎn)新的置亂圖像D’,如圖7所示。

數(shù)字圖像加密新算法之多級多層置亂加密

高級置亂的復(fù)雜度與分割的圖元數(shù)量密切相關(guān),分割的圖元數(shù)量越多,圖像的置亂效果也越好,反之依然。

二、置亂參數(shù)與置亂方案

置亂參數(shù)是加密操作的對象。依據(jù)前面給出的圖1(a)、2和初、中、高三級不同層次的圖像置亂步驟的參數(shù)分別提取。

1、初級置亂參數(shù)

數(shù)字圖像加密新算法之多級多層置亂加密

表1是以圖1(a)為例給出的初級置亂參數(shù)表。其中,欄3中的參數(shù)值是不同層次置亂時起始點(diǎn)的行列值。欄4中的1代表上鄰點(diǎn);2代表下鄰點(diǎn);3代表左鄰點(diǎn);4代表右鄰點(diǎn)。在實(shí)際應(yīng)用中,為了增加第三方解密的耗時,欄4相鄰點(diǎn)的排列順序可以隨機(jī)選取24種排列方式之一。除欄1外,每層(次)置亂共有5個置亂參數(shù)。初級置亂參數(shù)的總數(shù)量取決于選擇的置亂層(次)數(shù)。

2、中級置亂參數(shù)

表2給出了中級置亂的參數(shù)表,中級置亂最后的結(jié)果為圖像D。真圖像只有1幅,但偽圖像可以>1幅。表2僅給出了偽圖像為1幅時的參數(shù)列表,如果需要,讀者可自行在表2中續(xù)添偽圖像的相關(guān)參數(shù)。

數(shù)字圖像加密新算法之多級多層置亂加密
用1代表真圖像置亂后的圖像,用2代表偽圖像置亂后的圖像;因此,圖像D像素點(diǎn)排列順序只有12或21兩種。疊加時各圖像像素點(diǎn)的取值個數(shù)均為一個隨機(jī)數(shù),實(shí)驗(yàn)結(jié)果表明,15<像素點(diǎn)的個數(shù)取值≤30比較合理。實(shí)際上,可以對D再次或多次進(jìn)行初級置亂,但是,表2沒有考慮這種更為復(fù)雜的置亂參數(shù)序列。

3、高級置亂參數(shù)

表3給出了高級置亂參數(shù)列表。高級置亂方案有兩種:

數(shù)字圖像加密新算法之多級多層置亂加密

①建立在初級置亂基礎(chǔ)上的高級置亂模式,即初級置亂參數(shù)+新的圖元序列值,由新的圖元序列值可以推知分割的圖元數(shù),所以高級置亂參數(shù)中,可以略去分割的圖元數(shù)。

②建立在中級置亂基礎(chǔ)上的高級置亂模式。由初級置亂參數(shù)+中級置亂參數(shù)(表2中的序號2至4)+新的圖元序列值,顯然,建立在中級置亂基礎(chǔ)上的高級置亂模式是使用參數(shù)最多的一種模式。

4、多級置亂方案

表4中的每種置亂方案都有多個層次,都可以獨(dú)立使用。實(shí)際應(yīng)用過程中,在確定一種方案類型后,可根據(jù)需要設(shè)定適當(dāng)?shù)闹脕y層。置亂層確定的原則是,在保證發(fā)送圖像安全的基礎(chǔ)上,選擇耗時最少的置亂層方案,以提高加密解密效率。

數(shù)字圖像加密新算法之多級多層置亂加密

三、加密、解密實(shí)驗(yàn)例證

以表4中的方案4,即初級+中級+高級的置亂方案為對象,以真圖像圖1(a),偽圖像圖2為出發(fā)點(diǎn);以置亂效果圖為基礎(chǔ),采用ECC加密體制實(shí)例驗(yàn)證如下:

1、Bob生成密鑰步驟

(1)選定橢圓曲線為數(shù)字圖像加密新算法之多級多層置亂加密基點(diǎn)數(shù)字圖像加密新算法之多級多層置亂加密

(2)d=64,計(jì)算:Q=dN=64(503,174) - (1184,487);

(3)公開公有密鑰[E1211(1,1),(503,174), 373,(1184,487)]。

2、Alice加密步驟

(1)獲知Bob的公鑰[E1511(1,1), (503,174), 373,(1184,487)];

(2)以真圖像圖1(a),偽圖像圖2為出發(fā)點(diǎn);應(yīng)用前面介紹的步驟,分別得到2次置亂圖像圖1(c)、圖3。真圖像置亂2次后,所對應(yīng)的關(guān)鍵參數(shù)為[(512,512),1,(70,80), 1234, 39,2,(150,200), 1234, 66]。

(3)每次各取真、偽圖像的18個像素點(diǎn),按照表2設(shè)定的12排列順序,生成的疊加圖像如圖4所示,中級置亂關(guān)鍵參數(shù)為[12,18,18];

(4)將圖4分割成大小相等的64塊圖元,如圖5所示。

應(yīng)用隨機(jī)函數(shù),得到一個新的圖元序列,即高級置亂所對應(yīng)的關(guān)鍵參數(shù)[5,12,1,64,……,3,7,16,14]。按照新的圖元序列,組合成最終加密圖像D',如圖7所示。明文數(shù)據(jù)S的系列關(guān)鍵參數(shù)值共79個,依次為{[(512,512),1,(70,80), 1234, 39,2,(150,200). 1234, 66],[12,18,18],[5,12,1,64,……,3,7,16,14]);

(5)依 據(jù)Bob公 鑰[ Eisii(LI),(503,174), 373, (1184,487)], u=186, 計(jì)算:c1(x1,y1)=uN=186(503,174)= (565,604), C2(x2,y2)=UQ=186(1184,487)= (436,1162);

(6) si=512,則c1=(512' 436)mod1511= 1115;重復(fù)該計(jì)算過程,得到79個加密數(shù)據(jù)為:[1115, 1115,……,932,60];

(7)將如圖7所示的最終加密圖像D’,參數(shù)[565,604]和79個S的加密后的關(guān)鍵參數(shù)傳送到Bob。

3、 Bob解密步驟

Bob收到Ahce的數(shù)據(jù)文件加密和圖像加密文件D’的步驟如下:

(1)用私有密鑰d=64,計(jì)算:C2(x2,y2)=dC1=186(1184,487)= (436,1162);

(2)X2-1=436-1= 655;

(3)計(jì)算s1= (1115' 655)mod1511- 512,恢復(fù)出明文數(shù)據(jù)S,以此方法計(jì)算出全部明文數(shù)據(jù);

(4)依據(jù)明文數(shù)據(jù)的系列關(guān)鍵參數(shù),恢復(fù)出原始圖像,如圖8所示。

數(shù)字圖像加密新算法之多級多層置亂加密

小知識之置亂

所謂“置亂”,就是將圖像的信息次序打亂,將a像素移動到b像素的位置上,b像素移動到c像素的位置上……使其變換成雜亂無章難以辨認(rèn)的圖像。