適用于矩形圖像的新二維映射圖像加密算法

隨著計(jì)算機(jī)網(wǎng)絡(luò)和多媒體技術(shù)的迅速發(fā)展,數(shù)字圖像的安全保障問題日益凸顯。傳統(tǒng)的圖像置亂方法如Arnold變換,面包師變換,Standard映射,幻方變換,魔方變換等已不再安全。為此,我們提出了一種圖像加密算法,利用新的二維映射進(jìn)行圖像位置置亂,同時(shí)采用一個(gè)更加安全的基于混沌映射的擴(kuò)散函數(shù),實(shí)現(xiàn)圖像灰度置亂。該加密算法不僅適用于加密方形圖像而且對矩形圖像同樣適用。

一、新二維映射原理與算法

1、 新二維映射原理

設(shè)圖像A的大小為M@N,首先將圖像分為左右兩個(gè)部分,左邊的圖像塊為M行,7N/2_列,右邊的圖像塊則有M行,_N/28列(其中_X8表示不大于X的最大整數(shù),7X_表示不小于X的最小整數(shù))。對于圖像塊的每相鄰兩列,可以將一列元素依次插入到另一列的縱向相鄰的兩像素之間,反復(fù)該過程,依次連接各像素點(diǎn),原始圖像塊將被拉伸成為一條直線。根據(jù)插入的角度不同,共有4種插入方法,如圖所示:

適用于矩形圖像的新二維映射圖像加密算法

舉例說明:當(dāng)圖像為3@5時(shí),采用插入方法(a)時(shí),如下圖所示,則依次將像素(3,1)插入像素(3,2)之后,像素(2,1)插入像素(2,2)和(3,2)之間,像素(1,1)插入像素(1,2)和(2,2)之間,重復(fù)這個(gè)過程,即按照下圖的方式可將原圖像拉伸成為一條直線:(3,1),(3,2),(2,1),(2,2),(1,1),(1,2),(3,3),(3,4),(2,3),,,其它3種插入方法和方法(a)類似。

適用于矩形圖像的新二維映射圖像加密算法

從第一個(gè)圖所示的4種插入方法中任選兩種分別對原圖像的左右兩個(gè)圖像塊進(jìn)行操作,這樣原始圖像塊將被拉伸成為兩條直線,依次將它們連接起來得到一條長為M@N直線,然后,再折疊成一個(gè)M@N的新圖像,實(shí)現(xiàn)圖像位置的置亂。根據(jù)左右兩個(gè)圖像塊采用的插入方法的不同可以得到12種不同的組合方式,如圖所示:

適用于矩形圖像的新二維映射圖像加密算法

在實(shí)際的圖像文件加密中,可以任意抽取其中的若干組合方式用于圖像位置置亂。

2、新二維映射計(jì)算加密算法

(1)各插入方法的計(jì)算加密算法

由于映射是由4個(gè)插入方法任意組合形成的,分別給出各插入方法的算法如下:設(shè)圖像大小為M@N,A(i,j)為圖像中的任意一點(diǎn)像素值i=1,2,,M,j=1,2,,N,L(t),t=1,2,,,M@N為將A(i,j)拉伸后的一維向量。

A、方法(a)的算法:

如上圖方法a所示,插入方法為(a)算法:

當(dāng)j是奇數(shù)時(shí),若j=N,

L(M@(j-1)+i)=A(i,j), ? ? ? ? ?(1)

若j<N,

L(M@(j-1)+2@(M-i)+1)=A(i,j), ? ? ? (2)

當(dāng)j是偶數(shù)時(shí),

L(M@(j-2)+2@(M-i+1))=A(i,j)。 ? ? ?(3)

B、方法(b)的算法:

當(dāng)j是奇數(shù)時(shí),若j=N,

L(M@(j-1)+i)=A(i,j), ? ? ? (4)

若j<N,

L(M@(j-1)+2@i-1)=A(i,j), ? ? ? ? (5)

當(dāng)j是偶數(shù)時(shí),

L(M@(j-2)+2@i)=A(i,j)。 ? ? ? ? (6)

C、 方法(c)的算法

可以通過下列過程得到:將原圖A做一次鏡像,如式(7)所示,Ac表示鏡像后的圖像,

Ac(i,j)=A(i,N-j+1), ? ? ? ?(7)

其中,i=1,2,,,M;j=1,2,,,N,然后通過算法(a)中式(1)~(3),可得到算法(c)。

D、方法(d)的算法

可以通過下列過程得到:將原圖A如式(7)所述做一次鏡像得到Ac通過算法(b)中(4)~(6)式,可得到方法(d)的算法。

(2)_新映射的計(jì)算算法

A、映射1算法

對B實(shí)行算法(a)得到長為M@D的直線L1,然后對C實(shí)行算法(c)得到長為M@(N-D)的直線L2。則

L(1B(M@D))=L1, ? ? ? (8)

L(((M@D)+1)BM@N)=L2, ? ? ? ? (9)

得到一條長為M@N的直線L。

B、映射o算法

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

將原圖A做一次鏡像,如式(7)所示得Ac,然后對Ac施行映射1算法,如此得到映射o的算法。

C、折疊算法

把直線L重新折疊成M@N的圖像的算法如式(10)所示:

E(i,j)=L((i-1)@N+j), ? ? ? (10)

其中,i=1,2,,,M;j=1,2,,,N。

E(i,j)是位置置亂后的圖像。

_二、圖像加密、解密算法

1、圖像加密算法原理

本加密算法采用了位置置亂和灰度置亂相結(jié)合的方法,圖像的整個(gè)加密過程如圖所示。

適用于矩形圖像的新二維映射圖像加密算法(1)密鑰設(shè)計(jì)

如圖所示,加密算法采用兩個(gè)密鑰K1和K2,其中K1用于圖像位置置亂,K2作為混沌映射的初值,用于灰度置亂,其范圍為(0,1)。位置置亂中采用了映射1和映射o,其映射次數(shù)可以作為密鑰K1。如K1=1234,表示依次用1映射1次,用o映射2次,然后用1映射3次,最后用o映射4次。由于圖像是有限像素點(diǎn)的集合,像素的排列組合是有限的。因此在有限次迭代之后,加密圖像會恢復(fù)到原來的狀態(tài),即混沌映射都具有龐加萊回復(fù)性。有專家指出,當(dāng)?shù)螖?shù)較?。ㄈ?lt;15)時(shí),加密算法是安全的。本文將密鑰K1的每一位設(shè)計(jì)為>1015的整數(shù)。由于新映射的周期非常大(<1015),這種設(shè)計(jì)是合理的。

本文采用的擴(kuò)散函數(shù)如式(11)所示。

vck=vk+Y2molL, ? ? ? (11)

其中,vk是指每一個(gè)像素的灰度值,vck為擴(kuò)散后的像素灰度值,Y為由混沌映射產(chǎn)生的混沌序列,L為像素灰度級。該類擴(kuò)散函數(shù)結(jié)構(gòu)簡單、擴(kuò)散速度快。

(2)混沌序列Y的產(chǎn)生

采用簡單的logistic映射,其函數(shù)式如下:

Xn+1=f(L,Xn)=LXn(1-Xn)。 ? ? ? (12)

當(dāng)L=4時(shí),系統(tǒng)處于混沌狀態(tài),此時(shí)系統(tǒng)產(chǎn)生的序列具有隨機(jī)性,遍歷性,對初值的敏感性,其范圍為(0,1)。K2作為混沌序列的初值X(0)。對產(chǎn)生的混沌實(shí)值序列,每個(gè)實(shí)值取其從百分位開始的3個(gè)數(shù)字組成的十進(jìn)制數(shù)構(gòu)成序列Y即對于X(i)=0.b1b2b3b4b5,,序列,Y由式(13)得到:

Y(i)=100@b1+10@b2+b3,i=0,1,2,,。 ? ? ?(13)

在擴(kuò)散函數(shù)中引入了偽隨機(jī)序列,克服了在已知擴(kuò)散函數(shù)時(shí)通過簡單的逆運(yùn)算就可得到原圖像精確直方圖的缺陷,使得該加密方法可以抵御已知明文攻擊。

2、圖像加密算法步驟

圖像加密算法可分為3步進(jìn)行:

(1)利用密鑰K1及映射1或o的算法,將圖像A(i,j)拉伸處理為一條直線L(t),其中t=1,2,,,M@N。

(2)利用折疊算法如式(10)所示,將直線折疊處理,得到置亂圖像E(i,j)。

(3)利用密鑰K2及l(fā)ogistic映射和擴(kuò)散函數(shù),對置亂圖像進(jìn)行擴(kuò)散處理得到密圖。

解密算法與加密算法密鑰相同,過程相反。

小知識之圖像加密

圖像加密的概念是:利用數(shù)字圖像的特性設(shè)計(jì)加密算法,以提高加密的安全性和運(yùn)算效率的一種技術(shù)。