基于魔方變換的圖像加密算法

隨著信息網(wǎng)絡(luò)化飛速發(fā)展,圖像網(wǎng)絡(luò)交互在諸多領(lǐng)域得到應(yīng)用,圖像交互的安全問題倍受人們關(guān)注,目前解決這一問題,最好的辦法,就是將圖像加密。那么,我今天就給大家推薦一個新的圖像加密算法——基于魔方變換的圖像加密算法。

一、魔方變換原理

魔方變換的原理來源于魔方玩具,魔方玩具是一個分割成若干子塊的立方體結(jié)構(gòu),轉(zhuǎn)動子塊可以在魔方的表面上拼湊成特定的圖案,也可以把拼好的圖案打亂?;谶@個思想,可以對數(shù)字圖像進(jìn)行類似的置亂變換。一幅二維數(shù)字圖像可以看成是一個矩陣IM*X,矩陣中各個元素Ikl(k=1,2,...,M;l=1,2,....,N)表示圖像中象素點(diǎn)(k,l)的灰度值。

按照魔方玩具的規(guī)則,對圖像矩陣的各行各列進(jìn)行“轉(zhuǎn)動”,考慮到圖像矩陣的二維性,引入循環(huán)移位的思想,“轉(zhuǎn)動”某一行Ik可以看作是對該行按某個方向循環(huán)移動hk位。為方便起見,稱_hk為移位參數(shù),hk可以由特定的算法確定。對圖像矩陣的各列可以同樣處理。當(dāng)每一行每一列都進(jìn)行了一次循環(huán)移位后完成一次變換操作,得到一幅新的圖像I'M*N,即:I'M*N=p(IM*N),p表示從IM*N到I’M*N的變換映射。我們將這種變換稱為魔方變換。實(shí)際應(yīng)用中可以按上述步驟進(jìn)行多次迭代以得到期望的加密效果。

二、基于魔方變換的圖像加密算法

1、加密算法描述

傳統(tǒng)的加密方法中用于對明文進(jìn)行置亂的算子是事先確定的,不僅會帶來密文數(shù)據(jù)量的膨脹,而且容易受到差分密碼分析的攻擊。本文采用由密鑰控制產(chǎn)生的序列對圖像文件加密,增強(qiáng)了安全性。

首先由輸入的X0按(2)式生成混沌序列并處理成為自然數(shù)序列,以該序列中的各元素作為移位參數(shù)對圖像矩陣IM*N進(jìn)行n次魔方變換。其中輸入的X0和n共同組成密鑰。

加密算法只是對圖像象素點(diǎn)的位置加以重新排列,并沒有改變象素點(diǎn)的灰度值,故加密后的圖像與原圖擁有相同的灰度直方圖。但直方圖與圖像本身沒有嚴(yán)格的一一對應(yīng)關(guān)系,即僅憑直方圖無法推知圖像本來面目,所以這一點(diǎn)不會影響加密的安全性。

考慮到文件加密和解密的速度問題,基于魔方變換的圖像加密算法僅在空域?qū)D像進(jìn)行處理,這樣就避免了圖像從空域到頻域的變換及其逆變換的操作,從而減少了程序的時間復(fù)雜度,提高了處理速度。

2、用混沌序列生成移位參數(shù)

對一幅數(shù)字圖像IM*N進(jìn)行n次迭代的魔方變換,置亂算法中有移位參數(shù)hk的確定問題,這也是圖像文件加密中的一個重要的問題。經(jīng)研究表明非線性動力學(xué)系統(tǒng)在一定的控制參數(shù)范圍內(nèi)會出現(xiàn)混沌現(xiàn)象,產(chǎn)生的混沌序列具有確定性、偽隨機(jī)性、非周期性和不收斂等性質(zhì),并且對初始值有極其敏感的依賴性。這些特性對于圖像文件加密很有意義,可以把初始值作為密鑰的一部分,把生成的混沌序列適當(dāng)處理后作為移位參數(shù)集合H。

一個一維離散時間非線性動力學(xué)系統(tǒng)定義如下:

Xk+1=τ(xk) ? ? ? (1)

其中Xk∈V,k=0,1,2,...,稱之為狀態(tài)。τ:V→V是一個映射,將當(dāng)前狀態(tài)Xk映射到下一個狀態(tài)Xk+1。從初始值X0開始反復(fù)應(yīng)用(1)式即可得到序列{Xk|k=0,1,2,...,},稱之為離散時間動力學(xué)系統(tǒng)的一條軌跡。

一類非常簡單卻被廣泛研究和應(yīng)用的動力學(xué)系統(tǒng)是Logistic映射,定義如下:

Xk+1=μxk(1-Xk)

其中0≤μ≤4稱為分支參數(shù)。當(dāng)μ=4時該映射的概率分布函數(shù)為:

魔方變換及其在數(shù)字圖像加密中的應(yīng)用

則可以計(jì)算混沌序列軌跡點(diǎn)的均值為:

魔方變換及其在數(shù)字圖像加密中的應(yīng)用

獨(dú)立取兩個初始值x0和y0,則序列的互相關(guān)函數(shù)為:

魔方變換及其在數(shù)字圖像加密中的應(yīng)用

序列的聯(lián)合概率分布函數(shù)ρ(x,y)=ρ(x)*ρ(y),序列的自相關(guān)函數(shù)等于delta函數(shù)δ(l)。這些統(tǒng)計(jì)特性表明:混沌序列的遍歷統(tǒng)計(jì)特性等同于白噪聲,這一點(diǎn)正是圖像文件加密所需要的。經(jīng)過簡單的變量代換,Logistic映射可以在區(qū)間(-1,1)上定義,形式如下:

Xk+1=1-λ*X2k ? ? ? ? ??(2)

其中λ∈[0,2],當(dāng)λ=2時稱為滿映射。

3、加密算法步驟

Step1、輸入?yún)?shù):

(1)輸入圖像文件InImage,矩陣表示為IM*N,圖像寬為N,高為M;

(2)輸入初始值X0和迭代次數(shù)n。

Step2、參數(shù)計(jì)算:

(1)取λ=2,由(2)式生成混沌序列{xk|k=0,1,2,...,(M+N)*n-1};

(2)對上述序列進(jìn)行適當(dāng)處理,得到自然數(shù)混沌序列,即混沌映射的軌跡點(diǎn)所形成的序列{hk|k=0,1,2,...,(M+N)*n-1},作為魔方變換移位參數(shù)集合H。

Step3、加密操作:

(1)對圖像逐行進(jìn)行參數(shù)為hk的循環(huán)移位,然后再逐列進(jìn)行移位。各行列的移位參數(shù)不同;

(2)重復(fù)(1)操作n次。

Step4、得到加密輸出圖像文件OutImage。

4、解密算法步驟

在得到加密圖像文件和正確的密鑰X0、n的情況下,只需進(jìn)行加密過程的逆操作即可得到正確的解密圖像。

基于魔方變換的圖像加密算法用來給圖像加密以增強(qiáng)加密的效果和安全性。

小知識之矩陣:

矩陣用來表示統(tǒng)計(jì)數(shù)據(jù)等方面的各種有關(guān)聯(lián)的數(shù)據(jù)。這個定義很好地解釋了Matrix代碼制造世界的數(shù)學(xué)邏輯基礎(chǔ)。