孫長(zhǎng)偉,王艷春
(蚌埠學(xué)院 機(jī)械與電子工程系,安徽 蚌埠 233030)
基于自適應(yīng)混沌參數(shù)調(diào)制的圖像加密
孫長(zhǎng)偉,王艷春
(蚌埠學(xué)院 機(jī)械與電子工程系,安徽 蚌埠 233030)
提出了一種基于自適應(yīng)混沌參數(shù)調(diào)制的圖像加密算法,該算法結(jié)合了自適應(yīng)排列圖像加密算法可以擾亂混沌加密的吸引域統(tǒng)計(jì)特性和基于混沌參數(shù)調(diào)制的圖像加密算法可以抵抗選擇明文的攻擊性的優(yōu)點(diǎn).理論分析和實(shí)驗(yàn)結(jié)果表明,新的算法具有較高的安全性和良好的密碼特性.
圖像加密;算法;混沌;自適應(yīng)
圖像是一種重要的信息載體,其傳輸保密要求高,許多專家都對(duì)圖像加密技術(shù)進(jìn)行了深入的研究.研究方向基本可以分為兩類:數(shù)字水印技術(shù)和圖形圖像加密技術(shù).數(shù)字水印技術(shù)主要是在圖像信息中加入水印信息,為數(shù)字圖像提供版權(quán)保護(hù)[1,2].圖像加密技術(shù)主要分為兩類:對(duì)數(shù)字圖像進(jìn)行位置置換和對(duì)數(shù)字圖像進(jìn)行灰度變換,從而隱藏圖像中包含的有用的信息,為數(shù)字圖像提供基于內(nèi)容的保護(hù)[3].
對(duì)數(shù)字圖像進(jìn)行位置置換加密主要是通過(guò)重新排列數(shù)字圖像像素的位置,從而改變圖像的空間有序性和相鄰像素的相關(guān)性,使明文變?yōu)橐曈X(jué)上無(wú)意義的圖像.由于排列操作只涉及內(nèi)存的讀寫(xiě)操作,因此運(yùn)算速度很快.但僅采用傳統(tǒng)的排列操作是不安全的,容易受已知明文和選擇明文攻擊.攻擊者通過(guò)明文和密文對(duì)比可以獲得密鑰的部分信息[4].為了避免上述缺陷,文獻(xiàn)[5]提出一種自適應(yīng)圖像加密算法,使排列變換可以由明文決定.排列時(shí)先將圖像分成上下(或左右)2個(gè)部分,對(duì)下半部分進(jìn)行排序,然后按下半部分的排序序號(hào)對(duì)上半部分進(jìn)行排列,再采用同樣方法對(duì)下半部分進(jìn)行排列.為保證安全性,需要進(jìn)行多輪加密.加密輪數(shù)由密鑰長(zhǎng)度決定.為了防止窮舉攻擊,目前公認(rèn)安全的密鑰長(zhǎng)度至少為128bit,即自適應(yīng)排列的加密輪數(shù)至少為 128 輪.若密鑰的第 i位(1,2,…,l28)的值為0,則圖像分為左右2個(gè)部分.先根據(jù)右半部分像素的順序?qū)ψ蟀氩糠诌M(jìn)行排列,再排列右半部分.若第i位的值為l,則先排列上半部分,再排列下半部分.
排列操作的另一個(gè)優(yōu)勢(shì)是運(yùn)算速度特別快,因?yàn)樗簧婕皟?nèi)存的讀寫(xiě)操作.但是僅采用排列的加密算法不能抵抗已知明文攻擊.自90年代以來(lái),有關(guān)混沌動(dòng)力學(xué)應(yīng)用的研究逐漸成為信息科學(xué)領(lǐng)域關(guān)注熱點(diǎn)之一.混沌是非線性動(dòng)力系統(tǒng)中出現(xiàn)的一種確定性的類隨機(jī)過(guò)程,具有遍歷性、混合性、確定性以及對(duì)初始條件和控制系數(shù)的敏感性等特點(diǎn),這使得混沌系統(tǒng)很適合用于信息保密[6].因此許多基于混沌理論的加密技術(shù)被提出來(lái),衍生出包括混沌加性遮掩和混沌參數(shù)調(diào)制在內(nèi)的多種加密方式.但是利用混沌加密也有它的局限性,其中一點(diǎn)就是抗統(tǒng)計(jì)分析能力差.
基于以上兩種加密方式的優(yōu)缺點(diǎn),本文提出了一種基于自適應(yīng)排列和混沌參數(shù)調(diào)制相結(jié)合的加密算法,首先根據(jù)圖像矩陣行或列的像素?cái)?shù)據(jù)選擇混沌參數(shù),對(duì)圖像灰度進(jìn)行加密擾亂,然后按照自適應(yīng)排列算法對(duì)混沌加密后的圖像數(shù)據(jù)進(jìn)行擾亂.理論分析和仿真結(jié)果表明本方案具有較高的安全性和良好的密碼特性.
本文采用的混沌系統(tǒng)是Logistic方程,即蟲(chóng)口模型
從Logistic系統(tǒng)方程中可以看出,μ是Logistic系統(tǒng)非常重要的參數(shù),μ值的選取將會(huì)決定Logistic系統(tǒng)能否進(jìn)入混沌態(tài).根據(jù)該方程的可以畫(huà)出Logistic映射的分岔圖,如圖1所示:
從圖1中看出μ值的選取最好在混沌區(qū)之內(nèi),即2>μ>1.40115518909205…的范圍之內(nèi),另外需要避開(kāi)周期3的窗口,即1.809>μ>1.749.這樣才能保證混沌加密的保密性強(qiáng),隨機(jī)性好,密鑰量大的特點(diǎn).因此參數(shù)μ值選取應(yīng)該在混沌區(qū)之內(nèi)選取,避開(kāi)周期3的窗口.
圖1 Logistic映射的分岔圖
在混沌區(qū)選取256個(gè)值排列成16×16的矩陣作為參數(shù)μ盒:
讀取圖像的原始數(shù)據(jù)轉(zhuǎn)換成生成二進(jìn)制明文矩陣M:
由輸入密鑰S控制當(dāng)前輪的加密方式,若當(dāng)前Si=0,則對(duì)明文矩陣按行進(jìn)行加密;若當(dāng)前Si=1,則對(duì)明文矩陣按列進(jìn)行加密.下面簡(jiǎn)述行加密過(guò)程:
設(shè)當(dāng)前對(duì)第k行數(shù)據(jù)進(jìn)行加密,則將第k行的所有數(shù)據(jù)進(jìn)行異或操作:
得到一個(gè)8位二進(jìn)制數(shù)據(jù)bk,將bk的前4位二進(jìn)制所對(duì)應(yīng)的十進(jìn)制數(shù)加1作為行,后四位二進(jìn)制所對(duì)應(yīng)的十進(jìn)制數(shù)加1作為列,從μ盒中選取當(dāng)前行加密的混沌參數(shù)μk,將μk代入Logistic混沌方程中,進(jìn)行迭代運(yùn)算生成n-1個(gè)實(shí)數(shù)序列:xk={xk,1,xk,2,…,xk,n-1},將實(shí)數(shù)序列 xk={xk,1,xk,2,…,xk,n}中的每一個(gè)數(shù)據(jù)用二進(jìn)制表示,分別與第k行的明文數(shù)據(jù)進(jìn)行異或操作生成密文數(shù)據(jù):
該行的最后一個(gè)數(shù)據(jù)加密方式稍有不同,最后一個(gè)數(shù)據(jù)的密文由該行的前n-1個(gè)數(shù)據(jù)的密文的異或結(jié)果與bk進(jìn)行異或操作產(chǎn)生,即:
這樣可以保證該行數(shù)據(jù)加密后所有密文數(shù)據(jù)進(jìn)行異或所得結(jié)果與加密前該行所有明文數(shù)據(jù)進(jìn)行異或操作后所得結(jié)果bk一致,從而可以保證解密時(shí)能夠從μ盒中找到與加密時(shí)一致的混沌參數(shù)μk.重復(fù)以上操作,對(duì)其它行進(jìn)行加密,直到加密完所有數(shù)據(jù).列加密過(guò)程與行加密類似,只是加密操作是對(duì)明文數(shù)據(jù)矩陣的列進(jìn)行.
經(jīng)過(guò)混沌參數(shù)調(diào)制加密后每一行或每一列的數(shù)據(jù)的異或結(jié)果與加密以前一致,為了掩蓋這種信息因此對(duì)加密后的結(jié)果進(jìn)行S盒替代.S盒產(chǎn)生方式:
若當(dāng)前輪是對(duì)行進(jìn)行加密,則對(duì)加密后的密文數(shù)據(jù)的最后一列所有數(shù)據(jù)進(jìn)行異或操作,由所得結(jié)果從μ盒中選取產(chǎn)生S盒的混沌參數(shù)μs,帶入Logistic混沌方程中進(jìn)行迭代運(yùn)算,產(chǎn)生256個(gè)混沌狀態(tài).然后對(duì)256個(gè)混沌狀態(tài)進(jìn)行排序,得到256個(gè)排列序號(hào),將所有序號(hào)減1,排列成16×16的矩陣作為S盒.該S盒的輸入輸出均為8bit,共有256個(gè)元素,每個(gè)元素為0-255之間的整數(shù).最后用產(chǎn)生的S盒對(duì)圖像的全體像素進(jìn)行S盒替代.
由當(dāng)前加密的密鑰Si控制自適應(yīng)性排列的方案,若Si=0則把該輪經(jīng)混沌參數(shù)調(diào)制加密后的密文數(shù)據(jù)矩陣分為上下兩部分,對(duì)下半部分的數(shù)據(jù)排序,然后按下半部分的排序序號(hào)對(duì)上半部分進(jìn)行排列,再采用同樣方法對(duì)下半部分進(jìn)行排列.自適應(yīng)性排列打亂行加密時(shí)每一行的數(shù)據(jù),從而隱藏每一行的異或結(jié)果.
若Si=1則把該輪經(jīng)混沌參數(shù)調(diào)制加密后的密文數(shù)據(jù)矩陣分為左右兩部分,對(duì)左半部分的數(shù)據(jù)排序,然后按左半部分的排序序號(hào)對(duì)右半部分進(jìn)行排列,再采用同樣方法對(duì)左半部分進(jìn)行排列.從而打亂列加密時(shí)每一列的數(shù)據(jù),隱藏每一列的異或結(jié)果.
從上述可以看出該加密過(guò)程可逆.加密過(guò)程只采用了異或操作和排列操作,因此解密程序和加密程序基本一致.只是解密時(shí)需要把密鑰S序列逆序排列,解密自適應(yīng)排列時(shí),要把排列的順序改變一下,其他與加密程序一致.
本節(jié)主要考查第2節(jié)中提出的圖像加密算法的各種安全特性,包括直方圖、明文和密鑰的敏感性以及密文相鄰像素的相關(guān)性.對(duì)本文算法與2個(gè)已有圖像加密算法進(jìn)行比較,實(shí)驗(yàn)所用明文為256~256的 Lena圖像,密鑰(X0,S)沒(méi)為(0.64321,0110).
圖2列出了Lena圖像加密后的直方圖和加密前后的灰度直方圖對(duì)比.可以看出,加密后的灰度直方圖較均勻,掩蓋了明文圖像各像素的分布.
圖2 加密結(jié)果與灰度直方圖
雪崩效應(yīng)是衡量加密算法的重要指標(biāo)之一.所謂雪崩效應(yīng)是指當(dāng)明文或密鑰改變一位時(shí),密文應(yīng)有超過(guò)一半的比特發(fā)生改變.這一特性也稱為密文對(duì)明文或密鑰的敏感性.我們將”Lena”圖像最后一個(gè)像素的最后一比特由1置為0,并對(duì)比加密后密文的變化.表1列出了各輪加密后密文位的改變率.從表1可以看出,經(jīng)過(guò)兩輪加密后,密文位的變化穩(wěn)定在0.996左右,即出現(xiàn)雪崩效應(yīng).
表1 明文改變一位后密文位的改變率
密鑰敏感性檢測(cè)當(dāng)密鑰改變一位時(shí),密文的變化率.我們將密鑰S的最后一個(gè)比特由0置為1,并對(duì)比加密后密文的變化.表2列出了各輪加密后密文位的改變率.從表2可以看出,同樣經(jīng)過(guò)兩輪加密后,密文位的變化穩(wěn)定在0.996左右.
表2 密鑰改變一位后密文位的改變率
將密鑰X0=0.64321改為X0=0.6432100001,對(duì)比加密后密文的變化情況,表三列出各輪加密后密文位的改變率.從表3可以看出,同樣經(jīng)過(guò)兩輪加密后,密文位的變化穩(wěn)定在0.996左右.
表3 密鑰改變一位后密文位的改變率
另外μ盒也是一個(gè)重要的密鑰,將μ盒中任意一個(gè)μ值最后一位改變,都將會(huì)引起加密后密文很大的變化.將第一個(gè)μ值由1.934254改為1.934255,計(jì)算結(jié)果表明經(jīng)一輪加密密文位的改變率就達(dá)到0.996.
在連續(xù)色調(diào)圖像中,相鄰象素的相關(guān)性通常很高,好的圖像加密算法應(yīng)去除這種相關(guān)性.我們從明文和密文圖像的水平、豎直和對(duì)角三個(gè)方向隨機(jī)地選取255對(duì)像素,并計(jì)算了對(duì)應(yīng)的相關(guān)系數(shù).表4對(duì)比了加密前后三個(gè)方向上的相關(guān)系數(shù).表4說(shuō)明加密后,相鄰密文像素之間的相關(guān)性接近于0.
表4 明文和密文圖像中相鄰像素的相關(guān)系數(shù)
本文提出了一種新的混沌參數(shù)調(diào)制加密算法,并將混沌參數(shù)調(diào)制加密算法和自適應(yīng)排列加密算法結(jié)合在一起組成了一種新的圖像加密算法.該算法利用自適應(yīng)排列加密算法和混沌參數(shù)調(diào)制加密算法的優(yōu)缺點(diǎn)進(jìn)行互補(bǔ),由實(shí)驗(yàn)結(jié)果可以看出該算法大大的提高了圖像的安全性.該算法具有以下優(yōu)點(diǎn):
(1)由圖像自身數(shù)據(jù)選擇混沌參數(shù),實(shí)現(xiàn)混沌參數(shù)調(diào)制的自適應(yīng)性;
(2)對(duì)一幅圖像數(shù)據(jù)加密最大可以選擇256個(gè)混沌參數(shù),經(jīng)多輪加密后擾亂了混沌的吸引域特性,因此該算法有較強(qiáng)的抗攻擊能力;
(3)解密過(guò)程和加密過(guò)程基本類似,不用額外設(shè)計(jì)解密系統(tǒng).
〔1〕Qiao L,Nahrstedt L.Camparison of MPEG encryption algorithms[J].-Computer and Graphics,1998,22(4):437-448.
〔2〕Chen G,Zhao X,Li J L.A self-adaptive algorithm on image ellcryption[J].Journal of Software,2005,6(11):562-568.
〔3〕吳發(fā)恩,鄒建成.數(shù)字圖像二維Arnold變換周期的一組必要條件[J].北方交通大學(xué)學(xué)報(bào).2001,25(6):26-32.
〔4〕Furht B,Kirovski D.Multimedia Security Handbook[M].Boca Raton Florida,USA:CRC Press,2005.
〔5〕陳剮,趙曉宇,李均利.一種自適應(yīng)的圖像加密算法[J].軟件學(xué)報(bào),2005,l6(11):1975-1982.
〔6〕周慶,胡月,廖曉峰.一種自適應(yīng)的圖像加密算法的分析及改進(jìn)[J].電子學(xué)報(bào),2009,37(12):2730-2734.
TP309
A
1673-260X(2012)03-0024-03
院級(jí)科研項(xiàng)目(2010ZR15)