數(shù)字圖像文件加密方法之Logistic與標(biāo)準(zhǔn)映射

基于Logistic和標(biāo)準(zhǔn)映射,提出了新的數(shù)字圖像文件加密方法。即在Logistic映射和標(biāo)準(zhǔn)映射的基礎(chǔ)上,構(gòu)造一種具有強(qiáng)非線性耦合結(jié)構(gòu)的置亂變換(類似于傳統(tǒng)加密方式中的Feistel結(jié)構(gòu))來實(shí)現(xiàn)圖像像素位置的置亂變換。然后對置亂后像素的灰度值進(jìn)行替代變換,并將每一個(gè)像素值擴(kuò)散到密圖其他像素中,以改變圖像的統(tǒng)計(jì)特性,達(dá)到更好的加密效果。

一、加密算法原理

1、Logjstic混沌映射

Logistic映射是一種可產(chǎn)生混沌的非線性系統(tǒng),0<μ≤4,O<x<l,v∈N,μ為分岔參數(shù),xn在區(qū)間[0,1]上遍歷。研究表明,當(dāng)3.569945---<μ≤4時(shí),映射處于混沌狀態(tài)。

2、標(biāo)準(zhǔn)映射

人們對于彈跳球模型的研究由來已久,標(biāo)準(zhǔn)映射是彈跳球模型在高彈跳情形下的二維映射。標(biāo)準(zhǔn)映射形式上為顯函數(shù),卻具有極其豐富的動力學(xué)性質(zhì),是研究混沌現(xiàn)象的基本模型,其理論意義重大,已在理論物理、力學(xué)等各個(gè)領(lǐng)域得到了深入研究。

在混沌動力學(xué)中有一種標(biāo)準(zhǔn)映射,其定義如下參數(shù)k為正常數(shù)。

二、加密算法設(shè)計(jì)

1、置亂變換

為了設(shè)計(jì)置亂變換系統(tǒng),需要先將式(3)和式(4)離散化,i,j,i’,j',N均為整數(shù)。函數(shù)φ(.)和ψ(.)應(yīng)選擇為對其各自的自變量充分敏感的函數(shù),而混沌系統(tǒng)剛好滿足這一特性,因此選取函數(shù)φ(.)和ψ(.)為:

式中,round函數(shù)表示按四舍五入方式求整數(shù),cn,cn'為密鑰序列,由Logistic映射迭代式(l)產(chǎn)生,且在Logistic映射控制參數(shù)為μ1、初值為c(0)時(shí)產(chǎn)生cn;在控制參數(shù)為μ2、初值為cn'(0)時(shí)產(chǎn)生cN'。為了取得更好的隨機(jī)性,取迭代m次(可設(shè)m>10000)以后的迭代值。

應(yīng)用式(8)可以對大小為N×jV的數(shù)字圖像進(jìn)行像素置亂變換,在上述系統(tǒng)中,i,j為圖像像素的當(dāng)前位置坐標(biāo),i',J'為置亂后該像素的位置坐標(biāo)。

2、灰度值變換

置亂和替代是加密技術(shù)中的兩個(gè)基本方法。除了上述置亂操作,下面將引入對像素值的替代變換。設(shè)I(i,j)是位置為(i,j)的像素的灰度值,I’(i,j)為I(i,j)經(jīng)過替代變換后的值,I'(i,j)為替代變換循環(huán)中上一個(gè)處理過的像素灰度值。這里我們設(shè)置一個(gè)替代變換放大倍數(shù)Gn,利用Logistic映射式(1),取控制參數(shù)為μ3、初值為g(0),同樣取迭代m次之后的混沌序列產(chǎn)生gn,通過上面的操作,可以將加密圖像中每一個(gè)像素值都聯(lián)系在一起,也就是擴(kuò)散到密圖所有像素中,改變?nèi)魏我粋€(gè)像素的像素值,都會影響到所有像素,從而提高了替代變換系統(tǒng)的安全強(qiáng)度。

3、加密解密算法

假設(shè)要加密的數(shù)字圖像其大小為N×N,灰度級為256,加密算法如下:

(1)讀人原始圖像和密鑰K;

(2)將給定密鑰Keyl=(μ1,c(0),m)和Key2=(μ2,c'(0),m)分別帶人Logistic映射式(1),分別取迭代m次以后的值產(chǎn)生混沌序列cN和cn’;

(3)將cN和cN'帶人式(9),構(gòu)造函數(shù)φ(.)和ψ(.);

(4)選取原圖中任意一點(diǎn),應(yīng)用式(7)對原始圖像像素進(jìn)行置亂變換,直至圖像中所有像素完成置亂變換;

(5)將給定密鑰Key3=(μ3,g(o),m)帶人Logistic映射式(1),取迭代研次以后的值產(chǎn)生混沌序列g(shù)n,并將函帶入式(11)得到Gn;

(6)對置亂過后的圖像,應(yīng)用式(12)按照電視掃描線方式從第一個(gè)像素開始對圖像進(jìn)行像素值替代變換;

(7)重復(fù)步驟(6)N×N次,直至置亂后圖像的所有像素值被替代;

(8)完成一輪加密操作后,可根據(jù)需要進(jìn)行多輪加密。

解密算法與加密算法剛好相反,要先對密圖進(jìn)行警代變換,應(yīng)用式(13)采用逆電視掃描線的方式從最后一個(gè)像素開始對密圖像素進(jìn)行替代變換,直至第一個(gè)像素也替代變換完畢。然后對此時(shí)的圖像進(jìn)行逆置亂變換,即運(yùn)用式(8)對此時(shí)圖像進(jìn)行逆置亂變換,直至圖像中所有像素均完成逆置亂變換。

三、加密算法分析及仿真實(shí)驗(yàn)

本文加密算法先根據(jù)標(biāo)準(zhǔn)映射設(shè)計(jì)了像素的置亂變換,又通過替代變換使各像素值改變并相互依賴,所采用的加密解密算法都具有迭代結(jié)構(gòu),因而適合計(jì)算機(jī)快速計(jì)算;對于圖像矩陣,也不需要進(jìn)行預(yù)處理,提高了效率。同時(shí),應(yīng)用混沌系統(tǒng)產(chǎn)生了算法中各部分所需要的密鑰流,使其簡單快速又具有非線性,還具有對初始值敏感的特性。

為了不被窮舉攻擊解密圖像,圖像加密方案應(yīng)該具有盡可能大的密鑰空間。本文算法中由于密鑰參數(shù)有7個(gè),并且是在實(shí)數(shù)范圍內(nèi)取值,因此算法有足夠大的密鑰空間,使得窮舉攻擊不可能。

1、加密密鑰敏感性測試

仿真環(huán)境為Matlab 7.O,原始圖像為256×256的Lena灰度圖像。用密鑰K1=(3.86,3.67,3.72,0. 86,0. 76,0.59,10000)進(jìn)行加密,加密一輪,分別使用K1及與K1略有不同的K2=(3. 6,3.67,3.72,0.86,0.76,0.5900001,10000)進(jìn)行解密。

通過實(shí)驗(yàn)結(jié)果可以看出,當(dāng)解密密鑰與加密密鑰有一點(diǎn)微小的差別時(shí),都完全不能正確解密出原始圖像,所以本算法對密鑰有極強(qiáng)的敏感性。而且可以看出,在加密只進(jìn)行一輪的情況下,已經(jīng)達(dá)到了相當(dāng)好的效果,也可以根據(jù)需要進(jìn)行多輪加密。

2、統(tǒng)計(jì)分析

抗統(tǒng)計(jì)分析攻擊能力的好壞是評判圖像加密算法優(yōu)劣的重要標(biāo)準(zhǔn)。

1)統(tǒng)計(jì)直方圖

加密前后的圖像直方圖有很大的區(qū)別,加密后像素值分布非常均勻,非常好地掩蓋了原始圖像的分布規(guī)律,增加了破譯難度。

2)相鄰像素的相關(guān)性

相鄰像素的相關(guān)性可以反映出圖像像素的擴(kuò)散程度。原始圖像中相鄰2個(gè)像素的相關(guān)性通常非常大,加密后圖像相鄰像素的相關(guān)性應(yīng)該接近為O。隨機(jī)選取1500對像素對,測試其水平方向、垂直方向和對角方向的像素相關(guān)性。

明顯可見加密后圖像相鄰像素間的相關(guān)性呈隨機(jī)的對應(yīng)關(guān)系。從表1也可以看出,加密圖像的相鄰像素相關(guān)系數(shù)接近于零,其相鄰像素已基本不相關(guān)。

小知識之Logistic

Logistic函數(shù)或Logistic曲線是一種常見的S形函數(shù),它是皮埃爾·弗朗索瓦·韋呂勒在1844或1845年在研究它與人口增長的關(guān)系時(shí)命名的。