基于Arnold變換和復(fù)合混沌的分?jǐn)?shù)域圖像加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,設(shè)及一種圖像加密方法,可用于信息安全。
【背景技術(shù)】
[0002] 數(shù)字圖像是目前最流行的多媒體形式之一,在政治、經(jīng)濟(jì)、國防、教育等方面均有 廣泛應(yīng)用。圖像加密是信息安全領(lǐng)域的一個(gè)重要問題,因此圖像信息傳輸和圖像加密技術(shù) 都引起了廣泛關(guān)注。近年來利用分?jǐn)?shù)傅里葉變換和混濁系統(tǒng)對(duì)圖像進(jìn)行加密引起了相關(guān)研 究人員的關(guān)注。
[0003] 對(duì)圖像進(jìn)行加密,通常改變圖像像素位置和像素值。Arnold變換是由俄國數(shù)學(xué)家 V.J.Arnold提出的一種常用的置亂技術(shù)。因?yàn)槠溆?jì)算相對(duì)簡(jiǎn)單,容易實(shí)現(xiàn),經(jīng)常被應(yīng)用于圖 像加密。廣義Arnold變換的變換矩陣中有2個(gè)自由參數(shù),因而運(yùn)用廣義Arnold變換具有更大 的密鑰空間,將該變換與隨機(jī)相位結(jié)合的加密效果更好。但有時(shí)單一的改變像素位置的方 法,并不能使圖像的置亂度達(dá)到較理想的狀態(tài)。
[0004] 混濁現(xiàn)象是由確定性的混濁系統(tǒng)產(chǎn)生的一種隨機(jī)現(xiàn)象?;鞚嵯到y(tǒng)產(chǎn)生的序列具有 隨機(jī)性、類噪聲,還有對(duì)初始值和系統(tǒng)參數(shù)極度敏感等特性,因此混濁在圖像加密領(lǐng)域被廣 泛應(yīng)用。例如2006年,楊華千提出了一種復(fù)合離散混濁系統(tǒng)并將其用于圖像加密;2008年, Gao等人將超混濁系統(tǒng)用于圖像加密,此篇文章的密鑰空間可達(dá)到10?;2011年,楊雪松等人 提出基于Clifford超混濁系統(tǒng)和Logistic混濁系統(tǒng)的復(fù)合超混濁系統(tǒng)的加密方法,并且運(yùn) 種加密方法與明文有一定的相關(guān)性,運(yùn)種加密方法再次增大了密鑰空間,在密文反饋上也 得到了實(shí)現(xiàn)。但是W上方法僅使用混濁來對(duì)圖像進(jìn)行加密。由于復(fù)合混濁比logistic混濁 映射的初值敏感性更好,復(fù)雜度更高,具有很好的混濁特性,將其與廣義Arnold變換結(jié)合可 W使圖像置亂程度更高,從而能更好地加密圖像。值得注意的是置亂加密圖像只是在圖像 的空間域上進(jìn)行變換,一旦密文丟失部分信息,解密圖像也會(huì)隨之丟失那部分信息。
[0005] 分?jǐn)?shù)傅里葉變換是在變換域上進(jìn)行圖像加密,作為一種新的加密工具,它受到了 廣大研究人員的關(guān)注。Mendlovic和化ahas在1993年實(shí)現(xiàn)了分?jǐn)?shù)傅里葉變換在光學(xué)領(lǐng)域的 應(yīng)用,此后光學(xué)領(lǐng)域中分?jǐn)?shù)傅里葉變換被應(yīng)用得很廣泛。由于分?jǐn)?shù)傅里葉變換的階數(shù)及其 可加性等特性,可W增加圖像加密方法的自由度,從而增大密鑰空間。另外,分?jǐn)?shù)傅里葉變 換是在變換域上進(jìn)行的圖像加密,其加密過程是:先從空間域轉(zhuǎn)換到變換域,接著對(duì)變換系 數(shù)進(jìn)行保密處理,即對(duì)其變換后的變換系數(shù)加密。所W,當(dāng)密文在傳輸中丟失部分信息,解 密圖像仍含有原始圖像的大部分信息。但是單獨(dú)使用分?jǐn)?shù)傅里葉變換加密的密鑰的敏感性 并不高,有很大的被破譯的風(fēng)險(xiǎn)。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于針對(duì)上述已有技術(shù)的不足,提供一種基于Arnold變換和復(fù)合混 濁的分?jǐn)?shù)域圖像加密方法,W提高圖像傳輸?shù)陌踩院兔荑€的敏感性。
[0007] 本發(fā)明的技術(shù)方案是:利用廣義Arnold變換對(duì)待加密圖像進(jìn)行初步置亂,然后進(jìn) 行隨機(jī)相位編碼,接著對(duì)其進(jìn)行分?jǐn)?shù)傅里葉變換,最后運(yùn)用復(fù)合混濁對(duì)圖像進(jìn)行置亂,最后 得到加密圖像。其實(shí)現(xiàn)步驟包括如下:
[000引(1)輸入一幅NXN的灰度圖像F作為待加密圖像,獲得其二維圖像矩陣f(s,t);
[0009] (2)選取廣義Arnold變換的變換矩陣參數(shù)a、b和迭代次數(shù)m,對(duì)圖像矩陣f(s,t)進(jìn) 行m次廣義Arnold變換,得到置亂后的圖像矩陣fi(s,t);
[0010] (3)將置亂后的圖像矩陣fi(s,t)與矩陣函數(shù)e邱(j2TOi(x))作點(diǎn)積,進(jìn)行隨機(jī)相位 編碼,得到編碼后的圖像矩陣f2(S,t);
[0011] (4)選取分?jǐn)?shù)傅里葉變換在x、y方向的變換階數(shù)P1、P2,將編碼后的圖像矩陣f2(s, t)進(jìn)行二維分?jǐn)?shù)傅里葉變換,得到變換后的圖像矩陣F,,柏V);
[0012] (5)分別選取xo、yo作為復(fù)合混濁系統(tǒng)的初值,并將該初值代入復(fù)合混濁系統(tǒng)方程 中進(jìn)行迭代,得到作用于X方向的混濁序列{xi}和作用于y方向的混濁序列{yi},其中i = 〇, 1,2,. . .,9999+N;將運(yùn)兩個(gè)混濁序列的前10000個(gè)數(shù)值去掉并對(duì)其重新編號(hào),得到作用于X 方向的混濁序列{sj}、作用于y方向的混濁序列化j},j = 0,l,2,...,N-l;
[OOU] (6)把混濁序列山}、{k山按從小到大的順序進(jìn)行排序,得到兩個(gè)有序的新混濁序 列{s/j和化/ 并分別記錄新混濁序列{s/化/ j中的每個(gè)元素在混濁序列{sj和化j} 中的位置編號(hào),得到行置亂地址集合0={θ〇,θι,. . .,Θν-ι}和列置亂地址集合 Ρ='{%,φ、,…,巧 u-\U
[0014] (7)將步驟(4)中得到的變換后的圖像矩陣F,,,J啤ν')的行、列依次按照行置亂地址 集合Q和列置亂地址集合Ρ中的元素進(jìn)行置亂,得到加密后的圖像矩陣g(u,v)。
[0015] 本發(fā)明的有益效果為:
[0016] 1.本發(fā)明利用廣義Arnold變換和復(fù)合混濁進(jìn)行全局像素置亂,并且用分?jǐn)?shù)傅里葉 變換進(jìn)行處理,極大降低了密文像素值間的相關(guān)性;
[0017] 2.本發(fā)明首先利用廣義Arnold變換進(jìn)行初步置亂加密,然后利用隨機(jī)相位編碼對(duì) 圖像進(jìn)行二次加密,接著利用分?jǐn)?shù)傅里葉變換進(jìn)行Ξ次加密,最后利用混濁序列置亂進(jìn)行 四次加密,運(yùn)種多級(jí)加密使加密方法具有很高的安全性;
[0018] 3.本發(fā)明使用分?jǐn)?shù)傅里葉變換,增強(qiáng)了圖像加密的魯棒性;
[0019] 4.本發(fā)明采用復(fù)合混濁系統(tǒng),具有敏感性比較高的密鑰參數(shù)。
【附圖說明】
[0020] 圖1是本發(fā)明的加密過程流程圖;
[0021 ]圖2是本發(fā)明的解密過程流程圖;
[0022] 圖3是本發(fā)明使用的原始圖像;
[0023] 圖4是對(duì)圖巧日密后的圖像;
[0024] 圖5是對(duì)圖4解密后的圖像;
[0025] 圖6是本發(fā)明中兩個(gè)混濁初始值聯(lián)合變化時(shí)密鑰敏感性分析圖;
[0026] 圖7用本發(fā)明中兩個(gè)分?jǐn)?shù)傅里葉變換階數(shù)聯(lián)合變化時(shí)密鑰敏感性分析圖;
[0027] 圖8是僅用復(fù)合混濁方法和本發(fā)明方法加密后的圖像在遭到不同程度的裁剪后的 圖像及其對(duì)應(yīng)的解密圖。
【具體實(shí)施方式】
[0028] 本發(fā)明的具體實(shí)施包括加密和解密兩部分:
[0029] 一、參考圖1,本發(fā)明加密步驟如下:
[0030] 步驟1,輸入待加密圖像,獲得其二維圖像矩陣f(s,t)。
[0031 ] 調(diào)用imread函數(shù)讀入一幅MATLAB軟件中自帶的NXN的灰度圖像cameraman作為待 加密圖像,如圖3所示,獲得其二維圖像矩陣f(s,t),此時(shí)N=256。
[0032] 步驟2,對(duì)圖像矩陣f(s,t)進(jìn)行100次廣義Arnold變換,得到置亂后的圖像矩陣fi (s,t)〇
[0033] 廣義Arnold變換公式如下:
[0034]
[0035] 其中
稱為變換矩陣,x、y分別為變換前的橫坐標(biāo)、縱坐標(biāo),χ/、/為 廣義Arnold變換作用后的橫坐標(biāo)、縱坐標(biāo),mod表示模運(yùn)算;
[0036] 選取廣義Arnold變換的變換矩陣參數(shù)a=l,b=l和迭代次數(shù)m= 100,其變換步驟 如下:
[0037] 首先,獲取圖像矩陣f(s,t)中的每一個(gè)像素點(diǎn)的坐標(biāo)(x,y)處的像素值;
[003引然后,將圖像矩陣f(s,t)中的每一個(gè)像素點(diǎn)的坐標(biāo)(x,y)都按照上述的廣義 Arnold變換進(jìn)行坐標(biāo)變換,得到坐標(biāo)(X',y');
[0039] 接著,將原像素值賦到新坐標(biāo)(χ/,/)上,從而完成一次廣義Arnold變換;
[0040] 再重復(fù)進(jìn)行上述變換99次,得到置亂后的圖像矩陣fi(s,t)。
[0041] 步驟3,將置亂后的圖像矩陣fi(s,t)進(jìn)行隨機(jī)相位編碼,得到編碼后的圖像矩