本發(fā)明涉及一種基于明文圖像而產(chǎn)生的初始密鑰的復(fù)合混沌圖像加密方法,屬于通信電子技術(shù)與圖像信號(hào)處理技術(shù)領(lǐng)域。
背景技術(shù):隨著物聯(lián)網(wǎng)信息技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)傳輸變得方便與快捷,越來越多的信息和通訊在網(wǎng)絡(luò)中傳輸。圖像由于能夠很直觀清晰的體現(xiàn)傳遞信息的內(nèi)容和含義,較好的傳遞意圖與目的,因此被廣泛的應(yīng)用于信息傳輸??墒菍?duì)于傳輸圖像,由于其內(nèi)在的特殊性(包含機(jī)密與隱私),所以在傳輸中必須進(jìn)行加密處理,以防止發(fā)生信息竊取、數(shù)據(jù)篡改。圖像加密是圖像處理的一個(gè)重要分支,近年來,越來越多的學(xué)者關(guān)注并研究混沌理論在圖像加密中的應(yīng)用。由于混沌系統(tǒng)其內(nèi)在的偽隨機(jī)性、不可預(yù)測(cè)性、非周期性、對(duì)初始條件的極度敏感型等特點(diǎn),因此非常適合保密通信。近幾年來,國(guó)內(nèi)外許多學(xué)術(shù)研究人員提出了一系列的新的混沌算法。例如鄧玥,王廣義,袁方利用Rossler系統(tǒng)的混沌序列和亂序映射,實(shí)現(xiàn)了二次像素加密和一次密鑰映射加密,從而提出的混沌圖像加密算法;張平,張定會(huì),張雅奇根據(jù)復(fù)合混沌系統(tǒng)分別對(duì)圖像進(jìn)行加密,以提高密鑰空間而提出的基于Henon映射和Rossler混沌映射加密算法。此兩種加密方式都是通過混沌系統(tǒng)反復(fù)迭代并對(duì)對(duì)圖像進(jìn)行異或操作從而達(dá)到加密,同時(shí)也擴(kuò)大了密鑰空間,有效抵御強(qiáng)力攻擊,所以加密效果較好。在專利方面,杜翠霞、張定會(huì)、張宗楠的專利——超混沌Rossler系統(tǒng)的彩色圖像加密方法(專利公開號(hào):CN103440613A)提供了一種利用超混沌系統(tǒng)進(jìn)行加密的算法;柴秀麗、武相軍等人專利——基于混沌序列和超混沌系統(tǒng)的彩色圖像加密(專利公開號(hào):CN103489151A)涉及一種對(duì)原始彩色圖像進(jìn)行位級(jí)聯(lián)合置亂,再利用超混沌系統(tǒng)對(duì)其進(jìn)行聯(lián)合擴(kuò)散,達(dá)到加密;張強(qiáng)、薛香蓮、魏小鵬的專利——基于DNA序列與多混沌映射的圖像融合加密方法(專利公開號(hào):CN101706947A)提出一種利用Cubic映射和小波函數(shù)產(chǎn)生的二維混沌序列置亂編碼原始圖像和模板圖像得到的兩個(gè)DNA序列矩陣;然后對(duì)置亂后的兩個(gè)DNA序列矩陣做加法運(yùn)算;最后利用Logistic映射產(chǎn)生的混沌序列與由加法運(yùn)算得到的DNA序列矩陣相作用來得到加密圖像?,F(xiàn)有的大部分混沌加密系統(tǒng)基本都是基于超混沌系統(tǒng)或幾個(gè)三維混沌系統(tǒng)相級(jí)聯(lián),雖然能夠擴(kuò)大其密鑰空間,有效的抵御強(qiáng)力攻擊,但是在保密性方面還是存在一定的缺陷。例如對(duì)于超混沌系統(tǒng),加密時(shí)間周期太長(zhǎng),計(jì)算較復(fù)雜;復(fù)合混沌加密,雖然擴(kuò)大了密鑰空間,但是其加密算法對(duì)明文、密鑰不極度敏感;同時(shí),有些復(fù)合混沌系統(tǒng)之間在構(gòu)建加密算法過程中并無內(nèi)在的相關(guān)性,他們的復(fù)合僅僅是在數(shù)量上的應(yīng)用,只能夠起到擴(kuò)大密鑰空間的作用,所以無法抵御差分攻擊。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是使得圖像加密的保密性得以提高且算法對(duì)明文極度敏感,從而能有效抵御差分攻擊。為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是提供了一種明文構(gòu)建初始密鑰的復(fù)合混沌圖像加密方法,其特征在于,步驟為:步驟1、依據(jù)明文圖像像素值和初始給定值實(shí)現(xiàn)圖像預(yù)處理,確定迭代初始值,包括:步驟1.1、取明文圖像像素的任一水平、豎直及斜對(duì)角上的任意多數(shù)組成三個(gè)數(shù)列;步驟1.2、將步驟1.1得到的三個(gè)數(shù)列中的數(shù)字分別相加,再與1000求模得到三個(gè)數(shù)值,分別記為R,C,H;步驟1.3、任意取三個(gè)初始值,分別記為X10,X20,X30,每個(gè)初始值的取值范圍在[-1,1]之間,且精確到小數(shù)點(diǎn)后四位;步驟1.4、將X10,X20,X30與R,C,H分別相加求和,再擴(kuò)大1000倍,對(duì)255求模,再除以255,得到初始密鑰,分別記為X11,X21,X31;步驟2、利用復(fù)合混沌系統(tǒng)分別對(duì)明文圖像進(jìn)行置亂與擴(kuò)散,達(dá)到對(duì)明文圖像加密的目的,包括:步驟2.1、將初始密鑰X11,X21,X31代入Lorenz系統(tǒng),迭代生成序列x,y,z;步驟2.2、將大小為M×N的明文圖像轉(zhuǎn)換為灰度圖像,得到灰度圖像像素矩陣,將灰度圖像像素矩陣轉(zhuǎn)換為[M×N,1]形式的明文圖像數(shù)字矩陣,再分別從序列x,y,z中選取數(shù)字,組成[M×N,1]形式的置亂數(shù)字矩陣;步驟2.3、把置亂數(shù)字矩陣中的各個(gè)數(shù)值按預(yù)定規(guī)則順序排列從而形成新的置亂數(shù)字矩陣,采用步驟2.2中的置亂數(shù)字矩陣變換至步驟2.3中的新的置亂數(shù)字矩陣時(shí)各個(gè)數(shù)值的位置變化的規(guī)則,對(duì)步驟2.2中的明文圖像數(shù)字矩陣進(jìn)行變化,再還原成[M×N]模式,得到置亂圖像;步驟2.4、將序列x,y,z分別求和,再分別對(duì)255求模和相除得到的值作為Rossler系統(tǒng)迭代的初始值;步驟2.5、經(jīng)由Rossler系統(tǒng)迭代得到的序列x′,y′,z′,在序列x′,y′,z′中分別取若干數(shù)字,組成[M×N]模式的矩陣;步驟2.6、把步驟2.5得到的矩陣與置亂圖像相異或,完成對(duì)明文圖像的加密。本發(fā)明最先是從明文圖像像素中獲取任意三個(gè)序列(分別是水平、垂直、斜向),使其與隨意給定的三個(gè)初始值做求和處理,在此需要注意,求和的兩數(shù)間不要差距太大,預(yù)防某一因素影響不大;對(duì)于所求的和再做求模和求商處理,得到范圍在[-1,1]之間的數(shù),以此作為迭代初始值(即密鑰);后面采用復(fù)合混沌方程對(duì)圖像進(jìn)行置亂與擴(kuò)散,先把初始值作為L(zhǎng)orenz系統(tǒng)的迭代初值進(jìn)行迭代得到序列x,y,z;再把序列x,y,z求和,分別對(duì)255求模和相除得到的值作為Rossler系統(tǒng)迭代的初始值,最后分別利用Lorenz迭代序列和Rossler迭代序列對(duì)明文圖像進(jìn)行加密。本發(fā)明的優(yōu)點(diǎn)在于:現(xiàn)有的加密方式基本都是關(guān)注于對(duì)圖像的置亂與擴(kuò)散,而本發(fā)明的實(shí)現(xiàn)在于,就是對(duì)初始密鑰上的處理,這種改進(jìn)進(jìn)一步完善了設(shè)計(jì)一種安全可靠地加密算法要注意的因素,即:密鑰空間是否足夠大;密文像素之間分布是否互不相關(guān);加密算法是否對(duì)明文和密鑰足夠敏感。而現(xiàn)有的大多數(shù)加密方式,例如超混沌加密,復(fù)合混沌加密方式,他們大都只考慮到前兩個(gè)因素,對(duì)于算法對(duì)密鑰和明文的依賴,并沒有做過多考慮,只是單純由密鑰來控制加密算法。本發(fā)明最先是從明文入手,使得加密算法、密鑰緊緊依賴于明文。這樣的處理,不但擴(kuò)大了密鑰空間,同時(shí)也使得后面算法與明文有密切關(guān)系,增大破譯難度,有效抵抗差分攻擊;同時(shí),再利用復(fù)合混沌系統(tǒng)加密過程中采取前一個(gè)系統(tǒng)迭代值是后一個(gè)系統(tǒng)的迭代初值,這樣使得兩個(gè)混沌方程之間有了一定的聯(lián)系,增強(qiáng)算法敏感性,增大加密效果,以便使得整個(gè)加密過程形成一個(gè)整體,任何地方的微小誤差都會(huì)使得加密發(fā)生錯(cuò)誤,提高加密的靈敏性。附圖說明圖1為本發(fā)明的預(yù)處理模塊框圖;圖2為本發(fā)明的系統(tǒng)框圖;圖3為本發(fā)明的混沌系統(tǒng)迭代初始值來源。具體實(shí)施方式為使本發(fā)明更明顯易懂,茲以優(yōu)選實(shí)施例,并配合附圖作詳細(xì)說明如下。本發(fā)明提供了一種明文構(gòu)建初始密鑰的復(fù)合混沌圖像加密方法,其步驟為:步驟1、依據(jù)明文圖像像素值和初始給定值實(shí)現(xiàn)圖像預(yù)處理,確定迭代初始值,包括:步驟1.1、取明文圖像像素的任一水平、豎直及斜對(duì)角上的任意多數(shù)組成三個(gè)數(shù)列;步驟1.2、將步驟1.1得到的三個(gè)數(shù)列中的數(shù)字分別相加得到三個(gè)數(shù)值,再分別對(duì)1000求模,得到R,C,H;步驟1.3、任意取三個(gè)初始值,分別記為X10,X20,X30,每個(gè)初始值的取值范圍在[-1,1]之間,且精確到小數(shù)點(diǎn)后四位;步驟1.4、將X10,X20,X30與R,C,H分別相加求和,再把和擴(kuò)大1000倍,然后對(duì)255求模,再除以255,得到初始密鑰,分別記為X11,X21,X31;結(jié)合圖1,在本發(fā)明中對(duì)加密的密鑰做了一些處理,目的就是為了增強(qiáng)密鑰的抗破譯能力,因?yàn)樘幚砗蟮牡跏贾?密鑰)對(duì)明文具有很強(qiáng)的依賴性,在參數(shù)的選取上要注意:原始給定的三個(gè)初始值取值范圍要在[-1,1]之間,保留小數(shù)點(diǎn)后四位以上有效數(shù)字記為X10,X20,X30;再利用明文如上述步驟所述,取明文圖像像素的任一水平、豎直、斜對(duì)角上的任意多數(shù)組成三個(gè)數(shù)列,把三個(gè)數(shù)列中的數(shù)字分別相加獲得明文形成的三位數(shù)字,為了保證明文、初始給定值對(duì)密鑰的敏感性,對(duì)明文形成的三位數(shù)也要做相應(yīng)的處理,保證數(shù)字位數(shù)相同,即把這三位數(shù)對(duì)1000求模,得到R,C,H;然后再根據(jù)步驟1.4把X10,X20,X30與R,C,H分別相加求和,再擴(kuò)大1000倍,然后對(duì)255求模,再除以255,記為初值密鑰,就能夠得到取值范圍在[-1,1]之間的密鑰值X11,X21,X31。步驟2、利用復(fù)合混沌系統(tǒng)分別對(duì)明文圖像進(jìn)行置亂與擴(kuò)散,達(dá)到對(duì)明文圖像加密的目的。本發(fā)明同時(shí)也采用復(fù)合混沌系統(tǒng)對(duì)圖像進(jìn)行置亂與擴(kuò)散加密,而復(fù)合混沌系統(tǒng)所用的是Lorenz系統(tǒng)和Rossler系統(tǒng),具體的混沌方程如下所示:Lorenz系統(tǒng)的動(dòng)力學(xué)方程為當(dāng)參數(shù)值為σ=16,ρ=45.92,β=4時(shí),系統(tǒng)是混沌的,式中代表系統(tǒng)狀態(tài)量x,y,z對(duì)時(shí)間t的求導(dǎo)。給系統(tǒng)一定初始值,迭代序列是混沌的。Rossler系統(tǒng)的動(dòng)力學(xué)方程為式中,表示系統(tǒng)狀態(tài)量xi(i=1,2,3)對(duì)時(shí)間t的求導(dǎo);a,b,c為系統(tǒng)參數(shù),當(dāng)a=0.2,b=0.2,c=5.7時(shí),系統(tǒng)是混沌的。接下來結(jié)合圖2和圖3,利用復(fù)合混沌系統(tǒng)對(duì)圖像進(jìn)行加密操作,具體是對(duì)圖像像素的置亂與擴(kuò)散。在對(duì)給定的初值做處理之后得到我們想要的對(duì)明文圖像有依賴的密鑰X11,X21,X31后,以其作為L(zhǎng)orenz系統(tǒng)的迭代初值,產(chǎn)生迭代混沌序列x,y,z,把大小為M×N的明文圖像轉(zhuǎn)換為灰度圖像,得到灰度圖像像素矩陣,將灰度圖像像素矩陣轉(zhuǎn)換為[M×N,1]形式的明文圖像數(shù)字矩陣,再分別從序列x,y,z中選取數(shù)字,組成[M×N,1]形式的置亂數(shù)字矩陣,把置亂數(shù)字矩陣中的各個(gè)數(shù)值按預(yù)定規(guī)則順序(預(yù)定規(guī)則順序可以為由大到小,或者由小到大)排列從而形成新的置亂數(shù)字矩陣,采用置亂數(shù)字矩陣變換至新的置亂數(shù)字矩陣時(shí)各個(gè)數(shù)值的位置變化的規(guī)則,對(duì)明文圖像數(shù)字矩陣進(jìn)行變化,再還原成[M×N]模式,得到置亂圖像。然后再以Rossler系統(tǒng)對(duì)圖像進(jìn)行擴(kuò)散處理:首先利用上述系統(tǒng)產(chǎn)生的迭代序列x,y,z,對(duì)其作處理,即把序列x,y,z分別求和,再分別對(duì)255求模和對(duì)255相除得到取值范圍在[-1,1]之間的三個(gè)數(shù)字,再把這三個(gè)數(shù)字作為Rossler混沌系統(tǒng)的迭代初始值,通過Rossler系統(tǒng)迭代得到的序列x′,y′,z′,在迭代序列x′,y′,z′中分別取若干數(shù)字,組成與圖像像素矩陣相同形式矩陣[M×N,1]形式,把該矩陣與置亂矩陣相異或,完成圖像加密。這樣處理的目的就是為了把整個(gè)加密系統(tǒng)過程連成一個(gè)整體,使得在任何一個(gè)步驟出現(xiàn)微小的偏差都會(huì)被系統(tǒng)無限放大,從而使得加密出現(xiàn)錯(cuò)誤,提高抗破譯的靈敏度。通過加密前的預(yù)處理和復(fù)合混沌系統(tǒng)的應(yīng)用,使得加密的算法不但密鑰空間擴(kuò)大了,而且系統(tǒng)的靈敏性提高了,這種方法更適用于加密。