本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,特別涉及一種圖像加密方法,可用于信息安全。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)以及多媒體技術(shù)的迅猛發(fā)展,在成功解決因數(shù)字圖像數(shù)據(jù)量大而導(dǎo)致的存儲(chǔ)和傳輸瓶頸后,數(shù)字圖像已成為信息表達(dá)方式的主流。但數(shù)字圖像在傳輸過程中仍存在諸多安全隱患,圖像信息安全問題不僅關(guān)系到個(gè)人隱私和企業(yè)的商業(yè)機(jī)密,而且更重要的是關(guān)系到國(guó)家的安全,特別是軍事機(jī)密,因此圖像信息的安全備受重視。圖像加密技術(shù)是保護(hù)圖像安全最直接有效的手段,已成為信息加密技術(shù)的重要熱點(diǎn)課題,研究圖像加密具有重要的意義。
將數(shù)字圖像作為矩陣進(jìn)行有限次的初等變換以達(dá)到使圖像像素點(diǎn)雜亂無(wú)章的效果,這是基于置亂的圖像加密技術(shù)的核心思想,如貓臉變換。貓臉變換可以看成是將矩陣裁剪和拼接的過程,但由于貓臉變換固有的動(dòng)力系統(tǒng)特性,當(dāng)運(yùn)行到特定的次數(shù)之后圖像像素點(diǎn)又會(huì)恢復(fù)原來(lái)的排列,也即貓臉變換的周期性。廣義貓臉變換是貓臉變換的推廣,具有2個(gè)參數(shù),但僅用這一種方法并不能使圖像的置亂程度達(dá)到較理想的狀態(tài)。
由于混沌系統(tǒng)對(duì)初始條件和控制參數(shù)極其敏感,還具有內(nèi)隨機(jī)性,非周期性,遍歷性等特點(diǎn),所以利用混沌進(jìn)行圖像加密是一種有效加密方法。目前混沌加密技術(shù)的研究大多是基于一維和二維混沌系統(tǒng)的研究,雖然具有形式比較簡(jiǎn)單,運(yùn)行速度快等優(yōu)點(diǎn),但是基于低維混沌的加密算法密鑰空間小,導(dǎo)致安全性不高,有研究表明低維混沌系統(tǒng)保密性是不夠的。雖然有使用多維的混沌系統(tǒng)加密圖像,但基于這些系統(tǒng)的加密方法的安全性仍然還不夠高,而超混沌系統(tǒng)具有不少于兩個(gè)的李雅普諾夫指數(shù),具有更大的密鑰空間、更好的隨機(jī)性,表現(xiàn)出更復(fù)雜的系統(tǒng)特征,用超混沌系統(tǒng)對(duì)數(shù)字圖像進(jìn)行加密的效果比低維的混濁系統(tǒng)更好。廣義三維Henon混沌是超混沌系統(tǒng),具有兩個(gè)李雅普諾夫指數(shù)。若用單一的混沌系統(tǒng)加密圖像,密鑰空間相對(duì)小,安全性能較低,且一些混沌系統(tǒng)的不安全性已經(jīng)被證明,綜合更多的混沌系統(tǒng)有更大的密鑰空間,更高的安全性。
傳統(tǒng)的使用混沌對(duì)圖像加密方法主要是利用混沌序列進(jìn)行置亂再結(jié)合異或運(yùn)算進(jìn)行加密。其存在的不足是:1.單用混沌序列對(duì)圖像中的像素置亂的不夠充分,沒有與廣義貓臉變換結(jié)合進(jìn)行置亂的效果好,所以安全性不高;2.混沌生成序列長(zhǎng)度的范圍僅僅局限于圖像長(zhǎng)寬之和的長(zhǎng)度或者是和圖像大小相等的長(zhǎng)度,沒有對(duì)更多的混沌序列加以利用,安全性受到一定的限制;3.異或運(yùn)算的操作過于簡(jiǎn)單,相比于結(jié)合混沌序列和圖像信息融合技術(shù)進(jìn)行加密的效果要差,故安全性相對(duì)較差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)上述已有技術(shù)的不足,提供一種基于貓臉變換和混沌的圖像信息融合加密方法,以提高圖像加密的安全性。
本發(fā)明的技術(shù)方案是:首先對(duì)待加密圖像利用廣義貓臉變換進(jìn)行初步置亂,然后將初步置亂的圖像插入由廣義三維Henon混沌系統(tǒng)生成的長(zhǎng)寬為待加密圖像4倍的圖像,最后利用圖像信息融合技術(shù)縮小圖像,得到加密圖像。其實(shí)現(xiàn)步驟包括如下:
(1)輸入一幅N×N的灰度圖像F,獲得該灰度圖像的二維矩陣f(s,t);
(2)選取廣義貓臉變換的變換矩陣的兩個(gè)參數(shù)a、b和迭代次數(shù)m,對(duì)灰度圖像的二維矩陣f(s,t)進(jìn)行m次廣義貓臉變換,得到置亂后的圖像矩陣f1(s,t);
(3)分別選取x1,0、y1,0、z1,0作為廣義三維Henon超混沌系統(tǒng)的初值,并將該初始值代入廣義三維Henon超混沌系統(tǒng)中進(jìn)行迭代,得到三個(gè)廣義三維Henon超混沌序列{x1,i}、{y1,i}、{z1,i},i=1,2,...,4N×4N;
(4)將第一個(gè)廣義三維Henon超混沌序列{x1,i}的值映射到0-255之間,再將該廣義三維Henon超混沌序列{x1,i}按次序逐行排列成長(zhǎng)為4N、寬為4N的混沌生成圖像矩陣f*(s,t);
(5)分別選取x2,0、y2,0、z2,0作為洛倫茲混沌系統(tǒng)的初值,將該初始值代入洛倫茲混沌系統(tǒng)中進(jìn)行求解,得到三個(gè)初始的洛倫茲混沌序列{x2,j}、{y2,j}、{z2,j},j=1,2,...,4000+N×N;
(6)選取第一個(gè)初始的洛倫茲混沌序列{x2,j},舍去該洛倫茲混沌序列{x2,j}的前4000個(gè)值,重新對(duì)其進(jìn)行編號(hào),得到洛倫茲混沌序列{x′2,ω},ω=1,2,...,N×N;
(7)對(duì)洛倫茲混沌序列{x′2,ω}的第ω個(gè)值x′2,ω進(jìn)行mod(round((x′2,ω+0.5)×107),256)操作,得到修改后的洛倫茲混沌序列{x″2,ω},其中ω=1,2,...,N×N;
(8)將修改后的洛倫茲混沌序列{x″2,ω}轉(zhuǎn)化成8位二值序列,并且截取第ω個(gè)元素x″2,ω的第3~6位作為二進(jìn)制串序列{Bω}的第ω個(gè)元素Bω的值,ω=1,2,...,N×N;
(9)將混沌生成圖像矩陣f*(s,t)分成N×N個(gè)4×4大小的矩陣塊,并將位于(x,y)處的矩陣塊記為A(x,y),則f*(s,t)=[A(x,y)]N×N;再將置亂后的圖像矩陣f1(s,t)中位于(x,y)處的像素值f1(x,y)插入到矩陣塊A(x,y)中,得到插入后圖像矩陣
(10)對(duì)插入后圖像矩陣中每個(gè)矩陣塊A(x,y)中的元素值進(jìn)行求和,并將該和值除以256所得的余數(shù)作為最終加密圖g(s,t)在(x,y)處的像素值。
本發(fā)明的有益效果為:
1.本發(fā)明利用廣義貓臉變換對(duì)圖像進(jìn)行像素置亂,極大降低了密文像素間的相關(guān)性;
2.本發(fā)明利用廣義三維Henon超混沌系統(tǒng)生成的混沌生成圖像矩陣具有很好的隨機(jī)性,并且具有敏感性較高的密鑰參數(shù);
3.本發(fā)明利用洛倫茲混沌生成二進(jìn)制序列具有很好的隨機(jī)性,使得置亂后的圖像矩陣能夠隨機(jī)的插入到混沌生成圖像矩陣,進(jìn)而充分置亂圖像;
4.本發(fā)明采用圖像信息融合技術(shù)可以有效隱蔽圖像信息,使圖像加密方法具有很高的安全性。
附圖說(shuō)明
圖1是本發(fā)明的實(shí)現(xiàn)流程圖;
圖2是本發(fā)明使用的原始圖像;
圖3是對(duì)圖2加密后的圖像;
圖4是圖2的灰度直方圖;
圖5是用本發(fā)明方法及三個(gè)對(duì)比方法對(duì)圖2進(jìn)行加密后的灰度直方圖;
圖6是本發(fā)明方法及三個(gè)對(duì)比方法的密鑰敏感性分析圖。
具體實(shí)施方式
參照?qǐng)D1,本發(fā)明的具體實(shí)施步驟如下:
步驟1,輸入一幅N×N的灰度圖像F,獲得該灰度圖像的二維矩陣f(s,t)。
調(diào)用imread函數(shù)讀入一幅N×N的灰度圖像作為待加密圖像,如圖2所示,獲得該
灰度圖像的二維矩陣f(s,t),此時(shí)N=256。
步驟2,對(duì)灰度圖像的二維矩陣f(s,t)進(jìn)行10次廣義貓臉變換,得到置亂后的圖像
矩陣f1(s,t)。
廣義貓臉變換公式如下:
其中稱為變換矩陣,a、b為變換矩陣的兩個(gè)不同的參數(shù);x、y分別為變換前的橫坐標(biāo)、縱坐標(biāo);x′、y′為廣義貓臉變換作用后的橫坐標(biāo)、縱坐標(biāo);mod表示模運(yùn)算。
選取廣義貓臉變換的變換矩陣參數(shù)a=7,b=9和迭代次數(shù)m=10,利用廣義貓臉變換公式對(duì)二維矩陣f(s,t)進(jìn)行如下變換:
2a)獲取灰度圖像的二維矩陣f(s,t)中的每一個(gè)像素點(diǎn)的坐標(biāo)(x,y)處的像素值;
2b)將灰度圖像的二維矩陣陣f(s,t)中的每一個(gè)像素點(diǎn)的坐標(biāo)(x,y)都按照上述的廣義貓臉變換進(jìn)行坐標(biāo)變換,得到坐標(biāo)(x′,y′);
2c)將原像素值賦到新坐標(biāo)(x′,y′)上,完成當(dāng)前的廣義貓臉變換;
2d)重復(fù)2a)到2c)進(jìn)行上述變換9次,得到置亂后的圖像矩陣f1(s,t)。
步驟3,選取廣義三維Henon超混沌系統(tǒng)的初值,計(jì)算三個(gè)廣義三維Henon超混沌序列。
3a)輸入廣義三維Henon超混沌的三個(gè)初始值x1,0=0.81、y1,0=0.64、z1,0=0.53,令k=1;
3b)計(jì)算第一個(gè)廣義三維Henon超混沌序列{x1,i}的第k個(gè)元素x1,k,其中α=1.4;
3c)計(jì)算第二個(gè)廣義三維Henon超混沌序列{y1,i}的第k個(gè)元素y1,k,其中β=0.2;
3d)計(jì)算第三個(gè)廣義三維Henon超混沌序列{z1,i}的第k個(gè)元素z1,k,z1,k=βx1,k-1;
3e)將k的數(shù)值增加1,判斷k與4N×4N=1048576的大小關(guān)系,如果k<1048576,返回3b);否則,跳出循環(huán),終止計(jì)算,得到三個(gè)廣義三維Henon超混沌序列{x1,i}、{y1,i}、{z1,i},其中i=1,2,...,4N×4N。
步驟4,將第一個(gè)廣義三維Henon超混沌序列{x1,i}的值映射到0-255之間,然后通過排列得到混沌生成圖像矩陣f*(s,t)。
4a)用mapminmax函數(shù)將第一個(gè)廣義三維Henon超混沌序列{x1,i}的值映射到[-1,1]之間,得到映射后的廣義三維Henon超混沌序列{x1,i};
4b)將映射后的廣義三維Henon超混沌序列{x1,i}的第i個(gè)值乘以128,再加上128,最后進(jìn)行取整操作,其中i=1,2,...,4N×4N,得到長(zhǎng)為4N=1024、寬為4N=1024的修改后的廣義三維Henon超混沌序列{x1,i};
4c)將修改后的廣義三維Henon超混沌序列{x1,i}按照每行4N=1024個(gè)像素排成4N=1024行,得到混沌生成圖像矩陣f*(s,t)。
步驟5,選取洛倫茲混沌系統(tǒng)的初值,計(jì)算三個(gè)洛倫茲混沌序列。
5a)輸入洛倫茲混沌的三個(gè)初始值x2,0=0、y2,0=2、z2,0=9和輸入洛倫茲方程,并確定解區(qū)間
5b)采用ode45函數(shù)對(duì)洛倫茲方程進(jìn)行求解,得到三個(gè)初始的洛倫茲混沌序列{x2,j}、{y2,j}、{z2,j},j=1,2,...,4000+N×N。
步驟6,選取第一個(gè)初始的洛倫茲混沌序列{x2,j},舍去該洛倫茲混沌序列{x2,j}的前4000個(gè)值,重新對(duì)其進(jìn)行編號(hào),得到洛倫茲混沌序列{x′2,ω},ω=1,2,...,N×N。
步驟7,對(duì)洛倫茲混沌序列{x′2,ω}的第ω個(gè)值x′2,ω進(jìn)行mod(round((x′2,ω+0.5)×107),256)操作,得到修改后的洛倫茲混沌序列{x2″,ω},其中ω=1,2,...,N×N。
步驟8,將修改后的洛倫茲混沌序列{x″2,ω}轉(zhuǎn)化成8位二值序列,并且截取第ω個(gè)元素x″2,ω的第3~6位作為二進(jìn)制串序列{Bω}的第ω個(gè)元素Bω,ω=1,2,...,N×N。
步驟9,將置亂后的圖像f1(s,t)在(x,y)處的像素值f1(x,y)插入到混沌生成圖像矩陣f*(s,t)中。
9a)將混沌生成圖像矩陣f*(s,t)分成N×N個(gè)4×4大小的矩陣塊,并將位于(x,y)處的矩陣塊記為A(x,y),則f*(s,t)=[A(x,y)]N×N;
9b)將二進(jìn)制串序列{Bω}中第ω個(gè)元素Bω等分為兩段二進(jìn)制子串bω,1和bω,2,每段二進(jìn)制子串包含兩個(gè)二進(jìn)制數(shù)字,得到二進(jìn)制子串序列{(bω,1,bω,2)},ω=1,2,...,N×N;
9c)將二進(jìn)制子串bω,1和bω,2轉(zhuǎn)化成十進(jìn)制整數(shù);
9d)將置亂后的圖像f1(s,t)在(x,y)處的像素值f1(x,y)插入到混沌生成圖像矩陣f*(s,t)中的矩陣塊A(x,y)(b(x-1)×N+y,1+1,b(x-1)×N+y,2+1)處,得到插入后的圖像矩陣
步驟10,利用圖像信息融合技術(shù)縮小插入后的圖像矩陣得到最終加密圖
g(s,t)。
對(duì)插入后圖像矩陣中每個(gè)矩陣塊A(x,y)中的元素值進(jìn)行求和,并將該和值除以256所得的余數(shù)作為最終加密圖在(x,y)處的像素值,從而得到最終加密圖g(s,t),如圖3所示。
本發(fā)明的效果可通過以下仿真實(shí)驗(yàn)進(jìn)一步說(shuō)明:
為了具體說(shuō)明本發(fā)明的優(yōu)勢(shì)和特點(diǎn),下面對(duì)該發(fā)明和現(xiàn)有技術(shù)進(jìn)行仿真,分析其加密效果。
1.實(shí)驗(yàn)環(huán)境
本實(shí)驗(yàn)的硬件測(cè)試平臺(tái)是:Intel酷睿i5 4210M CPU,主頻2.6Ghz,內(nèi)存8.0GB;軟件平臺(tái)為:Windows 10操作系統(tǒng)和Matlab2015b。仿真圖像采用灰度級(jí)為256,大小為256×256的lena圖。
2.實(shí)驗(yàn)內(nèi)容
為具體說(shuō)明本發(fā)明的優(yōu)勢(shì),主要對(duì)現(xiàn)有僅廣義三維Henon混沌置亂方法、現(xiàn)有僅洛倫茲混沌置亂方法和現(xiàn)有僅Chen混沌置亂方法3種圖像加密方法進(jìn)行仿真作對(duì)比,分別從灰度直方圖、置亂程度和密鑰靈敏性3個(gè)方面進(jìn)行說(shuō)明。
實(shí)驗(yàn)1,對(duì)比本發(fā)明方法及三個(gè)對(duì)比方法的對(duì)圖2進(jìn)行加密后的灰度直方圖。
數(shù)字圖像中每一個(gè)灰度級(jí)與這個(gè)灰度級(jí)出現(xiàn)的頻率間的統(tǒng)計(jì)特征用灰度直方圖來(lái)表示,灰度直方圖是圖像的一個(gè)重要統(tǒng)計(jì)特征。
對(duì)圖2的各個(gè)灰度的像素進(jìn)行統(tǒng)計(jì),得到加密前圖像的灰度直方圖,如圖4所示;分別用本發(fā)明方法、現(xiàn)有僅廣義三維Henon混沌置亂方法、現(xiàn)有僅洛倫茲混沌置亂方法和現(xiàn)有僅Chen混沌置亂方法對(duì)圖2進(jìn)行加密后的圖像的各個(gè)灰度的像素進(jìn)行統(tǒng)計(jì),得到加密后的圖像的灰度直方圖如圖5,其中圖5(a)為本發(fā)明方法加密后的圖像的灰度直方圖,圖5(b)為現(xiàn)有僅廣義三維Henon混沌置亂方法加密后的圖像的灰度直方圖,圖5(c)為現(xiàn)有僅洛倫茲混沌置亂方法加密后的圖像的灰度直方圖,圖5(d)為現(xiàn)有僅Chen混沌置亂方法加密后的圖像的灰度直方圖。
分別將圖5(a)、圖5(b)、圖5(c)、圖5(d)與圖4進(jìn)行比較,發(fā)現(xiàn)圖5(a)中的灰度值均勻分布,與原圖的灰度直方圖的差異最大,說(shuō)明本發(fā)明方法掩蓋了原始圖像的統(tǒng)計(jì)特性,從而極大的增加了圖像對(duì)統(tǒng)計(jì)分析攻擊的抵抗力。
實(shí)驗(yàn)2,對(duì)比本發(fā)明方法及三個(gè)對(duì)比方法對(duì)圖2進(jìn)行加密的加密圖的置亂程度。
在圖像水平、垂直和對(duì)角三個(gè)方向上隨機(jī)選擇3000對(duì)相鄰像素對(duì),代入以下公式,計(jì)算得到各圖像在不同方向的像素點(diǎn)相關(guān)系數(shù):
其中x和y是指圖像的兩個(gè)相鄰像素的灰度值,E(x)是x的數(shù)學(xué)期望的估計(jì)值,D(x)是x的方差的估計(jì)值,cov(x,y)是x和y的協(xié)方差的估計(jì)值。
按照上述方法計(jì)算圖2在不同方向的像素點(diǎn)相關(guān)系數(shù),如表1第二列所示;
按照上述方法計(jì)算圖3在不同方向的像素點(diǎn)相關(guān)系數(shù),如表1第六列所示;
按照上述方法分別計(jì)算用現(xiàn)有僅廣義三維Henon混沌置亂方法加密后的圖像、現(xiàn)有僅洛倫茲混沌置亂方法加密后的圖像和現(xiàn)有僅Chen混沌置亂方法加密后的圖像在不同方向的像素點(diǎn)相關(guān)系數(shù),分別如表1第三至五列所示。
表1原圖、三個(gè)對(duì)比方法及本發(fā)明方法加密圖像的像素點(diǎn)相關(guān)系數(shù)
從表1可以看出,原始圖像在水平、垂直和對(duì)角方向的像素點(diǎn)相關(guān)系數(shù)比較大,表明原始圖像的相鄰像素點(diǎn)之間的相關(guān)性很高;經(jīng)過四種不同的方法加密之后,水平、垂直和對(duì)角三個(gè)方向的像素點(diǎn)相關(guān)系數(shù)值銳減,但是總體還是本發(fā)明方法在各個(gè)方向的像素點(diǎn)相關(guān)系數(shù)最低,由此可以看出,本發(fā)明方法對(duì)圖像像素點(diǎn)置亂的比較充分,加密的安全性更高。
實(shí)驗(yàn)3,對(duì)比本發(fā)明方法與三個(gè)對(duì)比方法的密鑰敏感性。
記原始圖像為I,加密圖像為Q,設(shè)通過解密加密圖像所得的圖像為R,得到經(jīng)過解密的圖像與加密前圖像的均方誤差:MSE值越大,表明解密后的圖像與加密前的圖像的信息差別越大,當(dāng)MSE值在密鑰附近微小范圍內(nèi)變化比較明顯時(shí),則說(shuō)明加密方法的密鑰敏感性比較高。
為了反映加密方法對(duì)于兩個(gè)密鑰參數(shù)變化的敏感性,僅對(duì)兩個(gè)參數(shù)在密鑰附近聯(lián)合變化的情況進(jìn)行仿真,計(jì)算解密的圖像與加密前圖像的均方誤差MSE,結(jié)果如圖6,其中:
圖6(a)為本發(fā)明方法中的兩個(gè)參數(shù)變化得到的解密圖像與原始圖像的MSE圖,即,固定該方法中洛倫茲系統(tǒng)混沌所有初值和廣義三維Henon混沌的第三個(gè)參數(shù)值,只讓該方法中的廣義三維Henon混沌的前兩個(gè)參數(shù)變化;
圖6(b)為現(xiàn)有僅廣義三維Henon混沌置亂方法的兩個(gè)參數(shù)變化得到的解密圖像與原始圖像的MSE圖,即固定該方法中的廣義三維Henon混沌的第三個(gè)參數(shù)值,只讓前兩個(gè)參數(shù)變化;
圖6(c)為現(xiàn)有僅洛倫茲混沌置亂方法的兩個(gè)參數(shù)變化得到的解密圖像與原始圖像的MSE圖,即固定該方法中的洛倫茲混沌的第三個(gè)參數(shù)值,只讓前兩個(gè)參數(shù)變化;
圖6(d)為現(xiàn)有僅Chen混沌置亂方法的兩個(gè)參數(shù)變化得到的解密圖像與原始圖像的MSE圖,即固定該方法中的洛倫茲混沌的第三個(gè)參數(shù)值,只讓前兩個(gè)參數(shù)變化。
觀察圖6(a)、圖6(b)、圖6(c)和圖6(d),發(fā)現(xiàn)圖6(d)中密鑰值附近的MSE值變化較小,說(shuō)明現(xiàn)有僅Chen混沌置亂方法的密鑰敏感性較低;而在圖6(a)、圖6(b)和圖6(c)中,發(fā)現(xiàn)密鑰值附近的MSE變化很大,說(shuō)明本發(fā)明方法和其余的2種方法都對(duì)參數(shù)變化比較敏感,因而本發(fā)明具有敏感性很強(qiáng)的密鑰。
綜上,本發(fā)明不僅具有很高的置亂程度,同時(shí)也有敏感性很強(qiáng)的密鑰,所以具有很高的安全性。