牛 瑩 張勛才
①(鄭州輕工業(yè)大學(xué)建筑環(huán)境工程學(xué)院 鄭州 450002)
②(鄭州輕工業(yè)大學(xué)電氣信息工程學(xué)院 鄭州 450002)
圖像加密技術(shù)廣泛應(yīng)用于國家安全、醫(yī)學(xué)成像、隱私信息保護(hù)等領(lǐng)域。圖像因其像素間相關(guān)性高、數(shù)據(jù)量大等固有特征,傳統(tǒng)的加密技術(shù)如數(shù)據(jù)加密標(biāo)準(zhǔn)和高級加密標(biāo)準(zhǔn)等已不能滿足圖像加密的需求。近年來,人們提出了許多新的圖像加密方案,如橢圓曲線方法、希爾加密、DNA加密、混沌加密等[1]。
由于混沌系統(tǒng)具有隨機(jī)性、不確定性和初始條件敏感性等特點(diǎn),在圖像的編碼、解碼、加密和隱藏等方面有著巨大的應(yīng)用前景[2]。1998年,F(xiàn)ridrich[3]提出了一種基于混沌的圖像加密體系結(jié)構(gòu),包括混淆與擴(kuò)散兩個(gè)階段?;煜蛿U(kuò)散是隱藏高冗余和強(qiáng)相關(guān)性的兩種主要技術(shù)。Li等人[4]利用1維混沌序列的隨機(jī)性對圖像的像素位置進(jìn)行置亂,實(shí)現(xiàn)圖像加密。1維混沌系統(tǒng)具有效率高、簡單等優(yōu)點(diǎn)被廣泛應(yīng)用,但因其密鑰空間小、軌道簡單,容易受到攻擊[5,6]。Hua等人[7]提出一種2維邏輯調(diào)整正弦映射,并應(yīng)用于圖像加密。理論上混沌映射具有非周期特征,由于截?cái)嗪蜕崛胝`差的影響,混沌的軌跡在有限精度的設(shè)備上運(yùn)行時(shí),最終會(huì)陷入一個(gè)周期內(nèi)[8]。針對這一問題,文獻(xiàn)[9]提出擴(kuò)展精度的方法來延長混沌映射進(jìn)入一個(gè)周期的時(shí)間。然而,因?yàn)榫炔荒軣o限放大,這種效果是有限的。另一種方法是將多個(gè)映射通過級聯(lián)或切換組合在一起[8]。級聯(lián)和切換都忽略了多個(gè)映射之間可能的相互作用,其組合的效果取決于策略的優(yōu)越性。Zhang[10]提出了一種新的基于提升變換的混沌圖像加密算法。該算法不同于傳統(tǒng)的排列擴(kuò)散結(jié)構(gòu),具有較高的安全性。
雖然越來越多的基于混沌系統(tǒng)的圖像加密方案被提出,大多數(shù)現(xiàn)有方案容易受差分攻擊,關(guān)鍵在于加密方法沒有達(dá)到強(qiáng)混淆特性[11,12]。混淆階段對密碼學(xué)的影響很大,分為像素級和比特級。比特級混淆與基于像素的混淆相比,具有良好的加密效果,因?yàn)楸忍丶壔煜苄薷南袼刂?,而像素級的混淆只改變像素的位置。也有一些基于比特級的圖像加密方法被提出[13,14],加密算法雖有不同,但都是對單一像素點(diǎn)8 bit二進(jìn)制數(shù)置亂,使得一個(gè)像素點(diǎn)比特位0和1的比重不變[15]。為提高的加密算法安全級別,很多加密方案開始采用混合加密的想法,使用一個(gè)加密系統(tǒng)的優(yōu)勢來抑制另一個(gè)系統(tǒng)的缺點(diǎn),同時(shí)保持他們的優(yōu)勢不變。
2018年,Mozaffari等人[16]提出了一種基于遺傳算法和平行比特平面分解的加密方法。所提出的加密方法具有用于多個(gè)位平面加密的并行處理能力。同年,Wang等人[17]結(jié)合1維混沌映射和約瑟夫問題給出了一種圖像加密算法,其約瑟夫遍歷方法的置亂效果在一定程度上具有一定的規(guī)律性[18]。2019 Chai等人[19]提出一種基于混沌和DNA運(yùn)算的圖像加密算法,該算法能夠抵抗典型的攻擊,如選擇明文攻擊等,具有較好的安全性。
本文結(jié)合超混沌系統(tǒng)、約瑟夫遍歷和填充曲線,提出一種具有高安全性、高敏感性的圖像加密方法。通過對約瑟夫遍歷方法進(jìn)行改進(jìn),讓約瑟夫遍歷的步長動(dòng)態(tài)更新,并將其他參數(shù)鏈接到明文圖像上,該技術(shù)用于隱藏?cái)?shù)據(jù)的統(tǒng)計(jì)特性,減少相鄰數(shù)據(jù)之間的相關(guān)性,可以使加密圖像的置亂效果更加隨機(jī)有效。此外,該方法在混淆和擴(kuò)散過程中加入自適應(yīng)密鑰,以抵御與普通圖像相關(guān)的攻擊,并以較少的計(jì)算提高安全性。文獻(xiàn)[20]也采用了自適應(yīng)密鑰,但是該密鑰來自明文圖像的總和與平均值,而本方法采用了明文圖像的哈希值作為自適應(yīng)密鑰,對明文變化更為敏感。
超混沌系統(tǒng)具有兩個(gè)及兩個(gè)以上正的Lyapunov指數(shù),動(dòng)力學(xué)行為比混沌系統(tǒng)更加復(fù)雜,難以預(yù)測,在保密通信及信息安全等領(lǐng)域具有更高的應(yīng)用價(jià)值。2009年,Qi等人[21]提出了如式(1)的4維超混沌系統(tǒng)
其中,系統(tǒng)的參數(shù)為a, b, c, d, e, f均為正數(shù),當(dāng)a=50, b=24, c=13, d=8, e=33, f=30時(shí),系統(tǒng)式具有兩個(gè)正的Lyapunov指數(shù),即該混沌系統(tǒng)處于超混沌狀態(tài)。
使用該超混沌系統(tǒng)作為偽隨機(jī)數(shù)發(fā)生器,給定初始值,采用4階龍格-庫塔法進(jìn)行迭代,可以得到4個(gè)超混沌序列{(lxi, lyi, lzi, lwi)| i=1, 2, ···}。該超混沌系統(tǒng)產(chǎn)生的序列符合美國國家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology, NIST)提供的隨機(jī)數(shù)測試標(biāo)準(zhǔn),說明該超混沌系統(tǒng)具有偽隨機(jī)性。
約瑟夫遍歷是一個(gè)經(jīng)典的數(shù)學(xué)應(yīng)用問題:已知n個(gè)人(以編號(hào)1, 2, ···, n分別表示)圍坐在一張圓桌周圍。從編號(hào)為1的人開始報(bào)數(shù),數(shù)到m的那個(gè)人出列;他的下一個(gè)人又從1開始報(bào)數(shù),數(shù)到m的那個(gè)人又出列;依此規(guī)律重復(fù),直到所有人全部出列。根據(jù)出列的順序,可以得到一個(gè)序列,即約瑟夫序列。將約瑟夫遍歷用函數(shù)表達(dá),即J= f(n,m),這里n為元素總數(shù),m為步長,J為約瑟夫序列。為增加約瑟夫的多樣性,在原有規(guī)則的基礎(chǔ)上加入起點(diǎn)r和步長增量k,讓約瑟夫遍歷的步長保持動(dòng)態(tài)變化,每刪除1個(gè)元素,使步長進(jìn)行更新,讓m=m+k,k為步長的增量。則約瑟夫函數(shù)進(jìn)一步被拓展為J=f(n, r, m, k)。例如函數(shù)J=f(8, 3, 2,1)生成的約瑟夫序列為3, 5, 8, 6, 7, 4, 1, 2。
由于空間填充曲線具有掃描速度快的特點(diǎn),在地理研究、多維索引等方面得到了廣泛的應(yīng)用。通過使用填充曲線進(jìn)行掃描可以對圖像進(jìn)行快速置亂,1條空間填充曲線可以連續(xù)訪問圖像中的所有像素1次,并對每一個(gè)像素進(jìn)行線性排序,將原圖像的像素位置打亂并重組得到一幅新的圖像。幾種常見的填充曲線如圖1所示。
該方案主要包括自適應(yīng)密鑰生成、比特級置亂、像素級置亂和像素?cái)U(kuò)散4部分。圖2給出了加密方案的總體框圖。自適應(yīng)密鑰是利用哈希函數(shù),產(chǎn)生與明文圖像高度相關(guān)的混沌系統(tǒng)的初始值。將這些初始值賦給混沌系統(tǒng),生成用于加密的隨機(jī)序列(密鑰序列)。結(jié)合填充曲線與約瑟夫遍歷,采用產(chǎn)生的混沌序列對圖像進(jìn)行混淆和擴(kuò)散。
圖2 加密方案的總體框圖
自適應(yīng)密鑰是提高加密圖像抵抗已知明文攻擊的有效方法。如文獻(xiàn)[22]所述,獨(dú)立密鑰流增加了選擇明文攻擊的可能性。而由明文圖像生成自適應(yīng)密鑰,能達(dá)到1次1密的效果。當(dāng)然,明文圖像要高度分散到密鑰流中。為此,本文采用明文圖像的哈希值來構(gòu)造混沌系統(tǒng)的初值,圖像任何微小的改變,哈希值都會(huì)發(fā)生巨大的變化,混沌系統(tǒng)的初始值也會(huì)隨之改變。當(dāng)然利用不同的系統(tǒng)參數(shù)和初始值決定混沌序列密碼復(fù)雜度的優(yōu)劣,文獻(xiàn)[23]表明,在混沌區(qū)間內(nèi)選擇合適的參數(shù),能使產(chǎn)生的混沌序列的自相關(guān)特性沖激響應(yīng)函數(shù),互相關(guān)特性接近白噪聲。因此,本文對自適應(yīng)密鑰進(jìn)行處理,控制其落入混沌區(qū)間內(nèi)
對于像素置亂,使用填充曲線置亂像素位置十分方便,但是部分填充曲線也存在一定的缺陷,如圖1(a)、圖1(b)和圖1(c)所示的填充曲線,若掃描的次數(shù)過少,則打破相鄰像素間相關(guān)性的能力較差。為此,本文提出一種新的填充曲線,通過V字型從外圍到內(nèi)部再到外圍進(jìn)行掃描,它可以訪問2維空間中的每一個(gè)點(diǎn)。對于連續(xù)3個(gè)以上的像素點(diǎn)從不保持相同的方向,避免局部的置亂。采用V型曲線連續(xù)掃描兩次,原相鄰像素再次相鄰的概率接近于0。圖3(a)為V型曲線的示意圖。
圖1 常見的填充曲線
如圖3(a)所示,在8×8的網(wǎng)格中,從左上角開始,按照V型曲線路徑,對圖3(a)的數(shù)據(jù)矩陣進(jìn)行掃描,得到圖3(b)所示的數(shù)據(jù)矩陣。對圖3(b)的數(shù)據(jù)矩陣再次掃描得到圖3(c)所示的數(shù)據(jù)矩陣。
圖3 V型填充曲線的置亂示意圖
像素級置亂破壞了相鄰像素之間的相關(guān)性,但不能改變像素值,因此,無法有效地抵抗統(tǒng)計(jì)學(xué)攻擊。而比特級置亂在置換過程中會(huì)影響像素值和像素中比特的位置,因此越來越多的學(xué)者引入了比特級置亂方案。當(dāng)然,如果所有像素的比特置亂都遵循相同的結(jié)構(gòu),那么就可能導(dǎo)致統(tǒng)計(jì)攻擊。為實(shí)現(xiàn)高效的置亂,本文提出一種相鄰像素間比特置亂的方法,該方法將約瑟夫遍歷與混沌序列相結(jié)合,針對相鄰像素的約瑟夫遍歷,均采用不同的起點(diǎn)和動(dòng)態(tài)步長,確保在遍歷過程中步長自動(dòng)更新。
綜合置亂效率和效果,這里設(shè)定每4個(gè)相鄰像素為一組,并轉(zhuǎn)換成二進(jìn)制形式,對其進(jìn)行約瑟夫遍歷。為進(jìn)一步增強(qiáng)置亂的效果,規(guī)定下一組的第1個(gè)像素為上一組(已進(jìn)行約瑟夫遍歷)的最后一個(gè)像素,充分利用了全局置亂后相鄰像素點(diǎn)間的相關(guān)性被完全打破的特性,解決單一像素點(diǎn)二進(jìn)制下置亂所用混沌序列不敏感問題,也間接實(shí)現(xiàn)了像素的擴(kuò)散。
圖4 采用約瑟夫置亂的實(shí)例
擴(kuò)散操作使明文的微小變化可以擴(kuò)散到整個(gè)密文,增強(qiáng)了算法對差分和統(tǒng)計(jì)攻擊的抵抗力。本文結(jié)合混沌序列,利用圖像的前一個(gè)像素值與混沌序列的元素值來共同改變當(dāng)前的像素值,將少量的明文圖像變化傳播到整個(gè)加密圖像。本方法的密鑰序列與明文圖像高度關(guān)聯(lián),進(jìn)一步提高了圖像的安全性。擴(kuò)散過程包括正向擴(kuò)散和反向擴(kuò)散。給定混沌初始值,迭代混沌系統(tǒng)產(chǎn)生長度為M×N的兩個(gè)序列LZ和LW,按照式(4)對序列元素進(jìn)行處理,并轉(zhuǎn)換成大小為M×N的矩陣形式,記為序列矩陣MZ和MW
其中,i=M, M–1, ···, 1, j=N, N–1, ···, 1。
密鑰的高度敏感性是任何好的加密系統(tǒng)的一個(gè)重要特征。在解密過程中,加密后的圖像即使密鑰稍有變化,也無法得到正確的解密圖像。為測試本文算法的密鑰靈敏度,以Cameraman圖像為例,使用改變的密鑰來解密密文圖像。解密結(jié)果如圖6所示。原始圖像可以用正確的密鑰精確地解密。初始參數(shù)x0的輕微改變,即使其他密鑰保持不變,也無法解密圖像。通過以上分析可以看出,本文所提方案對密鑰非常敏感。
圖6 解密密鑰敏感性測試結(jié)果
統(tǒng)計(jì)能力是指系統(tǒng)抵抗統(tǒng)計(jì)攻擊的能力。它有兩個(gè)指標(biāo),直方圖和相鄰像素之間的相關(guān)性。
(1) 直方圖:直方圖是數(shù)字圖像的重要統(tǒng)計(jì)特征,能直觀地反映圖像中灰度值的分布情況。理想的加密圖像應(yīng)該有一個(gè)均勻的直方圖。圖7(a)是圖5(a)中明文圖像的對應(yīng)直方圖,圖7(b)是圖5(b)中密文圖像的對應(yīng)直方圖。從中可以看出原始圖像的直方圖分布不均勻,而加密圖像的直方圖分布非常均勻。加密圖像破壞了原始圖像的統(tǒng)計(jì)特性。因此,該算法能有效抵抗統(tǒng)計(jì)攻擊。進(jìn)一步,通過卡方檢驗(yàn)證明其一致性,χ2分布的計(jì)算方法如式(7)所示
圖5 仿真結(jié)果
圖7 直方圖
為計(jì)算圖像相關(guān)性,從原始圖像和加密圖像中分別選取5000個(gè)相鄰像素對。計(jì)算它們在水平、垂直和對角線方向的相關(guān)系數(shù)。原始圖像和加密圖像的相關(guān)系數(shù)如表2所示。從表2可以看出,加密圖像的相鄰像素之間的相關(guān)性非常小。即3個(gè)方向上相鄰像素之間的相關(guān)性都小于0.01,原始圖像的相關(guān)系數(shù)接近于1。圖8也表明,原始圖像具有較強(qiáng)的相關(guān)性,而密文加密圖像的相關(guān)性呈現(xiàn)隨機(jī)分布。
圖8 相關(guān)性分析
表1 不同圖像的密文圖像的χ2分布統(tǒng)計(jì)
表2 明文圖像和密文圖像各方向的相關(guān)系數(shù)
信息熵是衡量圖像隨機(jī)性的重要指標(biāo)。它能反映像素值的分布。當(dāng)信息熵很大時(shí),像素值的分布比較均勻。信息熵定義為
式中,p(mi)表示灰度值mi的概率分布?;叶葓D像的信息熵越接近于8,圖像的隨機(jī)程度越好。明文圖像及密文圖像的信息熵如表3所示。該系統(tǒng)產(chǎn)生的密文圖像的信息熵最大值為7.9975,接近理想的熵值,這表明該密碼系統(tǒng)具有較高的隨機(jī)性。
表3 不同圖像的信息熵和局部信息熵
差分攻擊是將明文圖像和加密圖像之間的差異建立一種關(guān)系來預(yù)測原始圖像。像素?cái)?shù)變化比(Number of Pixels Change Rate, NPCR)和統(tǒng)一的平均變化強(qiáng)度(Unified Average Changing Intensity, UACI)是評估差分攻擊的兩個(gè)重要指標(biāo)。NPCR反映的是原始圖像改變后加密圖像中改變像素的個(gè)數(shù)。NPCR值越大反映其抵抗明文攻擊的能力越強(qiáng)。UACI反映的是兩個(gè)加密圖像中對應(yīng)于原始圖像和改變后的原始圖像的像素值的平均差值強(qiáng)度。UACI值越大反映其抵抗差分攻擊的能力越強(qiáng)。測試圖像的NPCR和UACI值如表4所示,均接近理論值。
表4 明文圖像發(fā)生微小改變時(shí),對應(yīng)密文圖像間的NPCR和UACI的值(%)
在信息傳輸過程中,當(dāng)攻擊者無法解密加密文本時(shí),通常采用干擾通信的方法來阻止接收方正確解密以達(dá)到攻擊的目的。其中,裁剪攻擊是最常用的方法。本文通過對加密圖像Cameraman進(jìn)行不同程度的裁剪攻擊,測試該方法的魯棒性。實(shí)驗(yàn)結(jié)果如圖9所示。結(jié)果表明,本方法能有效地抵御數(shù)據(jù)丟失的攻擊。
圖9 數(shù)據(jù)丟失攻擊分析
在圖像傳輸過程中,噪聲會(huì)對加密后的圖像質(zhì)量產(chǎn)生一定的影響。本文在密文圖像中加入不同的椒鹽噪聲,并用正確的密鑰進(jìn)行解密。給出了加入不同強(qiáng)度噪聲后的密文圖像,并對其進(jìn)行解密,結(jié)果如圖10所示。結(jié)果表明,解密后的圖像仍然可以被識(shí)別。因此,該算法能夠抵抗噪聲攻擊。
圖10 遭受噪聲攻擊的密文圖像和對應(yīng)的解密圖像
為方便所提出的方法與已有文獻(xiàn)進(jìn)行比較。取大小為256×256的Lena和Pepper圖像進(jìn)行對比分析,結(jié)果分別如表5和表6所示。從結(jié)果中可以看出,文獻(xiàn)[12]的信息熵值稍高于本文提出的方案,但文獻(xiàn)[12]的差分攻擊指標(biāo)略低,其余文獻(xiàn)方案的熵值都小于或接近本文方案。文獻(xiàn)[11,13,20]均采用了雙重置亂模式,文獻(xiàn)[11]直接采用混沌序列進(jìn)行雙重置亂,由于截?cái)嗪蜕崛胝`差的影響,混沌系統(tǒng)的軌跡有可能進(jìn)入一個(gè)周期內(nèi),降低了其置亂程度。文獻(xiàn)[20]的信息熵、NPCR值略低,這和密鑰來自明文圖像的總和或平均值有關(guān),與明文圖像關(guān)聯(lián)性不強(qiáng)。文獻(xiàn)[13]的3個(gè)評價(jià)指標(biāo)和本文方法接近。由此可以看出,該算法對密鑰和明文圖像具有較高的敏感性,并能抵抗已知普通和選擇普通攻擊、遮擋攻擊和噪聲攻擊。因此,本文方法比其他圖像加密方案具有更好的性能。
表5 對于大小為256×256的Lena,本方案與其他方法的對比結(jié)果
表6 對于大小為256×256的Peppers,本文方案與其他方法的對比結(jié)果
本文給出一種基于填充曲線和相鄰像素置亂的圖像加密方法。通過對約瑟夫遍歷方法進(jìn)行改進(jìn),并與混沌序列結(jié)合實(shí)現(xiàn)了比特級置亂,不同的比特組合采用了不同的置亂參數(shù),有效地增強(qiáng)了抗統(tǒng)計(jì)攻擊的能力。同時(shí),將密鑰與明文圖像相關(guān)聯(lián),以克服明文圖像相關(guān)的統(tǒng)計(jì)攻擊。利用自適應(yīng)密鑰函數(shù)改變每幅明文圖像的超混沌系統(tǒng)初始參數(shù),以抵抗已知/選擇的明文攻擊。實(shí)驗(yàn)證明了本文方法的可行性和有效性。