本發(fā)明涉及信息技術(shù)安全領(lǐng)域,具體涉及基于映像網(wǎng)絡(luò)的數(shù)字圖像反饋加密方法。
背景技術(shù):
當(dāng)今是一個(gè)信息化時(shí)代。有關(guān)科學(xué)研究和統(tǒng)計(jì)表明,人類從外界獲得的信息約有75%是源于圖像。網(wǎng)絡(luò)環(huán)境下傳輸圖像,容易遭到第三方竊取、篡改、非法復(fù)制和傳播。因此,圖像的安全傳輸與加密問題是一直受到人們的關(guān)注。
置亂和擴(kuò)散是實(shí)現(xiàn)圖像加密算法安全性的基本原則。按照加密手段,加密方法大致可以分為:基于傳統(tǒng)密碼體制的加密方法,基于置亂變換的加密方法,基于混沌理論的加密方法等。數(shù)字圖像,是二維圖像用有限數(shù)字?jǐn)?shù)值像素的表示。其特點(diǎn)是數(shù)據(jù)量大、數(shù)據(jù)冗余度高及相鄰像素點(diǎn)相關(guān)性強(qiáng),這使得一些傳統(tǒng)的加密方法如des、idea、aes等,在對數(shù)字圖像進(jìn)行快速置亂和擴(kuò)散操作時(shí)非常困難。
基于置亂變換的加密方法是通過變換來置亂圖像像素位置的加密技術(shù)?,F(xiàn)階段關(guān)于數(shù)字圖像置亂變換的方法有很多,常見的有仿射變換、arnold變換、standard映射、fibonacci-q變換、baker變換等,這些變換均是二維變換,置亂效率和置亂程度不高,要想達(dá)到較好的置亂效果,往往需要進(jìn)行多次操作。2004年chen提出的三維arnold變換克服了這一缺點(diǎn),在對圖像的像素位置進(jìn)行置亂時(shí),具有較高的置亂效率和較高的置亂程度。已有基于三維arnold變換進(jìn)行圖像置亂的研究具有三個(gè)特點(diǎn):1)利用三維arnold變換置亂像素位置而獲得加密圖像,利用arnold變換的周期性將密文圖像恢復(fù)為明文圖像;2)三維arnold變換對像素位置(0,0,0)置亂的無效性;3)在多輪置亂操作中,置亂矩陣一直采用經(jīng)典的常數(shù)矩陣,未為與明文圖像信息建立關(guān)聯(lián)。這些使得基于三維arnold變換的圖像加密方法,存在較大的安全隱患。
1989年,英國數(shù)學(xué)家matthews提出基于混沌理論的加密方法?;煦缧蛄械母叨入S機(jī)性、不可預(yù)測性、寬帶頻譜特性和系統(tǒng)控制方程及初始條件的確定性與易于實(shí)現(xiàn)性,使得混沌系統(tǒng)具有良好的密碼學(xué)特性,并在保密通訊中得到廣泛應(yīng)用。單一混沌系統(tǒng)、復(fù)合混沌系統(tǒng)、超混沌系統(tǒng)等低維混沌系統(tǒng),甚至?xí)r空混沌系統(tǒng)不斷地在圖像加密算法中得到應(yīng)用。耦合映像格子(cml)是一種時(shí)間離散、空間離散和狀態(tài)連續(xù)的時(shí)空動(dòng)力學(xué)系統(tǒng),易于解析和數(shù)值處理。cml具有較大的參數(shù)空間、強(qiáng)偽隨機(jī)性的時(shí)空混沌序列,這使得cml相對于低維混沌系統(tǒng)較適合于圖像加密。已有基于cml的加密技術(shù)中,具有如下特點(diǎn):1)cml模型是由格點(diǎn)上是一維logistic映射、經(jīng)過最近鄰耦合而形成,這使得相鄰格點(diǎn)上混沌序列的相關(guān)性較強(qiáng);2)基于cml產(chǎn)生的混沌序列構(gòu)造密鑰流,利用密鑰流對圖像直接進(jìn)行擴(kuò)散操作形成密文圖像,這種對明文圖像像素位置混淆過程的缺失,使得明文和密文之間的統(tǒng)計(jì)特性不足以復(fù)雜化;3)在多輪擴(kuò)散操作中,采用靜態(tài)加密算法,密鑰流僅依賴于一個(gè)混沌序列而保持不變,這使得加密算法難于抵抗已知明文攻擊和選擇明文攻擊。提升混沌序列的偽隨機(jī)性和復(fù)雜性、建立混沌加密的反饋機(jī)制,成為混沌加密算法設(shè)計(jì)的關(guān)鍵。
技術(shù)實(shí)現(xiàn)要素:
針對上述現(xiàn)有技術(shù)中存在的缺陷或不足,本發(fā)明提供了一種基于映像網(wǎng)絡(luò)的數(shù)字圖像反饋加密方法,其特征在于,具體包括以下步驟:
1)、對于像素為h×w、灰度級(jí)水平為g的數(shù)字明文圖像,獲得它的二維像素值矩陣pi_1,并將二維像素值矩陣pi_1轉(zhuǎn)化為大小為t×t×t的三維像素值矩陣pi_2;將三維像素值矩陣pi_2對應(yīng)的圖像作為當(dāng)前明文圖像;
2)、構(gòu)建節(jié)點(diǎn)是超混沌系統(tǒng)、具有非近鄰連接方式的映像網(wǎng)絡(luò);選取映像網(wǎng)絡(luò)的初始條件和網(wǎng)絡(luò)控制參數(shù),迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陳列{xn(i)}、{yn(i)}、{zn(i)},n為時(shí)刻,i為映像網(wǎng)絡(luò)的節(jié)點(diǎn);
3)、根據(jù)當(dāng)前明文圖像獲取時(shí)刻n0;結(jié)合n0和步驟2)中獲得的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},獲取圖像置亂的混沌控制參數(shù);
4)、根據(jù)步驟3獲取的圖像置亂的混沌控制參數(shù),通過三維arnold變換對當(dāng)前明文圖像進(jìn)行置亂處理,得到置亂后圖像的像素值矩陣pi_3;將pi_3存入置亂序列{φ1(j)};將三維像素值矩陣pi_3對應(yīng)的圖像作為當(dāng)前明文圖像;
5)、根據(jù)當(dāng)前明文圖像獲取指標(biāo)τ;結(jié)合指標(biāo)τ和步驟2)中獲得的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},產(chǎn)生密鑰流{k(j)};對步驟4)獲取的置亂序列{φ1(j)},利用密鑰流{k(j)}進(jìn)行密文反饋機(jī)制的圖像擴(kuò)散處理,得到擴(kuò)散后的像素值序列{c(j)};將{c(j)}存入三維像素值矩陣pi_2;將三維像素值矩陣pi_2對應(yīng)的圖像作為當(dāng)前明文圖像;
6)、重復(fù)步驟3)-步驟5)m輪,將每輪獲取的指標(biāo)τ存入序列{τ},將每輪獲取的時(shí)刻n0存入序列{n0},將最后一輪得到的擴(kuò)散后的像素值序列{c(j)}存至二維矩陣像素值矩陣pi_4,按照圖像標(biāo)準(zhǔn)格式保存pi_4,得到密文圖像。
進(jìn)一步的,解密過程具體包括以下步驟:
7)、從密文圖像中獲取二維像素值矩陣ci_1,將二維像素值矩陣ci_1存入像素值序列{c1(j)};
8)、構(gòu)建節(jié)點(diǎn)是超混沌系統(tǒng)、具有非近鄰連接方式的映像網(wǎng)絡(luò);使用步驟2)選取的映像網(wǎng)絡(luò)的初始條件和網(wǎng)絡(luò)控制參數(shù),迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陳列{xn(i)}、{yn(i)}、{zn(i)},n為時(shí)刻,i為映像網(wǎng)絡(luò)的節(jié)點(diǎn);
9)、獲取步驟6)中的序列{τ},取其最后一個(gè)元素作為當(dāng)前τ的取值;同時(shí),獲取步驟6)中的序列{n0},取其最后一個(gè)元素作為當(dāng)前n0的取值;
10)、結(jié)合當(dāng)前τ的取值和步驟8)獲取的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},產(chǎn)生消除圖像擴(kuò)散效果的密鑰流{k(j)};對像素值序列{c1(j)},利用密鑰流{k(j)}進(jìn)行密文反饋機(jī)制的圖像像素值替換,得到消除擴(kuò)散后的像素值序列{φ2(j)};將消除擴(kuò)散后的像素值序列{φ2(j)}存入三維像素值矩陣ci_2;
11)、結(jié)合當(dāng)前n0的取值和步驟8)中獲得的時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},獲取消除圖像置亂效果的混沌控制參數(shù);根據(jù)獲取的混沌控制參數(shù),對步驟10)獲取的三維像素值矩陣ci_2進(jìn)行加密過程中三維arnold變換的逆三維arnold變換,獲得逆三維arnold變換后的三維像素矩陣ci_3;將三維像素值矩陣ci_3存入像素值序列{c1(j)},實(shí)現(xiàn)對序列{c1(j)}的更新;
12)、重復(fù)步驟10)-步驟11)m輪,按照逆序依次取序列{τ}中元素作為每輪中當(dāng)前τ的取值;按照逆序依次取序列{n0}中元素作為每輪中當(dāng)前n的取值;將最后一輪得到的像素值序列{c1(j)}存入二維像素值矩陣ci_4中;按照圖像標(biāo)準(zhǔn)格式保存二維像素值矩陣ci_4,得到大小解密圖像。
進(jìn)一步的,所述步驟2)中所述的節(jié)點(diǎn)是超混沌系統(tǒng)、具有非近鄰連接方式的映像網(wǎng)絡(luò)用式(1)表示:
式中,n為時(shí)刻,n=1,2,......,n,n為時(shí)間的長度,1000≤n≤3000,i為映像網(wǎng)絡(luò)的節(jié)點(diǎn),i=1,2,…,l,l為映像網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù),50≤l≤200;tn(i)=(xn(i),yn(i),zn(i))t∈r3為節(jié)點(diǎn)i在時(shí)刻n的狀態(tài)變量,局部映射f:r3→r3為三維folded-towel超混沌系統(tǒng),其具體形式為式(2):
集合
其中
所述的選取映像網(wǎng)絡(luò)的初始條件和控制參數(shù),然后迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陳列{xn(i)}、{yn(i)}、{zn(i)},具體包括如下步驟:
21)選取如式(4)所示的三維folded-towel超混沌系統(tǒng):
其中x(n),y(n),z(n)表示三維folded-towel超混沌系統(tǒng)在時(shí)刻n的狀態(tài)變量,a1=3.8,b1∈[-1.57,1.02];給定初始條件x(1)∈[0,1],y(1)∈[0,1],z(1)∈[0,1],迭代三維folded-towel超混沌系統(tǒng);分別取x(m0+i),y(m0+i),z(m0+i),i=1,2…,l作為映像網(wǎng)絡(luò)的初始條件x1(i),y1(i),z1(i),i=1,2…,l;m0∈[100,200];
22)選取網(wǎng)絡(luò)控制參數(shù)ε∈(0,0.3),a=3.8,b∈[-1.57,1.02];
23)迭代映像網(wǎng)絡(luò),產(chǎn)生多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)};
進(jìn)一步的,所述步驟3)中所述的根據(jù)當(dāng)前明文圖像獲取時(shí)刻n0,具體是:n0=fix(mod(arctan(pi_2(0,0,0))×212,256))+150,其中arctan(·)表示反正切運(yùn)算;
所述的結(jié)合n0和步驟2)中獲得的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},獲取的圖像置亂的混沌控制參數(shù),具體為:
i0可取1~10的整數(shù)。
進(jìn)一步的,所述步驟4)包括如下步驟:
41)根據(jù)步驟3)獲取的圖像置亂的混沌控制參數(shù),通過式(6)所示的三維arnold變換對當(dāng)前明文圖像的像素值矩陣pi_2進(jìn)行置亂處理,獲得置亂后的圖像像素值矩陣pi_3:
其中(x,y,z)t與(x′,y′,z′)t分別表示三維arnold變換前與變換后圖像像素的坐標(biāo),t表示圖像的階數(shù),置亂矩陣a由式(7)表示:
其中,ai,i=1,2,…,6,為圖像置亂的混沌控制參數(shù),由式(5)決定:
i0可取1~10的整數(shù),n0表示時(shí)空混沌陣列{xn(i)}的某一時(shí)刻;
42)交換置亂后的圖像像素值矩陣pi_3中位置(0,0,0)與位置(l,m,n)的像素值,其中,l,m,n是介于1與t-1之間的整數(shù);將三維像素值矩陣pi_3對應(yīng)的圖像作為當(dāng)前明文圖像;
43)從底層至高層逐層讀取pi_3中的元素,對每列操作時(shí)按照從左至右逐列讀取,將讀取的元素依次至入置亂序列{φ1(j)}。
進(jìn)一步的,所述步驟5)中,所述的根據(jù)當(dāng)前明文圖像獲取指標(biāo)τ,具體是指:τ=mod((sum(pi_3)+g),3),其中sum(·)表示求和運(yùn)算,mod(·,·)表示求余運(yùn)算;
所述的結(jié)合指標(biāo)τ和步驟2)中獲得的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},產(chǎn)生密鑰流{k(j)},具體是指:依據(jù)τ的值為0、1、2時(shí),對應(yīng)取多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},去除暫態(tài)過程后,逐列取時(shí)空混沌陳列的t3個(gè)元素,依次放至序列{k0}中,并按照式(8)轉(zhuǎn)換處理為含有當(dāng)前明文圖像反饋信息的密鑰流{k(j)}:
k(j)=mod[round(k0(j)×1015),g],j=1,2…,t3(8)
其中round(·)表示四舍五入運(yùn)算;
所述的對步驟4)獲取的置亂序列{φ1(j)},利用密鑰流{k(j)}進(jìn)行密文反饋機(jī)制的圖像擴(kuò)散處理,得到擴(kuò)散后的像素值序列{c(j)},具體是指:將獲得的密鑰流{k(j)}與步驟4)得到的置亂序列{φ1(j)}按照式(9)進(jìn)行位異或運(yùn)算,得到擴(kuò)散后的像素值序列{c(j)}:
其中
所述的將{c(j)}存至三維像素值矩陣pi_2,具體是指:依次讀取{c(j)}的元素,將其由底層至高層逐層放至三維像素值矩陣pi_2,對每層操作時(shí)按照從左向右逐列放入,更新三維像素值矩陣pi_2。
進(jìn)一步的,所述步驟8)中所述的節(jié)點(diǎn)是三維超混沌系統(tǒng)、具有非近鄰連接的映像網(wǎng)絡(luò)用式(1)表示:
式中,n為時(shí)刻,n=1,2,......,n,n為時(shí)間的長度,1000≤n≤3000,i為映像網(wǎng)絡(luò)的節(jié)點(diǎn),i=1,2,…,l,l為映像網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù),50≤l≤200;tn(i)=(xn(i),yn(i),zn(i))t∈r3為節(jié)點(diǎn)i在時(shí)刻n的狀態(tài)變量,局部映射f:r3→r3為三維folded-towel超混沌系統(tǒng),其具體形式為式(2):
集合
其中
所述的使用步驟2)選取的三維超混沌系統(tǒng)的初始條件和網(wǎng)絡(luò)控制參數(shù),迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陳列{xn(i)}、{yn(i)}、{zn(i)},具體包括如下步驟:
81)選取如式(4)所示的三維folded-towel超混沌系統(tǒng):
其中x(n),y(n),z(n)表示三維folded-towel超混沌系統(tǒng)在時(shí)刻n的狀態(tài)變量,a1=3.8,b1∈[-1.57,1.02];根據(jù)三維folded-towel超混沌系統(tǒng)初始條件x(1)∈[0,1],y(1)∈[0,1],z(1)∈[0,1],迭代三維folded-towel超混沌系統(tǒng);分別取x(m0+i)、y(m0+i)、z(m0+i),i=1,2…,l作為映像網(wǎng)絡(luò)的初始條件x1(i)、y1(i)、z1(i),i=1,2…,l;m0∈[100,200];
82)選取網(wǎng)絡(luò)控制參數(shù)ε∈(0,0.3),a=3.8,b∈[-1.57,1.02];迭代映像網(wǎng)絡(luò),產(chǎn)生多維時(shí)空混沌序列{xn(i)}、{yn(i)}、{zn(i)}。
進(jìn)一步的,所述步驟10)中具體包括如下步驟:
1001)依據(jù)當(dāng)前τ的值為0、1、2時(shí),對應(yīng)取多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},去除暫態(tài)過程后,逐列取時(shí)空混沌陳列的t3個(gè)元素,依次放至序列{k0}中,并按照式(8)轉(zhuǎn)換處理為消除圖像擴(kuò)散效果的密鑰流{k(j)}:
k(j)=mod[round(k0(j)×1015),g],j=1,2…,t3(8)
其中round(·)表示四舍五入;
1002)將消除圖像擴(kuò)散效果的密鑰流{k(j)}與像素值序列{c1(j)}按照式(10)進(jìn)行逆位異或運(yùn)算,得到消除擴(kuò)散后像素值序列{φ2(j)}:
其中
1003)依次讀取像素值序列{φ2(j)}的元素,將其從底層至高層逐層放至三維像素值矩陣ci_2,對每層操作時(shí)按照從左向右逐列放入,矩陣ci_2的大小為t×t×t。
進(jìn)一步的,所述步驟11)具體包括如下步驟:
1101)交換步驟10)獲取的三維像素值矩陣ci_2中位置(0,0,0)與位置(l,m,n)的像素值;
1102)結(jié)合當(dāng)前n0的取值和步驟8)中獲得的時(shí)空混沌陣列,獲取消除圖像置亂效果的混沌控制參數(shù)為:
i0可取1~10的整數(shù);
1103)利用加密過程中三維arnold變換的逆三維arnold變換對像素值矩陣ci_2進(jìn)行變換,獲得逆三維arnold變換后的三維像素值矩陣ci_3;
1104)從底層至高層逐層讀取矩陣ci_3中元素,對每層操作時(shí)從左向右逐列逐列讀取,并依次放至像素值序列{c1(j)}中,實(shí)現(xiàn)對序列{c1(j)}的更新;
所述三維arnold變換的逆三維arnold變換由式(11)給出:
其中(x′,y′,z′)t與(x,y,z)t分別表示逆三維arnold變換前與變換后圖像像素的坐標(biāo),逆置亂矩陣a-1表示置亂矩陣a的逆矩陣,逆置亂矩陣a-1由式(12)給出:
其中,ai,i=1,2,…,6,為圖像置亂的混沌控制參數(shù),由式(5)決定;
i0可取1~10的整數(shù),n0表示時(shí)空混沌陣列{xn(i)}的某一時(shí)刻。
進(jìn)一步的,如果所述的數(shù)字明文圖像為彩色圖像,在步驟1)之前還包括步驟0),從彩色圖像中提取紅、黃、藍(lán)三個(gè)顏色分量的像素值矩陣;分別對所述的三個(gè)顏色分量的像素值矩陣執(zhí)行步驟1)-步驟6);步驟6)之后還包括步驟7),將得到的加密處理的紅、黃、藍(lán)三個(gè)顏色分量的密文圖像合成原始彩色圖像的密文圖像。
本發(fā)明的有益結(jié)果如下:
1.在混淆-擴(kuò)散循環(huán)加密過程中,每輪引入了含有當(dāng)前明文圖像和密文圖像信息的反饋機(jī)制,每輪加密使用的置亂矩陣和密鑰流動(dòng)態(tài)變化而互不相同,使密文對明文和密鑰都非常敏感,加密算法能夠有效地抵御已知明文攻擊和選擇明文攻擊。
2.通過構(gòu)建節(jié)點(diǎn)是超混沌系統(tǒng)、具有非近鄰連接方式映像網(wǎng)絡(luò),從節(jié)點(diǎn)本身和耦合方式兩方面提升映像網(wǎng)絡(luò)的復(fù)雜性;該映像網(wǎng)絡(luò)能夠產(chǎn)生偽隨機(jī)性更強(qiáng)、更具有密碼學(xué)特性多維時(shí)空混沌陳列,這極大提高了加密技術(shù)的安全性;而且本發(fā)明的加密方法法具有密鑰空間大、加密速度快等優(yōu)越性。
3.本加密方法中置亂-擴(kuò)散交替進(jìn)行,像素位置亂和像素值替換相互關(guān)聯(lián),這使得密文圖像隱蔽性強(qiáng),大大增加了破譯的難度,而且使得加密算法能夠抗各種統(tǒng)計(jì)攻擊、暴力攻擊和差分攻擊。
4.本發(fā)明的解密過程中消除擴(kuò)散-消除置亂交替進(jìn)行,每輪操作中逆置亂矩陣和密鑰流動(dòng)態(tài)變化而不同,打破了已有圖像加密算法中,逆置亂矩陣和密鑰流保持不變的局限,使得本發(fā)明提出的加密方法安全性高、能夠有效地抵御已知明文攻擊和選擇明文攻擊。
附圖說明
圖1是本發(fā)明中加密過程的流程圖。
圖2是本發(fā)明中解密過程的流程圖。
圖3是本發(fā)明中映像網(wǎng)絡(luò)的多維時(shí)空混沌陣列圖。
圖4是本發(fā)明中明文圖像、密文圖像、解密圖像及其它們像素值分布的直方圖。
圖5是本發(fā)明中明文圖像與密文圖像分別在垂直、水平以及對角線方向相鄰像素相關(guān)性分析圖。
圖6為本發(fā)明中的密鑰敏感性測試圖。
具體實(shí)施方式
實(shí)驗(yàn)環(huán)境:本試驗(yàn)的硬件測試平臺(tái)是:inter(r)core(tm)i7-4500ucpu,主頻1.8ghz,內(nèi)存8.0gb;軟件平臺(tái)為:windows10操作系統(tǒng)和matlab2012a。仿真圖像采用灰度級(jí)為256,大小為256×256的lena圖像。
下面結(jié)合附圖對本發(fā)明的實(shí)施例做進(jìn)一步說明。
本實(shí)施例給出的基于映像網(wǎng)絡(luò)的數(shù)字圖像反饋加密方法,包括圖1所示的加密流程和圖2所示的解密流程,包括以下步驟:
1)、對于像素為h×w、灰度級(jí)水平為g的數(shù)字明文圖像,獲得它的二維像素值矩陣pi_1,并將二維像素值矩陣pi_1轉(zhuǎn)化為三維像素值矩陣pi_2,其大小為t×t×t,當(dāng)
將二維像素值矩陣pi_1轉(zhuǎn)化為三維像素值矩陣pi_2的具體轉(zhuǎn)化過程為:首先,產(chǎn)生大小為t×t×t的三維矩陣pi_2,然后,從左至右逐列讀取矩陣pi_1的元素,并從底層到高層逐層放至矩陣pi_2中,對每層操作時(shí)從左至右逐列放入;最后,隨機(jī)產(chǎn)生t×t×t-h×w個(gè)0~255之間的整數(shù),對矩陣pi_2中的后t×t×t-h×w個(gè)冗余信息進(jìn)行填充;這種讀取和存入方式便于計(jì)算機(jī)快捷操作、能夠提高加密算法的效率;
本實(shí)施例中,選擇256×256的“l(fā)ena.bmp”作為數(shù)字明文圖像,灰度級(jí)水平g=256,圖4(a)為數(shù)字明文圖像,其像素值存至大小為256×256的二維像素值矩陣pi_1,此時(shí)h=w=256;轉(zhuǎn)化后得到的三維像素值矩陣pi_2的大小為41×41×41,此時(shí)t=41。
2)、構(gòu)建節(jié)點(diǎn)是超混沌系統(tǒng)、具有非近鄰連接方式的映像網(wǎng)絡(luò);選取映像網(wǎng)絡(luò)的初始條件和網(wǎng)絡(luò)控制參數(shù),迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陳列{xn(i)}、{yn(i)}、{zn(i)},n為時(shí)刻,i為映像網(wǎng)絡(luò)的節(jié)點(diǎn);
其中,所述的節(jié)點(diǎn)是超混沌系統(tǒng)、具有非近鄰連接方式的映像網(wǎng)絡(luò)用式(1)表示:
式中,n為時(shí)刻,n=1,2,......,n,n為時(shí)間的長度,1000≤n≤3000,i為映像網(wǎng)絡(luò)的節(jié)點(diǎn),i=1,2,…,l,l為映像網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù),50≤l≤200;tn(i)=(xn(i),yn(i),zn(i))t∈r3為節(jié)點(diǎn)i在時(shí)刻n的狀態(tài)變量,局部映射f:r3→r3為三維folded-towel超混沌系統(tǒng),其具體形式為式(2):
集合
其中
本發(fā)明按照該種方式構(gòu)建的映像網(wǎng)絡(luò),提升了時(shí)空混沌陣列的復(fù)雜性和偽隨機(jī)性,對保證加密算法的安全性至關(guān)重要;
所述的選取網(wǎng)絡(luò)初始條件和網(wǎng)絡(luò)控制參數(shù),迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陳列{xn(i)}、{yn(i)}、{zn(i)},具體包括如下步驟:
21)選取如式(4)所示的三維folded-towel超混沌系統(tǒng):
其中x(n),y(n),z(n)表示三維folded-towel超混沌系統(tǒng)在時(shí)刻n的狀態(tài)變量,a1=3.8,b1∈[-1.57,1.02];當(dāng)a1=3.8,b1∈[-1.57,1.02]時(shí),三維folded-towel超混沌系統(tǒng)恒有兩個(gè)正的lyapunov指數(shù),處于超混沌狀態(tài);給定初始條件x(1)∈[0,1],y(1)∈[0,1],z(1)∈[0,1],用歐拉數(shù)值方法迭代三維folded-towel超混沌系統(tǒng);分別取x(m0+i),y(m0+i),z(m0+i),i=1,2…,l作為映像網(wǎng)絡(luò)的初始條件x1(i),y1(i),z1(i),i=1,2…,l;m0∈[100,200];
22)選取網(wǎng)絡(luò)控制參數(shù)ε∈(0,0.3),a=3.8,b∈[-1.57,1.02];
23)用歐拉數(shù)值方法迭代映像網(wǎng)絡(luò),產(chǎn)生多維時(shí)空混沌序列{xn(i)}、{yn(i)}、{zn(i)};
這里選取網(wǎng)絡(luò)初始條件和網(wǎng)絡(luò)控制參數(shù)的方式,便于計(jì)算機(jī)對映像網(wǎng)絡(luò)進(jìn)行初值化,使得映像網(wǎng)絡(luò)產(chǎn)生的空間單元序列和時(shí)間單元序列都是混沌的,而且加密系統(tǒng)的密鑰空間大;
本實(shí)施例中,取n=1250,l=60,a=3.8,b=0.2,給定初始條件
3)、根據(jù)當(dāng)前明文圖像獲取時(shí)刻n0;結(jié)合n0和步驟2)中獲得的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},獲取圖像置亂的混沌控制參數(shù);
所述的根據(jù)當(dāng)前明文圖像獲取時(shí)刻n0,具體是:n0=fix(mod(arctan(pi_2(0,0,0))×212,256))+150,其中arctan(·)表示反正切運(yùn)算;
所述的結(jié)合n0和步驟2)中獲得的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},獲取的圖像置亂的混沌控制參數(shù),具體為:
i0可取1~10的整數(shù)。
其中,n0依賴于當(dāng)前明文圖像的像素值矩陣pi_2在(0,0,0)的像素值,這使得每輪加密時(shí)圖像置亂的混沌控制參數(shù)不同;
本實(shí)施例中,取i0=2,時(shí)刻n0依賴于加密過程中當(dāng)前明文圖像在位置(0,0,0)的像素值,與當(dāng)前明文圖像建立關(guān)聯(lián);n0,ai隨著循環(huán)加密輪數(shù)r而動(dòng)態(tài)變化。
4)、根據(jù)步驟3獲取的圖像置亂的混沌控制參數(shù),通過三維arnold變換對當(dāng)前明文圖像進(jìn)行置亂處理,得到置亂后圖像的像素值矩陣pi_3;將pi_3存入置亂序列{φ1(j)};將三維像素值矩陣pi_3對應(yīng)的圖像作為當(dāng)前明文圖像;所述步驟4)包括如下步驟:
41)根據(jù)步驟3)獲取的圖像置亂的混沌控制參數(shù),通過式(6)所示的三維arnold變換對當(dāng)前明文圖像的像素值矩陣pi_2進(jìn)行置亂處理,獲得置亂后的圖像像素值矩陣pi_3:
其中(x,y,z)t與(x′,y′,z′)t分別表示三維arnold變換前與變換后圖像像素的坐標(biāo),t表示圖像的階數(shù),置亂矩陣a由式(7)表示:
其中,ai,i=1,2,…,6,為圖像置亂的混沌控制參數(shù),由式(5)決定;
i0可取1~10的整數(shù),n0表示時(shí)空混沌陣列{xn(i)}的某一時(shí)刻;
本發(fā)明提出利用三維arnold變換對圖像置亂處理,它具有置亂速度快、置亂效果好的優(yōu)點(diǎn);同時(shí),本發(fā)明中三維arnold變換的置亂矩陣a受時(shí)空混沌陳列和當(dāng)前明文圖像信息的驅(qū)動(dòng),置亂矩陣a具有混沌控制參數(shù),且置亂矩陣a在每輪加密時(shí)動(dòng)態(tài)變化而不同,這打破了已有基于三維arnold變換的圖像加密中,置亂矩陣一直采用經(jīng)典的常數(shù)矩陣而不變的局限,這種具有明文信息反饋機(jī)制的加密算法,能夠有效地抵御已知明文攻擊和選擇明文攻擊;
42)交換置亂后的圖像像素值矩陣pi_3中位置(0,0,0)與位置(l,m,n)的像素值,其中,l,m,n是介于1與t-1之間的整數(shù);將三維像素值矩陣pi_3對應(yīng)的圖像作為當(dāng)前明文圖像;
這種對矩陣pi_3中位置(0,0,0)與位置(l,m,n)的像素值交換,可以彌補(bǔ)三維arnold變換對像素位置(0,0,0)置亂無效的缺陷,進(jìn)一步增強(qiáng)了加密算法的安全性;
43)從底層至高層逐層讀取pi_3中的元素,對每列操作時(shí)按照從左至右逐列讀取,將讀取的元素依次至入置亂序列{φ1(j)};
本實(shí)施例中,設(shè)定(l,m,n)=(r,2r,3r),其中r,r=1,...,m表示加密輪數(shù)。
5)、根據(jù)當(dāng)前明文圖像獲取指標(biāo)τ;結(jié)合指標(biāo)τ和步驟2)中獲得的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},產(chǎn)生密鑰流{k(j)};對步驟4)獲取的置亂序列{φ1(j)},利用密鑰流{k(j)}進(jìn)行密文反饋機(jī)制的圖像擴(kuò)散處理,得到擴(kuò)散后的像素值序列{c(j)};將{c(j)}存入三維像素值矩陣pi_2;將三維像素值矩陣pi_2對應(yīng)的圖像作為當(dāng)前明文圖像;
所述的根據(jù)當(dāng)前明文圖像獲取指標(biāo)τ,具體是指:τ=mod((sum(pi_3)+g),3),其中sum(·)表示求和運(yùn)算,mod(·,·)表示求余運(yùn)算;
所述的結(jié)合指標(biāo)τ和步驟2)中獲得的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},產(chǎn)生密鑰流{k(j)},具體是指:依據(jù)τ的值為0、1、2時(shí),對應(yīng)取多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)}(即τ為0時(shí),取時(shí)空混沌陣列{xn(i)};τ為1時(shí),取時(shí)空混沌陣列{yn(i)};τ為2時(shí),取時(shí)空混沌陣列{zn(i)});去除暫態(tài)過程后,逐列取時(shí)空混沌陳列的t3個(gè)元素,依次存入序列{k0}中,并按照式(8)轉(zhuǎn)換處理為含有當(dāng)前明文圖像反饋信息的密鑰流{k(j)}:
k(j)=mod[round(k0(j)×1015),g],j=1,2…,t3(8)
其中round(·)表示四舍五入;
由于引入當(dāng)前明文圖像信息的反饋機(jī)制,密鑰流{k(j)}隨著循環(huán)加密輪數(shù)r而動(dòng)態(tài)變化,這打破了已有基于混沌的加密算法中,密鑰流保持不變的局限性;這種含有當(dāng)前明文圖像反饋機(jī)制的加密算法,能夠有效地抵御已知明文攻擊和選擇明文攻擊;
所述的對步驟4)獲取的置亂序列{φ1(j)},利用密鑰流{k(j)}進(jìn)行密文反饋機(jī)制的圖像擴(kuò)散處理,得到擴(kuò)散后的像素值序列{c(j)},具體是指:將獲得的密鑰流{k(j)}與步驟4)得到的置亂序列{φ1(j)}按照式(9)進(jìn)行位異或運(yùn)算,得到擴(kuò)散后的像素值序列{c(j)}:
其中
擴(kuò)散過程中關(guān)聯(lián)前一時(shí)刻的密文輸出c(j-1),使得每一個(gè)像素值的影響都能被有效地?cái)U(kuò)散至后續(xù)所有的像素點(diǎn)中,這能很大程度地提高密文對明文的敏感性;
所述的將{c(j)}存至三維像素值矩陣pi_2,具體是指:依次讀取{c(j)}的元素,將其由底層至高層逐層放至三維像素值矩陣pi_2,對每層操作時(shí)按照從左向右逐列放入,更新三維像素值矩陣pi_2;
本實(shí)施例中,取初始值c(0)=112。
6)、重復(fù)步驟3)-步驟5)m輪(m取1至5之間的整數(shù)),將每輪獲取的指標(biāo)τ存入序列{τ},將每輪獲取的時(shí)刻n0存入序列{n0},將最后一輪得到的擴(kuò)散后的像素值序列{c(j)}存至二維矩陣像素值矩陣pi_4,其中pi_4的大小為h×s,當(dāng)t3/h為整數(shù)時(shí),s=t3/h,否則s=fix(t3/h)+1;隨機(jī)產(chǎn)生h×s-t×t×t個(gè)0~255之間的整數(shù),對pi_4中的后h×s-t×t×t個(gè)冗余信息進(jìn)行填充;將像素值矩陣pi_4按照圖像標(biāo)準(zhǔn)格式保存,得到大小為h×s的密文圖像;
本實(shí)施例中,為了充分地對圖像進(jìn)行置亂和擴(kuò)散操作,反復(fù)執(zhí)行步驟3)-步驟6)3輪,此時(shí)s=270,圖4(c)為大小256×270的密文圖像。
優(yōu)選的,由本發(fā)明的加密方法得到的密文圖像的解密過程包括以下步驟:
7)、密文圖像的量化和處理:從密文圖像中獲得二維像素值矩陣ci_1,從左至右逐列讀取其元素,去除后h×s-t×t×t個(gè)冗余信息,并依次存入像素值序列{c1(j)}中;
本實(shí)施例中,h×s-t×t×t=256×270-413=199。
8)、構(gòu)建節(jié)點(diǎn)是超混沌系統(tǒng)、具有非近鄰連接方式的映像網(wǎng)絡(luò);使用步驟2)選取的映像網(wǎng)絡(luò)的初始條件和網(wǎng)絡(luò)控制參數(shù),迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陳列{xn(i)}、{yn(i)}、{zn(i)};n為時(shí)刻,i為映像網(wǎng)絡(luò)的節(jié)點(diǎn);具體如下:
所述的節(jié)點(diǎn)是三維超混沌系統(tǒng)、具有非近鄰連接的映像網(wǎng)絡(luò)用式(1)表示:
式中,n為時(shí)刻,n=1,2,......,n,n為時(shí)間的長度,1000≤n≤3000,i為映像網(wǎng)絡(luò)的節(jié)點(diǎn),i=1,2,…,l,l為映像網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù),50≤l≤200;tn(i)=(xn(i),yn(i),zn(i))t∈r3為節(jié)點(diǎn)i在時(shí)刻n的狀態(tài)變量,局部映射f:r3→r3為三維folded-towel超混沌系統(tǒng),其具體形式為式(2):
集合
其中
按照該種方式構(gòu)建的映像網(wǎng)絡(luò),提升了時(shí)空混沌序列的復(fù)雜性和偽隨機(jī)性,對保證加密算法的安全性至關(guān)重要;
優(yōu)選的,所述的使用步驟2)選取的三維超混沌系統(tǒng)的初始條件和網(wǎng)絡(luò)控制參數(shù),迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陳列{xn(i)}、{yn(i)}、{zn(i)},具體包括如下步驟:
81)選取如式(4)所示的三維folded-towel超混沌系統(tǒng):
其中x(n)、y(n)、z(n)表示三維folded-towel超混沌系統(tǒng)在時(shí)刻n的狀態(tài)變量,a1=3.8,b1∈[-1.57,1.02];根據(jù)三維folded-towel超混沌系統(tǒng)初始條件x(1)∈[0,1],y(1)∈[0,1],z(1)∈[0,1],迭代三維folded-towel超混沌系統(tǒng);分別取x(m0+i),y(m0+i),z(m0+i),i=1,2…,l作為映像網(wǎng)絡(luò)的初始條件x1(i),y1(i),z1(i),i=1,2…,l;m0∈[100,200];
82)選取網(wǎng)絡(luò)控制參數(shù)ε∈(0,0.3),a=3.8,b∈[-1.57,1.02],用歐拉數(shù)值方法迭代映像網(wǎng)絡(luò),產(chǎn)生多維時(shí)空混沌序列{xn(i)}、{yn(i)}、{zn(i)};
本實(shí)施例中,取n=1250,l=60a=3.8,b=0.2,給定初始條件(x(1),y(1),z(1))=(0.5,0.1,0.2),迭代三維folded-towel超混沌系統(tǒng),去掉前m0=100暫態(tài)值,分別取x(100+i)、y(100+i)、z(100+i),i=1,2…,60作為映像網(wǎng)絡(luò)的初始條件x1(i)、y1(i)、z1(i),i=1,2…,60;選取ε=0.1,a=3.8,b=0.2,迭代映像網(wǎng)絡(luò)產(chǎn)生多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},各空間單元序列和時(shí)間單元序列都是混沌的。
9)、獲取步驟6)中的序列{τ},取其最后一個(gè)元素作為當(dāng)前τ的取值;同時(shí),獲取步驟6)中的序列{n0},取其最后一個(gè)元素作為當(dāng)前n0的取值;
本實(shí)施例中,τ={2,0,1},n0={158,164,151}。
10)、結(jié)合當(dāng)前τ的取值和步驟8)獲取的多維時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},產(chǎn)生消除圖像擴(kuò)散效果的密鑰流{k(j)};對像素值序列{c1(j)},利用密鑰流{k(j)}進(jìn)行密文反饋機(jī)制的圖像像素值替換,得到消除擴(kuò)散后的像素值序列{φ2(j)};將消除擴(kuò)散后的像素值序列{φ2(j)}存入三維像素值矩陣ci_2;具體如下:
1001)依據(jù)當(dāng)前τ的值為0、1、2時(shí),對應(yīng)取時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)}(即τ為0時(shí),取時(shí)空混沌陣列{xn(i)};τ為1時(shí),取時(shí)空混沌陣列{yn(i)};τ為2時(shí),取時(shí)空混沌陣列{zn(i)}),去除暫態(tài)過程后,逐列取時(shí)空混沌陳列的t3個(gè)元素,依次放至序列{k0}中,并按照式(8)轉(zhuǎn)換處理為消除圖像擴(kuò)散效果的密鑰流{k(j)}:
k(j)=mod[round(k0(j)×1015),g],j=1,2…,t3(8)
其中round(·)表示四舍五入;
1002)將消除圖像擴(kuò)散效果的密鑰流{k(j)}與像素值序列{c1(j)}按照式(10)進(jìn)行逆位異或運(yùn)算,得到消除擴(kuò)散后像素值序列{φ2(j)}:
其中
這種處理方式使得解密過程中,每輪密鑰流動(dòng)態(tài)變化而不同,打破了已有基于混沌的解密算法中,密鑰流保持不變的局限,從而使得本發(fā)明提出的加密方法能夠有效地抵御已知明文攻擊和選擇明文攻擊。
1003)依次讀取像素值序列{φ2(j)}的元素,將其從底層至高層逐層放至三維像素值矩陣ci_2,對每層操作時(shí)按照從左向右逐列放入,矩陣ci_2的大小為t×t×t;本實(shí)施例中,取初始值c(0)=112。
11)、結(jié)合當(dāng)前n0的取值和步驟8)中獲得的時(shí)空混沌陣列{xn(i)}、{yn(i)}、{zn(i)},獲取消除圖像置亂效果的混沌控制參數(shù);根據(jù)獲取的混沌控制參數(shù),對步驟10)獲取的三維像素值矩陣ci_2進(jìn)行加密過程中三維arnold變換的逆三維arnold變換,獲得逆三維arnold變換后的三維像素矩陣ci_3;將三維像素值矩陣ci_3存入像素值序列{c1(j)},實(shí)現(xiàn)對序列{c1(j)}的更新;具體如下:
1101)交換步驟10)獲取的三維像素值矩陣ci_2中位置(0,0,0)與位置(l,m,n)的像素值;
1102)結(jié)合當(dāng)前n0的取值和步驟8)中獲得的時(shí)空混沌陣列,獲取消除圖像置亂效果的混沌控制參數(shù)為:
i0可取1~10的整數(shù);
1103)利用加密過程中三維arnold變換的逆三維arnold變換對像素值矩陣ci_2進(jìn)行變換,獲得逆三維arnold變換后的三維像素值矩陣ci_3;
1104)從底層至高層逐層讀取矩陣ci_3中元素,對每層操作時(shí)從左向右逐列逐列讀取,并依次放至像素值序列{c1(j)}中,實(shí)現(xiàn)對序列{c1(j)}的更新;
其中,所述三維arnold變換的逆三維arnold變換由式(11)給出:
其中(x′,y′,z′)t與(x,y,z)t分別表示逆三維arnold變換前與變換后圖像像素的坐標(biāo),逆置亂矩陣a-1表示矩陣a的逆矩陣,逆置亂矩陣a-1由式(12)給出:
其中,ai,i=1,2,…,6,為圖像置亂的混沌控制參數(shù),由式(5)決定;
i0可取1~10的整數(shù),n0表示時(shí)空混沌陣列{xn(i)}的某一時(shí)刻;
這種處理方式使得每輪解密過程中,逆置亂矩陣a-1動(dòng)態(tài)變化而不同,使得逆這打破了已有基于逆三維arnold變換的消除圖像置亂中,逆置亂矩陣一直采用經(jīng)典常數(shù)矩陣的局限,從而使得本發(fā)明提出的加密方法能夠有效地抵御已知明文攻擊和選擇明文攻擊;
本實(shí)施例中,設(shè)定(l,m,n)=(m-r+1,2(m-r+1),3(m-r+1)),其中r=1,...,m表示加密輪數(shù)。
12)、重復(fù)步驟10)-步驟11)m輪(m取1至5之間的整數(shù)),按照逆序依次取{τ}中元素作為每輪中當(dāng)前τ的取值;按照逆序依次取{n0}中元素作為每輪中當(dāng)前n的取值;將最后一輪得到的像素值序列{c1(j)},去除后t×t×t-h×w個(gè)冗余信息,從左向右逐列存入二維像素值矩陣ci_4中,ci_4的大小為h×w;將二維像素值矩陣ci_4按照圖像標(biāo)準(zhǔn)格式保存,得到大小為h×w的解密圖像;
本實(shí)施例中,m=3,解密圖像如圖4(e)所示,解密圖像像素值的直方圖如圖4(f)所示。
如果所述的數(shù)字明文圖像為彩色圖像,在步驟1)之前還包括步驟0),從彩色圖像中提取紅、黃、藍(lán)三個(gè)顏色分量的像素值矩陣;分別對所述的三個(gè)顏色分量的像素值矩陣執(zhí)行步驟1)-步驟6);步驟6)之后還包括步驟7),將得到的加密處理的紅、黃、藍(lán)三個(gè)顏色分量的密文圖像合成原始彩色圖像的密文圖像。
為了更好的說明該加密方法的安全性,本發(fā)明分別從抗統(tǒng)計(jì)攻擊測試、密鑰敏感性測試、抗窮舉攻擊(密鑰空間)分析、抗差分攻擊四方面進(jìn)行分析。
1)抗統(tǒng)計(jì)攻擊測試
(1.1)灰度直方圖
灰度直方圖直觀地描述了一幅圖像中像素值的分布情況。圖4(a)、4(b)分別為明文圖像及其像素值分布的直方圖,圖4(c)、4(d)分別為密文圖像及其像素值分布的直方圖。圖4(e)、4(f)分別為解密圖像及其像素值分布的直方圖。對比圖4(b)與4(d)可以看出,與明文圖像相比,密文圖像的直方圖呈現(xiàn)平坦而均勻的分布,說明密文圖像的像素值分布具有良好的均衡性和隨機(jī)性,可以將明文圖像信息特征完全隱藏起來,攻擊者從中無法得到任何明文與密文之間關(guān)系的信息。
(1.2)相鄰像素間的相關(guān)性
為了比較明文圖像和密文圖像相鄰像素的相關(guān)性,本發(fā)明分別從明文圖像和密文圖像中隨機(jī)地選取垂直方向、水平方向以及對角方向3000對相鄰像素,然后利用如下公式計(jì)算像素間的相關(guān)性:
其中xj和yj分別是圖像中兩個(gè)相鄰點(diǎn)的像素值,n為采樣點(diǎn)的個(gè)數(shù)。
表1列出了明文圖像和密文圖像在垂直、水平以及對角線方向的相關(guān)系數(shù)。
將兩相鄰像素的像素值作為(x,y)坐標(biāo)并以點(diǎn)的形式繪制于平面上,明文圖像與密文圖像相鄰像素相關(guān)性的可視化結(jié)果見圖5。圖5(a)和5(d)、圖5(b)和5(e)、圖5(c)和5(f)分別對應(yīng)于水平、垂直以及對角線方向的情形??梢钥闯?,明文圖像相鄰像素間的相關(guān)性呈明顯線性關(guān)系,而密文圖像相鄰像素間的相關(guān)性呈現(xiàn)隨機(jī)關(guān)系。
專利(cn103455971b)提出三維arnold變換和混沌序列結(jié)合的圖像加密方法,進(jìn)行若干次三維arnold置亂變換,再利用logistic混沌序列與圖像進(jìn)行逐位異或運(yùn)算來改變圖像的像素值。該算法的置亂加密和替換加密互相獨(dú)立,置亂矩陣為經(jīng)典的常數(shù)矩陣且保持不變,改變圖像的像素值基于一維的logistic映射、僅進(jìn)行一輪簡單的位異或運(yùn)算。基于該專利加密算法的思想,對大小為256×256的“l(fā)ena.bmp”圖像進(jìn)行加密,密文圖像的相關(guān)系數(shù)見表1。
近期提出一些基于混沌進(jìn)行圖像加密的改進(jìn)算法,如利用復(fù)合混沌映射、超混沌系統(tǒng)、耦合映像格子替換一維logistic映射,置亂操作和替換操作交替進(jìn)行,置亂操作時(shí)采用arnold變換、baker變換等,但是在多輪加密中置亂變換和密鑰流保持不變。以如下算法作為改進(jìn)算法的代表(以下簡稱改進(jìn)算法):利用三維arnold變換對圖像像素位置置亂,每次操作時(shí)置亂矩陣為經(jīng)典的常數(shù)矩陣且保持不變,然后基于耦合映像格子(局部映射為一維logistic映射)對像素值替換,置亂操作和替換操作交替進(jìn)行若干輪完成加密圖像?;诟倪M(jìn)算法思想,對大小為256×256的“l(fā)ena.bmp”圖像進(jìn)行加密,加密圖像的相關(guān)系數(shù)見表1。
從表1中可以看出,明文圖像的相鄰像素具有高度相關(guān)性,ρ接近1,而本明算法所得密文圖像相鄰像素的相關(guān)性幾乎接近于0,低于基于已有兩種算法思想所得的相關(guān)系數(shù),再次說明了本方法具有很強(qiáng)的抗統(tǒng)計(jì)攻擊能力、在打破相鄰像素相關(guān)性方面更優(yōu)越。
表1
(1.3)shannon信息熵
shannon信息熵是刻畫信息源的不可預(yù)測性和隨機(jī)性重要指標(biāo)。shannon信息熵可以由平均信息量來描述,由公式(16)表示:
其中{yi},i=1,2,…,n,表示信息源y的n種取值,p(yi)表示yi出現(xiàn)的概率;信息源的隨機(jī)性越大,熵也就越大;對于一個(gè)灰度水平為256的密文圖像,其信息熵的理論值為8。利用公式(17),計(jì)算得出明文圖像(圖4(a))與密文圖像(圖4(c))的信息熵分別為h=7.4532和h=7.9978?;趯@?cn103455971b)和改進(jìn)算法思想所得密文圖像的信息熵分別為7.9969和7.9973??梢?,本發(fā)明所得密文圖像的信息熵非常接近于理論值8,這說明密文圖像的像素值分布具有極高的隨機(jī)性,很難被攻擊者破譯。
2)密鑰空間分析
本發(fā)明的算法密鑰空間中的密鑰共9個(gè),包括:初值條件x(1),y(1),z(1),,映像網(wǎng)絡(luò)控制參數(shù)ε,,a,b,其它控制參數(shù)i0,m0,(l,m,n)。根據(jù)ieee浮點(diǎn)數(shù)標(biāo)準(zhǔn),以64位雙精度作為計(jì)算精度,其精度為10-15,則整個(gè)密鑰空間大小約為1015×3×1015×1015×10×100×413=1079≈2263,相當(dāng)于263位的密鑰空間??梢娒荑€空間充分大,遠(yuǎn)遠(yuǎn)大于傳統(tǒng)加密方法如des、idea、aes的密鑰空間,這足夠滿足實(shí)際應(yīng)用的抗暴力破解需求。
3)密鑰敏感性測試
為驗(yàn)證本發(fā)明中密鑰的敏感性,在解密時(shí),僅改變某一密鑰的值,使其與加密時(shí)密鑰僅相差10-15。令δ=10-15,將密鑰由ε=0.1改為ε=0.1+δ,或?qū)⒚荑€由z(1)=0.2改為z(1)=0.2+δ,或?qū)⒚荑€由m0=100改為m0=101,分別如圖6(a)、6(b)、6(c)所示,均得到錯(cuò)誤的解密圖像??梢钥闯鲥e(cuò)誤解密后的圖像與明文圖像(圖4(a))差別甚大,完全看不出明文圖像所隱含的任何信息,說明本發(fā)明的加密方法具有極強(qiáng)的密鑰敏感性,即使使用一個(gè)與加密密鑰具有極其微小差異的解密密鑰,也不能解密得到任何與明文相關(guān)的信息;解密時(shí)對其它密鑰改變時(shí),也得到錯(cuò)誤解密圖像。
4)抗差分攻擊分析
像素變化比率(npcr)和統(tǒng)一平均變化度(uaci),常作為對圖像加密算法差分攻擊分析的測評指標(biāo),具體計(jì)算公式如下:
其中
表2