數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

鑒于傳統(tǒng)圖像加密技術(shù)和低維混沌加密技術(shù)各自的局限性,將Lorenz混沌系統(tǒng)與數(shù)字圖像置亂技術(shù)相結(jié)合,我們?cè)O(shè)計(jì)了一種基于三維混沌系統(tǒng)的數(shù)字圖像加密算法。這種加密算法,首先,對(duì)系統(tǒng)輸出的實(shí)數(shù)值混沌序列進(jìn)行預(yù)處理;其次,以此實(shí)數(shù)值混沌序列直接構(gòu)造圖像置亂索引矩陣;最后,以8×8塊為單位實(shí)現(xiàn)數(shù)字圖像的空域加密。

一、Lorenz混沌序列及預(yù)處理

混沌之所以適合于數(shù)字信息文件加密,是因?yàn)榛煦邕\(yùn)動(dòng)具有以下特征:(1)既非周期又不收斂,運(yùn)動(dòng)軌跡上的點(diǎn)遍歷整個(gè)區(qū)域;(2)運(yùn)動(dòng)軌跡在有限區(qū)域內(nèi)不斷伸縮、折疊,使系統(tǒng)輸出類似于隨機(jī)噪聲;(3)系統(tǒng)運(yùn)動(dòng)對(duì)初始值極為敏感,任意接近兩點(diǎn)的長(zhǎng)期運(yùn)動(dòng)不可預(yù)測(cè)。這些動(dòng)力學(xué)特點(diǎn)使得混沌序列寬頻帶,類隨機(jī),難以破譯:隨初始值的不同能產(chǎn)生大量不相關(guān)的混沌序列,加密空間大;由確定性系統(tǒng)產(chǎn)生,使得混沌序列可控制可再生,為加密和解密提供了可能。

Lorenz系統(tǒng)是經(jīng)典的三維混沌系統(tǒng),以Lorenz系統(tǒng)生成加密混沌序列有三大優(yōu)點(diǎn):一是系統(tǒng)結(jié)構(gòu)較低維系統(tǒng)復(fù)雜,系統(tǒng)變量的實(shí)數(shù)值序列更不可預(yù)測(cè);二是對(duì)系統(tǒng)輸出的實(shí)數(shù)值混沌序列
進(jìn)行處理,可產(chǎn)生單變量或多變量組合的加密混沌序列,使得加密序列的設(shè)計(jì)非常靈活;三是系統(tǒng)的三個(gè)初始值和三個(gè)參數(shù)都可以作為生成加密混沌序列的種子密鑰,若設(shè)計(jì)過(guò)程中再加入部分控制變量,圖像加密算法的密鑰空間將大大高于低維混沌系統(tǒng)。

Lorenz系統(tǒng)的動(dòng)力學(xué)方程為:

數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

式中,σ,r,b為系統(tǒng)參數(shù),典型值為σ=10,r=28,b=8/3。在保持σ、b不變,r>24.74時(shí)Lorenz系統(tǒng)進(jìn)入混沌態(tài)。Lorenz三維系統(tǒng)需要用數(shù)值積分來(lái)求得實(shí)數(shù)值混沌序列,典型的數(shù)值積分法有一階Eujer法和四階Runge-Kutta法,前者計(jì)算量和計(jì)算精度遠(yuǎn)比后者低,但對(duì)圖像置亂來(lái)說(shuō),考慮的是混沌序列類隨機(jī)性所能達(dá)到的置亂程度,并不考慮混沌序列取值的精確度.所以本算法回歸采用一階Euler法,既不失Lorenz系統(tǒng)的混沌特性,又能提高算法的計(jì)算速度。

僅以x序列的特性為示例,如圖1所示。系統(tǒng)初始值:xo=1.1840,yo= 1.3627,zo=1.2519。控制參數(shù):σ=10,r=28,b=8/3。積分步長(zhǎng)h=0.001,迭代次數(shù)n= 10的4次方;截取長(zhǎng)度34000-35 000。按照Golomb對(duì)偽隨機(jī)序列提出的三個(gè)公設(shè),理想的混沌序列應(yīng)具有的統(tǒng)計(jì)特性:均勻分布,自相關(guān)是δ函數(shù),互相關(guān)是零。而在上述條件下,x,y,z實(shí)數(shù)值混沌序列值域分別為-20 <x<20,-28<y<28,0<z<50,不利于批處理;平均值分別為Vx= -1.9999,Vy= -2.008,Vz=24.066,均勻分布特性較差:局部取值呈現(xiàn)一定的單調(diào)性,容易被破譯;自相關(guān)和互相關(guān)特性均不夠理想,限制了序列的靈活使用。

通過(guò)近千組數(shù)據(jù)分析,對(duì)x,y,z實(shí)數(shù)值混沌序列需要做如下預(yù)處理:(1)去除各實(shí)數(shù)值的整數(shù)部分,統(tǒng)一值域;(2)為增強(qiáng)序列取值的無(wú)規(guī)則性及整體分布的均勻性,在去整的基礎(chǔ)上再將小數(shù)點(diǎn)后移數(shù)位。整個(gè)預(yù)處理過(guò)程可由下式實(shí)現(xiàn):

數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

式中,round(.)為取最接近整數(shù)運(yùn)算。

圖2是預(yù)處理后工實(shí)數(shù)值混沌序列及自相關(guān)特性和與y序列的互相關(guān)性,預(yù)處理結(jié)果:x,y,z列的值域?yàn)?-0.5,0.5):平均值Vx=-0.001 3897,Vy=-0.000 903 0,Vz=0.0008211,基本接近于零;自相關(guān)Rrmax=0.0126,Rrmay=0.013 1,Rrmaz=0.0094,即自相關(guān)特性是較理想的6函數(shù);互相關(guān)最大偏差Rcxmax= 0.0147,Rcymax=0.0 11 9,Rczmax 0.012 1,即互相關(guān)特性近似為零特性;x,y,z序列取值更加無(wú)規(guī)則。比較圖1和圖2可以直觀地看出,預(yù)處理后的混沌序列具有良好的均勻分布特性、隨機(jī)統(tǒng)計(jì)特性和相關(guān)特性。

數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

本文還對(duì)預(yù)處理后的x,y,z實(shí)數(shù)值混沌序列對(duì)初始值和系統(tǒng)參數(shù)敏感性做了測(cè)試。表1給出了以系統(tǒng)參數(shù)r和初始值x0而發(fā)生微小變化為例的測(cè)試結(jié)果,其中的位變化率指索引序列(定義在后)的位變化率??梢钥闯?,當(dāng)系統(tǒng)參數(shù)r和初始值xo發(fā)生10的-10次方微小變化時(shí),除去序列的初始段,索引序列的位變化率達(dá)100%。

數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

結(jié)果表明;預(yù)處理后的x,y,z序列有著更強(qiáng)的偽隨機(jī)特性,用于圖像置亂將會(huì)有更好的置亂效果;良好的相關(guān)特性使x,y,z三序列可獨(dú)立地構(gòu)成三個(gè)單變量加密混沌序列,也可多變量組合構(gòu)成多個(gè)加密混沌序列,有望實(shí)現(xiàn)圖像的多路并行加密;對(duì)系統(tǒng)參數(shù)和初始值極強(qiáng)的敏感性說(shuō)明,除非確切知道密鑰,否則很難進(jìn)行有效的解密。理論上本算法密鑰空間為無(wú)窮大,可以很方便地構(gòu)成一次一密的密鑰體制。由此說(shuō)明預(yù)處理過(guò)程是正確可行的。

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

本文基于圖像空間幾何置亂的機(jī)理,利用Lorenz系統(tǒng)的混沌序列來(lái)構(gòu)造置亂規(guī)則矩陣P,在此稱為置亂索引矩陣。

(1)定義P,其任一元素Pij∈_{1,2.…,l),且Pij=Pkl,當(dāng)且僅當(dāng)i=j,k=l;

(2)按需要長(zhǎng)度,隨機(jī)截取預(yù)處理后的x,y,z實(shí)數(shù)值混沌序列,然后按升序排列,[x,lx]=sort(x)[y,ly]=sort(y),[z,lz]sort(z);

(3)索引序列l(wèi)x,ly,lz即用來(lái)構(gòu)造置亂索引矩陣Px,Py,Pz。索引序列指定Px,Py,Pz中各元素的幾何位置,各元素按索引序列的順序賦為1-l的自然數(shù)。

為提高圖像文件加密效率,不破壞圖像壓縮效果,將圖像進(jìn)行8x8分塊,以塊為單位對(duì)圖像進(jìn)行全局置亂變換。因?yàn)镴PEG是以8x8的圖像塊為基本單位進(jìn)行編碼的,所以這樣做不影響塊的DCT系數(shù)的分布,使得Huffman編碼表能按最優(yōu)方式使用,因此該圖像加密算法能抵抗圖像壓縮攻擊。這樣整個(gè)加密算法的步驟如下:

(1)輸入原始圖像,預(yù)處理:邊界填充0(黑色),使圖像大小為8x8塊的整數(shù)倍。

(2)構(gòu)造置亂索引矩陣,輸入密鑰(σ,r,b;x0,yo,zo),生成實(shí)數(shù)值混沌序列{xi;i=1,2,3,...},{yi;i=1,2,3,...},{zi;i=1,2,3,...},對(duì)x,y,z實(shí)數(shù)值混沌序列進(jìn)行預(yù)處理;按需要長(zhǎng)度l= (MxN)/(8x8)隨機(jī)截取實(shí)數(shù)值混沌序列,生成索引序列{lx;i=1,2,3,...},{ly;i=1,2,3,...},{lz;i=1,2,3,...};構(gòu)造置亂索引矩陣Px,Py,Pz。

(3)圖像置亂。以塊為單位,按置亂索引矩陣規(guī)則,重排圖像各塊的幾何位置。

解密算法是上述加密算法的逆過(guò)程。

從結(jié)構(gòu)上來(lái)說(shuō),整個(gè)圖像加密算法主要由三部分組成,一是對(duì)實(shí)數(shù)值混沌序列的預(yù)處理,二是構(gòu)造置亂索引矩陣,三是以塊為單位的空域全局置亂。這里韻關(guān)鍵是對(duì)x,y,z實(shí)數(shù)值混沌序列進(jìn)行預(yù)處理,使其具有更強(qiáng)的偽隨機(jī)特性,以加強(qiáng)置亂索引矩陣的隨機(jī)性,從而提高圖像置亂程度和算法的破譯難度:Lorcnz混沌系統(tǒng)對(duì)系統(tǒng)參數(shù)和初始值高度敏感性,使得算法的密鑰空間非常大,使加密者可以隨意地選擇密鑰,這樣的選擇可以使算法有著幾乎一次一密的安全特性。

三、仿真

選擇具有不同紋理特征,大小均為512x512的Lena, Peppcrs,Plane三幅標(biāo)準(zhǔn)圖像作為仿真對(duì)象,如圖3所示。

數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

選擇密鑰覷參數(shù)σ=10,r=28,b=8/3。初始值x0= 1.1840,yo=1.3627,zo=1.2519。分別用x,y,z實(shí)數(shù)值混沌序列對(duì)三幅圖像文件進(jìn)行加密,結(jié)果如圖4所示。

數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

圖5是以Lcna圖像為例的正確解密圖像和錯(cuò)誤解密圖像,錯(cuò)誤解密圖像分別對(duì)應(yīng)參數(shù)r有10-10偏差和初值xo有10-1o偏差時(shí)的錯(cuò)誤解密,如果要采取唯密文攻擊的話,要三幅圖像都正確解密,則要搜索的密鑰量高達(dá)3x40961。如果圖像更大,可以說(shuō)算法能夠抵抗唯密文攻擊,對(duì)選擇明文的攻擊也有較高的安全性。

數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

數(shù)字圖像在傳輸過(guò)程中,很難避免一些必要的數(shù)據(jù)處理或人為攻擊,如壓縮、濾波、噪聲污染及幾何失真等.對(duì)一些比較常見(jiàn)的處理和攻擊,本文也進(jìn)行了仿真測(cè)試,測(cè)試結(jié)果以圖6示之,其中三圖分別是以Lena為例的加密圖像經(jīng)JPEG壓縮后的解密圖像,以Peppers為例的加密圖像受到IO%的高斯噪聲污染后的解密圖像,以Planc為例的加密圖像經(jīng)破壞性的無(wú)規(guī)則剪切后的解密圖像,仿真結(jié)果表明,該圖像加密算法具有可行性、可靠性以及抗攻擊和抗干擾能力。

數(shù)字圖像加密算法之Lorenz混沌系統(tǒng)加密

小知識(shí)之動(dòng)力學(xué)

動(dòng)力學(xué)是理論力學(xué)的一個(gè)分支學(xué)科,它主要研究作用于物體的力與物體運(yùn)動(dòng)的關(guān)系。動(dòng)力學(xué)的研究對(duì)象是運(yùn)動(dòng)速度遠(yuǎn)小于光速的宏觀物體。動(dòng)力學(xué)是物理學(xué)和天文學(xué)的基礎(chǔ),也是許多工程學(xué)科的基礎(chǔ)。許多數(shù)學(xué)上的進(jìn)展也常與解決動(dòng)力學(xué)問(wèn)題有關(guān),所以數(shù)學(xué)家對(duì)動(dòng)力學(xué)有著濃厚的興趣。