沈子懿,王衛(wèi)亞,榮憲偉,蔣東華,+
(1.長安大學(xué) 信息工程學(xué)院,陜西 西安 710064; 2.哈爾濱師范大學(xué) 物理與電子工程學(xué)院,黑龍江 哈爾濱 150025)
隨著多媒體信息尤其是圖像信息在公用網(wǎng)絡(luò)的傳輸量急劇增加,這就使得我們?cè)谠O(shè)計(jì)圖像加密算法時(shí)不但要考慮多媒體信息的安全問題,還要考慮如何對(duì)圖像進(jìn)行有效的壓縮。由于純文本信息與數(shù)字圖像存在本質(zhì)上的區(qū)別[1],所以傳統(tǒng)的針對(duì)純文本信息所設(shè)計(jì)的加密算法已經(jīng)不能滿足數(shù)字圖像加密的要求,且針對(duì)純文本信息的加密算法具有非常高的計(jì)算復(fù)雜度[2]。后來,隨著對(duì)混沌理論不斷深入研究,科研人員發(fā)現(xiàn)具有偽隨機(jī)性和初始敏感性的混沌系統(tǒng)非常適合應(yīng)用于安全通信領(lǐng)域?;煦缋碚摰某霈F(xiàn)為數(shù)字圖像加密領(lǐng)域的研究提供新方法。
截至到目前,密碼系統(tǒng)設(shè)計(jì)者們基于混沌理論提出很多圖像加密算法[3-12]。例如:在文獻(xiàn)[3]中,Li等提出采用貓映射對(duì)灰度圖像的灰度值進(jìn)行加密的加密算法。另外,再通過雙向擴(kuò)散提高密文圖像的安全性。在文獻(xiàn)[4]中,Zhou等提出使用混沌映射和線性映射對(duì)數(shù)字圖像進(jìn)行加密的方法。首先將十進(jìn)制灰度圖像矩陣O轉(zhuǎn)為二進(jìn)制數(shù)矩陣OB,然后使用線性映射對(duì)矩陣OB進(jìn)行置亂,接著通過Skew-Tent混沌系統(tǒng)產(chǎn)生偽隨機(jī)序列對(duì)置亂以后的矩陣進(jìn)行按位異或操作,最終實(shí)現(xiàn)對(duì)灰度圖像的加密。在文獻(xiàn)[5]中,Li等提出通過明文圖像的哈希值來控制混沌系統(tǒng)產(chǎn)生偽隨機(jī)數(shù),再由這些偽隨機(jī)數(shù)完成對(duì)明文圖像的置亂和擴(kuò)散。而文獻(xiàn)[6]中,一種基于置亂-調(diào)制-擴(kuò)散結(jié)構(gòu)的圖像加密算法由Ye等提出。在該加密過程中,Ye等通過明文圖像的信息熵來控制混沌系統(tǒng)產(chǎn)生偽隨機(jī)序列,最終通過這些偽隨機(jī)數(shù)完成對(duì)明文圖像的加密。上述所提到的基于混沌系統(tǒng)的加密算法不但被指出存在安全隱患[13],而且這些加密算法并沒有考慮到圖像數(shù)據(jù)的可壓縮性。
為了降低圖像的數(shù)據(jù)量和增強(qiáng)抵抗明文攻擊,我們基于整數(shù)小波變換和二維混沌系統(tǒng)提出了一種多圖像加密算法。該加密算法具有兩個(gè)階段:數(shù)據(jù)壓縮、同時(shí)置亂和擴(kuò)散操作,最終可以產(chǎn)生多幅密文圖像。因此我們提出的加密算法具有以下3個(gè)優(yōu)點(diǎn):①通過整數(shù)小波變換理論對(duì)數(shù)字圖像進(jìn)行壓縮,不但可以減輕信道傳輸負(fù)擔(dān),還可以減少圖像數(shù)據(jù)的冗余度;②通過本文提出的同時(shí)置亂和擴(kuò)散操作對(duì)圖像進(jìn)行加密,可以有效抵抗獨(dú)立攻擊;③將加密得到的圖像動(dòng)態(tài)分割成多個(gè)子圖像分別在公用網(wǎng)絡(luò)中進(jìn)行傳輸和存儲(chǔ),可以有效抵抗選擇明文攻擊。
文獻(xiàn)[14]中指出,數(shù)字圖像加密算法的密鑰空間至少要達(dá)到1030≈2100,所以我們應(yīng)盡量避免使用一維混沌系統(tǒng)對(duì)數(shù)字圖像加密。因?yàn)橐痪S混沌系統(tǒng)的密鑰空間小,而且相比于多維混沌系統(tǒng)來說,一維混沌系統(tǒng)的結(jié)構(gòu)簡(jiǎn)單,并且混沌特性也沒那么復(fù)雜。本文中,我們采用二維超混沌系統(tǒng)[15]進(jìn)行密碼流的設(shè)計(jì)。該二維超混沌系統(tǒng)具體的表述如下
(1)
在這里,θ為該二維混沌系統(tǒng)的控制參數(shù),并且θ屬于[0,1]。x和y分別是該二維混沌系統(tǒng)所生成的偽隨機(jī)序列,并且x和y屬于[0,1]。圖1為該二維混沌系統(tǒng)輸出序列x的分岔圖。從圖中可以看出,該二維混沌系統(tǒng)具有非常復(fù)雜的混沌特性,非常適合用在圖像加密方面。
圖1 混沌序列x的分岔圖
整數(shù)小波變換是由Calderbank在1998年提出來的一種完全可逆的變換[16]。如圖2所示,圖2(a)表示該變換將任意一張圖像分解成4個(gè)子圖 (LL,HL,LH,HH) 的示意圖,圖2(b)表示對(duì)Lena圖像進(jìn)行整數(shù)小波變換得到的分解圖。從圖2中可以看出子圖LL包含了Lena圖像的絕大部分能量,因此將子圖LL提取出來再對(duì)其進(jìn)行加密就可以達(dá)到加密原來圖像的效果,并且還可以完成對(duì)圖像的壓縮。整數(shù)小波變換的數(shù)學(xué)表達(dá)式如下所示
(2)
在這里,e(n)表示一維信號(hào)e得第n個(gè)元素。另外,d(n)和c(n)分別表示信號(hào)的高頻分量和低頻分量。逆整數(shù)小波變化如式(3)所示
(3)
圖2 圖像一層整數(shù)小波變換分解
本部分,我們將詳細(xì)介紹該加密算法。首先對(duì)4張明文圖像通過整數(shù)小波變換進(jìn)行數(shù)據(jù)壓縮,接著將這4幅壓縮以后的圖像進(jìn)行交叉組合。然后通過二維混沌系統(tǒng)產(chǎn)生兩組偽隨機(jī)序列,利用這兩組偽隨機(jī)序列對(duì)交叉組合得到的圖像同時(shí)進(jìn)行置亂和擴(kuò)散操作。最終經(jīng)過動(dòng)態(tài)分割即可生成4幅含有不同明文信息的密文圖像。為了不失一般性,我們假設(shè)4幅明文圖像為P1,P2,P3和P4,并且它們的大小都為2M×2N,像素值的范圍為[0,255]。最終生成4幅大小為M×N的密文圖像C1,C2,C3和C4。整個(gè)加密過程如圖3所示。
圖3 加密算法的流程框架
(4)
floor(·)表示對(duì)括號(hào)中的元素,·按負(fù)無窮方向取整。
(2)再根據(jù)式(2)對(duì)4幅明文圖像P1,P2,P3和P4進(jìn)行整數(shù)小波變換,然后提取相應(yīng)的低頻子圖就可以得到壓縮以后的圖像LLP1,LLP2,LLP3和LLP4。
(3)然后通過式(5)對(duì)4幅壓縮得到的圖像LLP1,LLP2,LLP3和LLP4進(jìn)行交叉組合,并將組合得到的圖像命名為LLPC
(5)
在這里,i=1,2,…,4MN;j=1,2,…,MN。 mod(·)表示對(duì)括號(hào)中的元素·進(jìn)行求余運(yùn)算。
(4)輸入密鑰x0,y0,r0,u0,v0,r1,C0和D0。根據(jù)密鑰x0,y0,r0和u0,v0,r1分別迭代二維混沌系統(tǒng)(式(1))t0+MN次,就得到了偽隨機(jī)序列x,y,u和v,然后丟棄4組偽隨機(jī)序列的前t0項(xiàng),以消除混沌系統(tǒng)的瞬時(shí)效應(yīng)。最終通過式(6)和式(7)得到置亂序列ZL和擴(kuò)散序列KS
ZL=sort(mod(x+u,1))
(6)
KS=mod(floor(mod(y+v+C0,1)×1014),256)
(7)
這里,sort(·)表示對(duì)括號(hào)中的元素·按升序進(jìn)行排列,最后返回升序元素在原元素中的索引值。
(5)接著通過如下公式對(duì)交叉組合得到的圖像LLPC進(jìn)行同時(shí)置亂和擴(kuò)散操作
(8)
這里,⊕表示按位異或操作,i=1,2,…,4MN。
(6)根據(jù)密鑰x0’(x0’=ev+x0),y0,r0迭代二維混沌系統(tǒng)(式(1))4MN次得到混沌序列xc。再根據(jù)如下公式對(duì)混沌序列進(jìn)行處理
cm=mod(floor(xc×1014),4)
(9)
(7)通過式(10)根據(jù)cm對(duì)加密得到的序列C進(jìn)行動(dòng)態(tài)分割,最終就可以得到4幅密文圖像C1,C2,C3和C4
(10)
式中:i=1,2,…,4MN。
由于本文所提出的算法屬于對(duì)稱加密算法,所以該解密算法即是加密算法的逆過程。首先根據(jù)4幅明文圖像的特征值ev計(jì)算出混沌序列cm,進(jìn)而將4幅密文圖像進(jìn)行組合。再對(duì)組合得到的圖像進(jìn)行逆同時(shí)置亂和擴(kuò)散操作,逆操作公式如式(11)所示。最后將解密圖像進(jìn)行逆交叉分解即可得到4幅明文圖像
(11)
為了檢驗(yàn)該加密算法的安全性和可行性,我們使用8張大小為512×512的明文圖像進(jìn)行模擬仿真。各項(xiàng)安全測(cè)試均運(yùn)行在臺(tái)式機(jī)(i7-9700F CPU,16G Memory,Win-dows 10 Enterprise)上的Matlab 2019a中。在模擬仿真中,我們使用到的加密密鑰x0=0.9366,y0=0.9945,r0=0.2379,u0=0.8961,v0=0.3784,r1=0.3721,C0=0.134和D0=12。該加密算法的實(shí)驗(yàn)仿真結(jié)果如圖4所示,圖4(a)和圖4(d)為明文圖像。圖4(b)和圖4(e)分別為最終加密得到的4幅子密文圖像。圖4(c)和圖4(f)為解密圖像。從圖4中可以看出,該加密算法對(duì)明文圖像進(jìn)行加密的同時(shí)還進(jìn)行壓縮(壓縮得到的圖像并不影響其內(nèi)容的完整性),減輕網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān),并且我們完全無法識(shí)別出其包含的明文信息,這樣可以有效防止明文圖像信息的泄露。
選擇明文攻擊是最常見的一種攻擊方式,而一個(gè)實(shí)用的圖像加密算法必須要能抵抗選擇明文攻擊。傳統(tǒng)抵抗選擇明文攻擊的方法是將明文圖像的特征值與加密算法的密鑰相關(guān)聯(lián)。雖然這種方式可以使加密算法具備一定的抵抗選擇明文攻擊的能力,但加密算法都是與明文圖像的整體特征相關(guān)聯(lián)的,而在實(shí)際中,明文圖像的關(guān)鍵信息往往集中在少數(shù)幾個(gè)關(guān)鍵區(qū)域而非整幅明文圖像。為了增加加密算法抵抗選擇明文攻擊的能力,我們提出了一種抵抗選擇明文攻擊的方法。在本文中,我們將經(jīng)過同時(shí)置亂和擴(kuò)散操作得到的加密序列C進(jìn)行動(dòng)態(tài)的分割,即產(chǎn)生4幅密文圖像。因此,攻擊者想要通過選擇明文攻擊的方式來獲取本文所提方案產(chǎn)生的密文圖像幾乎不可能。
圖4 實(shí)驗(yàn)仿真結(jié)果
隨著超級(jí)計(jì)算機(jī)的發(fā)展(如美國的Summit超級(jí)計(jì)算機(jī),峰值計(jì)算速度為200795 TFlop/s;中國的神威太湖之光超級(jí)計(jì)算機(jī),峰值計(jì)算速度為125436 TFlop/s),使得計(jì)算機(jī)的計(jì)算速度和性能都有了質(zhì)的飛躍,這也使得通過計(jì)算機(jī)對(duì)數(shù)字圖像加密算法進(jìn)行暴力攻擊成為了可能。本文中我們提出的加密算法中使用了兩組密鑰值,分別用于產(chǎn)生置亂和擴(kuò)散序列。假設(shè)計(jì)算機(jī)的計(jì)算精度為10-15,則該加密算法的密鑰空間為 (1015)6×1015×28≈2356。 從表1中可以看出,我們提出的加密算法的密鑰空間比其它加密算法[15,17,18]的密鑰空間要大的多,因此抵抗窮舉攻擊的效果更好。
表1 不同加密算法的密鑰空間分析
密鑰敏感性是用來評(píng)估加密算法擴(kuò)散特性的好壞程度,一個(gè)優(yōu)秀的加密算法應(yīng)該對(duì)密鑰具有極高的敏感性,因?yàn)榧用芟到y(tǒng)對(duì)密鑰越敏感,選擇明文攻擊就越困難。本部分,我們將通過均方差來評(píng)估測(cè)試該加密算法的密鑰敏感性。均方差(MSE)是衡量加密算法對(duì)密鑰敏感性的一個(gè)重要指標(biāo)。均方差計(jì)算公式如式(12)
(12)
在這里,M,N表示圖像的大小,(i,j)表示明文圖像P和解密得到的圖像D中的坐標(biāo)點(diǎn)。MSE越大,表示加密算法對(duì)密鑰的靈敏程度越大。圖5顯示的是密鑰x0,y0,r0的均方差曲線。圖6顯示的是使用錯(cuò)誤的密鑰解密得到的圖像。通過圖5和圖6我們可以知道,當(dāng)正確的密鑰發(fā)生非常細(xì)微的變化時(shí),所解密得到的圖像與明文圖像具有非常大的均方差,并且從視覺上看,解密得到的圖像沒有顯示出任何明文圖像的信息。說明我們提出的加密算法具有非常好的密鑰敏感性。
圖5 均方差分析結(jié)果
隨機(jī)數(shù)在圖像安全領(lǐng)域有著至關(guān)重要的作用。而SP800-22是由美國國家標(biāo)準(zhǔn)技術(shù)局(NIST)發(fā)布的一套用于對(duì)數(shù)據(jù)流進(jìn)行隨機(jī)性測(cè)試的軟件包,其中包括16種隨機(jī)性測(cè)試[19]。這些測(cè)試往往是通過概率統(tǒng)計(jì)的方式去考察該數(shù)據(jù)流是否滿足隨機(jī)性的特征,如周期性、相關(guān)性以及分布特性。在本部分,我們將通過SP800-22隨機(jī)性測(cè)試來判斷該加密算法所產(chǎn)生的密文圖像隨機(jī)性,實(shí)驗(yàn)結(jié)果見表2。通過分析表中的數(shù)據(jù),我們可以看出,本文所產(chǎn)生的密文圖像成功通過了SP800-22的隨機(jī)性測(cè)試。因此,我們認(rèn)為該加密算法所產(chǎn)生的密文圖像具有非常好的隨機(jī)性。
表2 密文圖像的隨機(jī)性測(cè)試結(jié)果
當(dāng)密文圖像通過公用網(wǎng)絡(luò)進(jìn)行傳輸時(shí)不可避免的會(huì)受到噪聲的影響,從而導(dǎo)致密文圖像中某些像素值丟失。在本部分,我們對(duì)密文圖像人為地加入一些干擾,以此來測(cè)試該加密算法的健壯性。圖7顯示的是對(duì)同一幅Zelda密文圖像進(jìn)行不同強(qiáng)度噪聲攻擊的實(shí)驗(yàn)結(jié)果(圖7(a)是加入椒鹽噪聲強(qiáng)度為0.001%的解密圖像;圖7(b)為加入椒鹽噪聲強(qiáng)度為0.005%的解密圖像;圖7(c)為加入椒鹽噪聲強(qiáng)度為0.1%的解密圖像;圖7(d)為加入椒鹽噪聲強(qiáng)度為0.15%的解密圖像)。圖8顯示的是對(duì)同一幅Zelda密文圖像進(jìn)行不同強(qiáng)度剪切攻擊的實(shí)驗(yàn)結(jié)果(圖8(a)是加入剪切強(qiáng)度為1/16的解密圖像;圖8(b)為加入剪切強(qiáng)度為1/8的解密圖像;圖8(c)為加入剪切強(qiáng)度為1/4的解密圖像;圖8(d)為加入剪切強(qiáng)度為1/2的解密圖像)。從圖中我們可以看出,該加密算法具有非常好的健壯性,可以抵抗高強(qiáng)度的噪聲和剪切攻擊,非常適用于安全圖像傳輸領(lǐng)域。
香農(nóng)信息熵反映了一張圖像的整體隨機(jī)性。圖像的香農(nóng)信息熵越大,說明該圖像整體的隨機(jī)性越強(qiáng)。為了精準(zhǔn)測(cè)試由該加密算法所產(chǎn)生的密文圖像的隨機(jī)性,我們采用局部香農(nóng)信息熵[20]的方式來進(jìn)行定量測(cè)量。局部香農(nóng)信息熵的定義如下
(13)
圖7 噪聲攻擊實(shí)驗(yàn)結(jié)果
圖8 剪切攻擊實(shí)驗(yàn)結(jié)果
在這里,i=1,2,3,…,TB。 圖像的灰度級(jí)范圍在[0,255]。S1,S2,S3,…,Sk為隨機(jī)抽取密文圖像中k個(gè)含有TB個(gè)像素點(diǎn)的不重疊塊。H(Si) 表示第Si個(gè)不重疊塊的香農(nóng)信息熵。在本次實(shí)驗(yàn)中,我們假設(shè)k=30,TB=1936,這就意味著我們將隨機(jī)抽取密文圖像中30個(gè)含有1936個(gè)像素的不重疊塊。根據(jù)文獻(xiàn)[21],我們可以算出(30,1936)-局部香農(nóng)熵的值應(yīng)該在[7.901 901 305,7.903 037 329]之間,并且置信度α為0.05。表3顯示的是一些標(biāo)準(zhǔn)測(cè)試圖像的局部香農(nóng)信息熵,從表中可以看出,在生成的密文圖像中像素的分布是非常隨機(jī)的。
表3 局部香農(nóng)信息熵實(shí)驗(yàn)結(jié)果
最后一個(gè)部分,我們分析該加密算法的時(shí)間復(fù)雜度。時(shí)間復(fù)雜度用來衡量一個(gè)算法執(zhí)行的時(shí)間長短,是衡量加密算法的一個(gè)非常重要的性能指標(biāo)。我們先假設(shè)每張明文圖像的大小為N×N,則該加密算法的時(shí)間復(fù)雜度主要取決于對(duì)4幅圖像的置亂操作和擴(kuò)散操作。最后經(jīng)計(jì)算,可以得到該加密算法的時(shí)間復(fù)雜度為θ(N2)。表4顯示的是不同的加密算法對(duì)同一幅Lena圖像加密所耗費(fèi)的時(shí)間。我們不難發(fā)現(xiàn)該加密算法運(yùn)行所需要的時(shí)間比其它加密算法[15,17,18]所花費(fèi)的時(shí)間要短,加密效率更高。
表4 不同算法的加密時(shí)間分析/s
本文提出了一種基于整數(shù)小波變換和二維混沌系統(tǒng)的多圖像加密算法。該加密算法主要由以下3部分組成:圖像數(shù)據(jù)的壓縮、同時(shí)置亂和擴(kuò)散操作和動(dòng)態(tài)分割。首先通過整數(shù)小波變換對(duì)數(shù)字圖像進(jìn)行壓縮,這樣做可以減輕公用信道的傳輸壓力。然后再經(jīng)過同時(shí)置亂和擴(kuò)散操作和動(dòng)態(tài)分割,最終產(chǎn)生多幅密文圖像。
由于該加密算法將置亂過程和擴(kuò)散過程結(jié)合到同一過程中,并且將多幅明文圖像的信息加密到多幅密文圖像中去,所以該加密算法能抵抗選擇明文攻擊和獨(dú)立攻擊,并且提升了網(wǎng)絡(luò)傳輸效率。下一步將考慮通過伯恩斯坦多項(xiàng)式把加密得到的類噪聲密文圖像隱藏在某一幅具有實(shí)際意義的載體圖像中,以此增加明文圖像信息的安全。