葉瑞松,習(xí)玉婷,陳錦彬
(汕頭大學(xué) 數(shù)學(xué)系,廣東 汕頭 515063)
隨著智能手機(jī)和移動互聯(lián)網(wǎng)的快速發(fā)展,圖像信息的獲取與共享交換日益方便快捷.網(wǎng)絡(luò)上傳輸?shù)膱D像信息會被非法截獲、篡改,圖像信息的安全問題也日益受到更多的關(guān)注.加密是一種有效的保護(hù)機(jī)密信息的技術(shù),一些傳統(tǒng)的數(shù)據(jù)加密算法,如RSA,IDEA、AES 等,對于具有高度相關(guān)度和冗余度等內(nèi)在特征的數(shù)字圖像來說并不適合[1].混沌系統(tǒng)具有對初值和系統(tǒng)參數(shù)的敏感依賴性,拓?fù)滢D(zhuǎn)遷性,偽隨機(jī)性等特點(diǎn),這些特點(diǎn)和密碼系統(tǒng)混淆擴(kuò)散的基本要求高度一致,使得基于混沌映射的圖像加密算法具有很好的加密性能[2-3].
基于混沌的圖像加密算法一般采用置換-擴(kuò)散結(jié)構(gòu),這是由Fridrich于1998年首次提出的[2].這種加密由兩個過程組成:置換和擴(kuò)散.基于這種置換-擴(kuò)散結(jié)構(gòu),許多學(xué)者提出了一系列基于混沌的加密方案[4-7].傳統(tǒng)的具有固定密鑰流的置換-擴(kuò)散體系結(jié)構(gòu)存在一個很大的缺陷.如果明文圖像是一個所有像素的灰度值相同的均勻圖像,則置換和擴(kuò)散階段將變成兩個相互獨(dú)立的過程.黑客可以容易通過已知明文或選擇明文攻擊進(jìn)行密碼分析,并成功破解[8-11].為了克服傳統(tǒng)的混沌圖像加密方案密鑰空間小、置換-擴(kuò)散結(jié)構(gòu)安全性差等缺點(diǎn),許多研究者轉(zhuǎn)向?qū)ふ揖哂写竺荑€空間和有效置換-擴(kuò)散機(jī)制的改進(jìn)混沌圖像加密系統(tǒng).文獻(xiàn)[3]提出了一種具有高效置換-擴(kuò)散機(jī)制的圖像加密方案,該方案具有巨大的密鑰空間、有效抵抗統(tǒng)計攻擊、差分攻擊、已知明文以及選擇明文攻擊等優(yōu)點(diǎn).文獻(xiàn)[12]利用Logistic映射和正弦映射的非線性組合構(gòu)造了一個新的改進(jìn)混沌系統(tǒng),采用該混沌系統(tǒng)獲得更好的安全性和加密性能.文獻(xiàn)[13]使用Chen系統(tǒng)生成具有優(yōu)良混沌性能的密鑰流,并設(shè)計了一種基于動態(tài)狀態(tài)變量選擇機(jī)制的混沌圖像加密方案(DSVSM)以提高圖像加密的安全性和性能.文獻(xiàn)[14]提出了兩種圖像加密算法.算法1在置換過程中使用Cat映射,擴(kuò)散階段使用Logistic映射,而在算法2中,置換階段由反向Cat映射和普通Cat映射組合而成,在兩個置換步驟之間進(jìn)行像素值修改.文獻(xiàn)[15]提出了一種新的基于格雷碼置換的圖像加密方案,其置換策略利用了(n,p,k)-格雷碼的優(yōu)點(diǎn)來獲得優(yōu)良的置換效率,其擴(kuò)散過程具有明文相關(guān)的特性.文獻(xiàn)[16]提出一個基于混沌和伽羅瓦域運(yùn)算的新型彩色圖像加密算法.該算法采用伽羅瓦域上擴(kuò)散與置換相嵌-顏色通道間置換-雙向擴(kuò)散的加密結(jié)構(gòu).該算法具有極大的密鑰空間、良好的統(tǒng)計特性、極強(qiáng)的密鑰敏感性、明文敏感性,可有效抵抗多種攻擊.文獻(xiàn)[17]提出了一種以混沌系統(tǒng)的初始值和參數(shù)作為密鑰,主要采用改進(jìn)的Joseph 遍歷法對圖像進(jìn)行加密.文獻(xiàn)[18]提出了一種基于比特反轉(zhuǎn)的增強(qiáng)型數(shù)字混沌映射,可以有效增強(qiáng)密鑰流的混沌特性.
本文提出了一種基于混沌映射和像素交換的圖像加密算法.該算法在以下幾個方面進(jìn)行了創(chuàng)新,較好地解決了經(jīng)典置換-擴(kuò)散結(jié)構(gòu)的圖像加密方案所存在的缺陷.1)通過斜帳篷映射生成與明文圖像像素灰度值相關(guān)的隨機(jī)位置分配.這意味著即使用相同的密鑰加密不同的明文圖像時,密鑰流也會不同,攻擊者無法通過已知/選擇明文攻擊獲取任何有用的信息.因此,本文提出的圖像加密算法具有自適應(yīng)的特性,可以達(dá)到一次一密的加密效果.2)正如許多現(xiàn)有的工作所指出的,擴(kuò)散過程是整個加密方案中代價最高的[19].本文提出的基于像素交換的置換方法可以同時產(chǎn)生混淆和擴(kuò)散效應(yīng),從而加快加密速度,有效地解決了擴(kuò)散過程耗時的問題.3)該加密算法中的擴(kuò)散過程以S形模式掃描實現(xiàn),在擴(kuò)散階段明文的微小差異將導(dǎo)致整幅密文圖像的巨大差異,因此可以獲得更有效的擴(kuò)散效應(yīng).論文對加密算法的安全性和性能進(jìn)行了深入的分析,包括直方圖、相關(guān)系數(shù)、信息熵、密鑰敏感度、密鑰空間、差分攻擊、加密效率等.實驗結(jié)果表明,本文提出的圖像加密算法具有優(yōu)良的加密性能和安全性,可用于圖像和視頻通信的安全防范.
由于該加密算法包括置換和擴(kuò)散兩個過程.故而在置換和擴(kuò)散過程中使用斜帳篷映射.它是一個分段線性映射,其函數(shù)圖像看起來像一個帳篷,定義為
(1)
式中:u∈[0,1]是狀態(tài)變量,a∈(0,1)是系統(tǒng)參數(shù).眾所周知,斜帳篷映射具有很好的混沌特性[4].
第1步.讀取明文圖像,得到一個二維矩陣P,大小為H×W,其元素值為0~255的整數(shù).首先將明文圖像分解為2個大小相同的子圖像.將這2個子圖像記為V1,V2,分別由P的左半部分和右半部分組成,設(shè)L=H×W/2.
第3步.根據(jù)式(2)生成基于明文圖像內(nèi)容的值p,用于生成明文相關(guān)的密鑰流,以增強(qiáng)加密算法的安全性.
(2)
式中函數(shù)floor(x)返回小于或等于x的最大整數(shù).
上述的置換過程具有3方面的優(yōu)點(diǎn):1)重新定位平面圖像像素的位置,使得相鄰像素之間的相關(guān)系數(shù)大大降低;2)由于密鑰流與明文圖像的內(nèi)容相關(guān),兩個明文圖像之間的細(xì)微差別會使置換后的圖像產(chǎn)生極大的差異;3)該置換過程能有效抵抗已知/選擇明文攻擊、已知密文攻擊和差分攻擊.
在擴(kuò)散過程,通過將明文圖像像素的灰度值與斜帳篷映射生成的密鑰流元素值混合,對像素值進(jìn)行順序修改,破壞密文圖像與明文圖像之間的關(guān)系.擴(kuò)散過程以S形模式掃描實現(xiàn),正常擴(kuò)散過程與S型擴(kuò)散過程的區(qū)別如圖1和圖2所示.假設(shè)兩幅明文圖像只有一個像素差別,該像素坐標(biāo)為(x,y),經(jīng)過置換后,假設(shè)位置(x,y)變換到(x′,y′),那么經(jīng)過正常方向的擴(kuò)散后,密文圖像有差別的像素將從(x′,y′)開始一直到圖像的末端,在(x′,y′)之前的像素的灰度值并沒有改變.本文所提出的擴(kuò)散過程采用圖2所示的S形模式掃描實現(xiàn),并且從最后一個像素開始進(jìn)行擴(kuò)散操作.由于置換后兩幅圖像的最后一個像素總是不同的,所以本文的擴(kuò)散過程操作一輪后,最后一個像素的差別將擴(kuò)散到整個圖像.因此,S形模式掃描下的擴(kuò)散過程可以顯著提高加密算法的效率[13].詳細(xì)的擴(kuò)散過程描述如下:
圖1 正常置換-擴(kuò)散模式
圖2 S型置換-擴(kuò)散模式
第1步.給定初始值x01、x02、x03, 控制參數(shù)a1和密鑰q,p1.
第2步.分別使用初始值x01、x02、x03迭代斜帳篷映射q次, 去掉這些值以避免有害的過渡效應(yīng).為了簡單起見,將得到的三個軌道點(diǎn)xq1、xq2、xq3分別表示為x01、x02、x03,令n=1.
第3步.計算t=mod(p1,3)+1.根據(jù)得到的t,計算下一個軌道點(diǎn)x1t=T(x0t,a1).并用式(3)計算密鑰流元素
K1=floor(x1t×256).
(3)
第4步.使用式(4)屏蔽明文像素值,然后重置p1為生成的密文圖像像素值
c(n)=K1⊕p(n)⊕c(n-1),
(4)
式中:運(yùn)算“⊕”表示按位異或運(yùn)算,p(n),K1,c(n)和c(n-1)分別表示當(dāng)前明文圖像像素、密鑰流元素、輸出密文圖像像素和上一個密文圖像像素.要加密第一個像素,必須將c(0)設(shè)置為種子.
第5步.n增加1并返回步驟3,直到完成所有像素的加密.最后將密文圖像向量轉(zhuǎn)換為一個二維矩陣,即得到最終的密文圖像.
解密算法是加密算法的逆過程,略.
對所提出的加密算法、DSVSM[13]和算法1[14]進(jìn)行了實驗仿真和性能分析.DSVSM和算法1的密鑰與文獻(xiàn)[13]和[14]中的密鑰相同.所有的模擬仿真均在一臺配備Intel Xeon 2.13 GHz CPU,2 GB內(nèi)存和300 GB硬盤空間的計算機(jī)上實現(xiàn).計算機(jī)的操作系統(tǒng)是Windows 7 Professional,編譯平臺為matlab7.1,并用matlab7.1繪制了圖形.
所以密鑰空間足夠大,足夠抵抗暴力攻擊.
圖像直方圖通過繪制每個灰度級的像素個數(shù)來顯示圖像中像素值的分布.有效的加密圖像的理想直方圖應(yīng)該服從均勻分布,并且與明文圖像的直方圖有很大的不同.圖3(a)、(b)分別為明文圖和加密圖,(c)、(d)分別為Lena及其密文圖像的直方圖.很明顯,加密圖像的直方圖是均勻的,并且與明文圖像的直方圖有巨大的不同,這意味著加密后明文圖像的冗余被成功地消除了,因此它不能為統(tǒng)計攻擊提供任何有用的信息.
圖3 加密結(jié)果
一個有效的加密算法應(yīng)該對密鑰具有很強(qiáng)的敏感性.為了測量算法對密鑰參數(shù)K的敏感性,在其他參數(shù)不變的情況下對明文圖像分別在K,K-Δδ和K+Δδ的情況下進(jìn)行加密,相應(yīng)的密文圖像分別用I1、I2、I3表示.利用下式計算加密算法對參數(shù)K的敏感性.
(5)
表1 密鑰敏感性測試結(jié)果
參數(shù)Δδ的變化都是10-16.
表1表明所提出的加密算法對所有參數(shù)都非常敏感.敏感性測試也可以直觀地觀察,見圖4,在保持其它參數(shù)不變的情況下,通過擾動x01=0.52后,對明文圖像進(jìn)行加密得到的2幅密文圖像,具有99.64%的巨大差別;通過擾動x03=0.47后,對明文圖像進(jìn)行加密得到的2幅密文圖像,具有99.61%的巨大差別.另一方面,用差別較小的密鑰去解密原密鑰加密的密文圖像,也不能正確解密.
圖4 密鑰敏感性測試
一般來講,自然有意義圖像中相鄰像素之間的相關(guān)性總是很高,因為它們的像素值非常接近,但是來自有效圖像加密算法的密文圖像中相鄰像素之間的相關(guān)性應(yīng)該足夠低,以使統(tǒng)計攻擊不可實行.從圖像中隨機(jī)選擇N=5 000對相鄰像素,根據(jù)公式(6)計算水平、垂直和對角線方向上相鄰2個像素之間的相關(guān)性,其中xi和yi是隨機(jī)選擇的第i對像素.圖5描繪了由所提出的加密算法產(chǎn)生的Lena及其密文圖像的選定相鄰像素的相關(guān)分布.表2~4分別給出了加密算法對3幅明文圖像以及加密所生成的密文圖像的相鄰像素相關(guān)性的計算結(jié)果.圖像和數(shù)據(jù)均表明,在明文圖像中相鄰像素之間的相關(guān)性很高,而在加密圖像中,相鄰像素之間的相關(guān)性被大大削弱,因此該加密算法具有很好的去除相鄰相關(guān)性冗余的性能.
表2 本文算法、算法1和DSVSM生成的Lena密文圖像的相鄰像素相關(guān)系數(shù)
圖5 相鄰像素的相關(guān)性
(6)
(7)
表3 本文算法、算法1和DSVSM生成的Rice密文圖像的相鄰像素相關(guān)系數(shù)
表4 本文算法、算法1和DSVSM生成的Aerial密文圖像的相鄰像素相關(guān)系數(shù)
引入了一個新的統(tǒng)計指標(biāo)來反映密文圖像的均勻性,即由公式(7)、(8)定義的共生直方圖.水平方向的共生直方圖由式(8)定義.
(8)
垂直方向的共生直方圖由式(9)定義.
(9)
式中g(shù)(x,y)是圖像所在位置(x,y)的像素值.如果g(x,y)=i,δ(g(x,y)-i)=1,否則δ(g(x,y)-i)=0.如果由式(10)定義的信息熵越大,共生直方圖就越均勻.Lena與其密文圖像的共生直方圖如圖6所示.從表5、6所示的3種不同方案產(chǎn)生的密文圖像的共生直方圖和信息熵,可以推斷出本文的加密算法產(chǎn)生的密文圖像在像素值分布上是均勻的.
表5 本文加密算法的共生直方圖信息熵
圖6 Lena及其加密圖像的共生直方圖
(10)
式中:當(dāng)i=1時,T=(H-1)×W;當(dāng)i=2時,T=H×(W-1).
表6 對比算法的共生直方圖信息熵
信息熵是評價信息源隨機(jī)性和不可預(yù)測性的標(biāo)準(zhǔn)之一[21].消息源的熵定義為
(11)
式中:s是信息源,T是表示所有符號si所需要的比特數(shù),P(si)是符號si的概率.對于由2T符號組成的真正的隨機(jī)信息源,其信息熵是T.因此,對于一個有效的加密算法,256灰度級的加密圖像的信息熵應(yīng)該接近8.否則,信息源的隨機(jī)性不夠強(qiáng),存在一定的可預(yù)測性,使得加密算法不安全.由本文所提出的加密方案,算法1和DSVSM對5幅明文圖像進(jìn)行加密,所生成的密文圖像的信息熵如表7所示.結(jié)果表明,本文所提出的加密算法所產(chǎn)生的密文圖像的熵更接近于8,這意味著加密過程中的信息泄漏可以忽略不計,并且具有足夠的魯棒性來抵抗熵攻擊.
表7 本文算法、算法1和DSVSM產(chǎn)生的一輪加密圖像的信息熵
為了抵抗差分攻擊,明文圖像中的細(xì)微差別應(yīng)該會導(dǎo)致密文圖像的巨大差別.利用像素變化率(NPCR)和統(tǒng)一平均變化強(qiáng)度(UACI)2個指標(biāo)來衡量明文圖像中一個像素變化對加密圖像的影響.為了計算NPCR和UACI,假設(shè)2幅明文圖像I1和I2在一個像素上相差一個灰度級,用相同的密鑰加密得到密文圖像分別表示為C1和C2.創(chuàng)建一個矩陣D,當(dāng)C1(i,j)=C2(i,j)時,D(i,j)=0; 否則D(i,j)=1.NPCR和UACI按式(12)和式(13)計算.
(12)
(13)
在實驗中,采用明文圖像Rice,隨機(jī)選擇100個像素點(diǎn),做100次加密,每一次加密改變一個像素的像素值,改變量為1個灰度級.然后比較2個密文圖像來計算NPCR和UACI,取平均值,得到的結(jié)果見表8和表9.從表8和表9的結(jié)果可以看出,在一輪加密中,本文加密算法所得到的NPCR和UACI分別達(dá)到99.6%和33.4%左右, 接近NPCR和UACI的數(shù)學(xué)期望值99.609 4%和33.463 5%[8].結(jié)果表明,該加密方案在抵抗差分攻擊方面,與算法1和DSVSM相比,具有更好的性能.
表8 NPCR性能測試
表9 UACI性能測試
為了比較速度性能,對5張大小相同的測試圖像進(jìn)行加密,然后用每個加密方案和解密方案進(jìn)行一輪加密解密,每個加密方案和解密方案所需的平均時間見表10.從表10中的數(shù)據(jù)可以看出,加密時間和解密時間都比2種對比方案短,因此本加密方案具有更好的速度性能.
表10 速度性能測試 單位:s
本文提出了一種基于混沌映射和像素交換的圖像加密方案,從3個方面較好地解決了經(jīng)典置換-擴(kuò)散結(jié)構(gòu)的圖像加密方案存在的缺陷.1)交換像素的位置由傾斜帳篷映射生成,與明文圖像像素灰度值高度相關(guān).因此,即使使用相同的密鑰,對于不同的明文圖像也可以得到不同的密鑰流,并且該方案在抵抗已知/選擇明文攻擊和選擇密文攻擊方面具有很強(qiáng)的魯棒性.2)眾所周知,擴(kuò)散過程是整個加密方案中代價最高的.基于像素交換的置換方法可以同時產(chǎn)生置換和擴(kuò)散效應(yīng),從而加快加密速度.3)擴(kuò)散過程以S形模式進(jìn)行,只要實施一輪擴(kuò)散,足以獲得有效的擴(kuò)散效果.對該加密算法的安全性和性能進(jìn)行了深入的分析,結(jié)果表明本文提出的圖像加密方案具有優(yōu)良的加密性能和安全性,適用于圖像和視頻通信的安全應(yīng)用領(lǐng)域.