唐傳華,巫朝霞
(新疆財(cái)經(jīng)大學(xué) 統(tǒng)計(jì)與數(shù)據(jù)科學(xué)學(xué)院,烏魯木齊 830011)
數(shù)字圖像是生物統(tǒng)計(jì)學(xué)、醫(yī)學(xué)、軍事、在線個人相冊等領(lǐng)域最重要的信息載體之一。如一張自拍,可以描述人們的外貌,也可以反映其大致的年齡和健康狀況。因此,如何保證圖像信息具有安全的輸入輸出環(huán)境是一個很大的挑戰(zhàn)。在各種圖像安全技術(shù)中,最常用且有效的措施是圖像加密技術(shù)。
混沌系統(tǒng)用于密碼學(xué)是非常合理的,并且廣泛應(yīng)用在圖像加密領(lǐng)域。庹朝永等提出一種新的彩色圖像加密算法,該算法首先通過二維Logistic混沌映射產(chǎn)生偽隨機(jī)序列進(jìn)行像素置亂,然后聯(lián)合比特異或與隨機(jī)重組將各像素值轉(zhuǎn)換為相應(yīng)的二進(jìn)制,最后對每個24位像素值進(jìn)行RGB 3種顏色重新組合得到新的加密圖像,然而該算法計(jì)算強(qiáng)度與空間需求偏高;廖春成等利用明文像素值來計(jì)算混沌系統(tǒng)的參數(shù)和預(yù)迭代次數(shù),有效提高了明文敏感性。該算法通過Kent混沌系統(tǒng)迭代產(chǎn)生混沌序列實(shí)現(xiàn)全局置亂,然后進(jìn)行比特級置亂得到加密圖像。Yueping Li等提出了一種基于高維混沌的圖像加密算法,該算法通過5維多翼超混沌系統(tǒng)產(chǎn)生的密鑰流與原始圖像有關(guān),然后分別運(yùn)用像素級置亂和比特級置亂來混淆圖像像素位置,最后使用擴(kuò)散操作來改變像素值;伍朝陽等提出一種結(jié)合像素置亂與比特置亂的超混沌Chen系統(tǒng),對圖像進(jìn)行加密的算法;胡春杰等提出了一種新的二維離散型混沌映射,并利用改進(jìn)的Logistic映射,對圖像進(jìn)行置亂操作,然后進(jìn)行異或運(yùn)算和比特位的交叉換位得到最終密文圖像。
本文設(shè)計(jì)了一種基于Logistic-Sine混沌映射與比特重組的圖像加密方法,首先利用Logistic-Sine混沌映射對明文圖像進(jìn)行全局置亂,然后通過比特重組操作將經(jīng)過全局置亂的圖像轉(zhuǎn)化為中間密文圖像,最后經(jīng)過水平方向擴(kuò)散的比特異或得到最終的加密圖像。最后的仿真實(shí)驗(yàn)分析說明:該算法可以抵御各種類型的攻擊,有較高的安全性和穩(wěn)定性來保護(hù)圖像。
傳統(tǒng)的一維Logistic和Sine映射雖然被廣泛應(yīng)用在圖像加密中,但依然存在很大的局限性。如:其僅在相應(yīng)的參數(shù)范圍內(nèi)處于混沌狀態(tài),但依然存在一些參數(shù)并不處于混沌狀態(tài)。因此,本文設(shè)計(jì)了一種由Logistic和Sine映射延伸推導(dǎo)得出的Logistic-Sine混沌映射,其表達(dá)式如式(1):
其中,模函數(shù)()表示取模,返回余數(shù)。
經(jīng)過模運(yùn)算后,循環(huán)迭代可以得到一個取值在0~1之間的混沌序列。雖然,模運(yùn)算會加大運(yùn)算量和加密時間,但是通過增加模運(yùn)算,使得Logistic-Sine映射的參數(shù)的范圍不僅僅局限于(0,4]之間,并且擴(kuò)大了系統(tǒng)的混沌區(qū)域,同時加密系統(tǒng)的密鑰空間也會相應(yīng)擴(kuò)大,可以更好的抵抗窮舉攻擊。
圖1(a)~1(b)分別是Logistic-Sine映射的分岔圖和Lyapunov指數(shù)變化圖。從圖中可以看出,Logistic-Sine映射在整個參數(shù)范圍內(nèi)都處于混沌狀態(tài),且分布均勻。由此說明本文設(shè)計(jì)的Logistic-Sine映射,混沌性能比較優(yōu)越,用于圖像加密過程是可行的。
圖1 Logistic-Sine相關(guān)圖Fig.1 Logistic-Sine correlation diagram
現(xiàn)有的混沌系統(tǒng)圖像加密思路可以從兩方向入手:一是在像素的基礎(chǔ)上對圖像進(jìn)行加密,將像素作為最小的元素加以研究,而數(shù)字圖像就是所有像素的集合;二是在比特級的層次上對圖像進(jìn)行加密,將每個十進(jìn)制像素值轉(zhuǎn)換為二進(jìn)制值,同時劃分為若干個比特平面,并繼續(xù)在這些比特平面上進(jìn)行比特級操作。例如,256級灰度圖像中的每個像素值可以轉(zhuǎn)化為對應(yīng)的8位二進(jìn)制數(shù)來表示,這時可以將一幅256級的灰度圖像劃分為8個比特平面,第(1,2,…,8)個比特平面就是所有像素的第個比特值的集合,而且比特平面位級越高,其中包含的原始圖像的有用信息就會越多。
基于比特的圖像加密算法是近些年才被提出來的,其可以在比特級層次上同時改變像素位置及其像素值。本文就是在比特級的層次上對圖像進(jìn)行加密,將Logistic-Sine混沌映射和比特重組相結(jié)合,該算法在安全性、穩(wěn)定性等方面表現(xiàn)出了優(yōu)越的特性。
圖像加密算法分為置亂、比特重組和擴(kuò)散3個階段。第一階段的置亂過程是利用Logistic-Sine映射迭代,產(chǎn)生混沌偽隨機(jī)序列,進(jìn)行全局置亂。第二階段的比特重組過程,是將全局置亂后的十進(jìn)制矩陣經(jīng)過比特重組操作,得到中間密文圖像。第三階段的擴(kuò)散過程是將中間密文圖像經(jīng)過水平方向擴(kuò)散的比特異或操作,得到最終的密文圖像。 本文加密算法流程如圖2所示。
圖2 圖像加密算法流程圖Fig.2 Flowchart of image encryption algorithm
置亂過程的具體實(shí)現(xiàn)步驟如下:
(1)選取一幅大小為的明文圖像,利用式(2)和式(3)計(jì)算像素矩陣中所有像素值的總和sum和平均像素值,然后利用式(4)、(5)分別計(jì)算出Logistic-Sine混沌系統(tǒng)的控制參數(shù)和初始迭代的次數(shù)。
其中,是與明文密切相關(guān)的量,可以有效抵抗選擇對明文的攻擊。
(2)將輸入的初始密鑰(,)帶入到式(1)。
其中,是隨機(jī)輸入的控制參數(shù)。預(yù)迭代次后去掉前個迭代值,可以消除暫態(tài)效應(yīng)的影響。
(3)全局置亂將分別進(jìn)行行置亂和列置亂。
圖3 行置亂示意圖Fig.3 Schematic diagram of row scrambling
將經(jīng)過置亂階段得到的十進(jìn)制矩陣進(jìn)行比特重組操作,得到中間密文圖像矩陣。具體步驟如下:
(1)利用Logistic-Sine混沌系統(tǒng)繼續(xù)迭代次,生成一個長度的混沌序列{,,,…,q}。
(2)將十進(jìn)制矩陣依據(jù)行優(yōu)先原則轉(zhuǎn)化為一維混沌序列{,,,…,r},同時將其像素值r轉(zhuǎn)化為對應(yīng)的二進(jìn)制數(shù)。如,取出的像素值r=145,則對應(yīng)的二進(jìn)制數(shù)為10010 001。
(3)通過比較序列中相鄰像素的大小,對序列的像素值r進(jìn)行比特重組。操作過程如下:
圖4 比特重組示意圖Fig.4 Schematic diagram of bit reassembly
在本文的圖像加密算法中,使用水平方向的擴(kuò)散。將中間密文圖像作為輸入端,從圖像的第一個像素開始,依次逐行向前移動。在此過程中,依據(jù)行優(yōu)先的原則,保留第一行第一個像素不變,對第一、二個像素進(jìn)行比特異或得到新的第二個像素,將其與第三個像素進(jìn)行比特異或得到新的第三個像素,以此類推,直到最后一行的倒數(shù)第二個像素與最后一個像素進(jìn)行比特異或結(jié)束。經(jīng)過水平方向的擴(kuò)散操作,可以得到最終的密文圖像。 具體算法如下:
以上是圖像加密的算法過程。而解密算法其實(shí)就是加密算法的逆過程,在此不再贅述。
在本文的實(shí)驗(yàn)過程中,選取256×256的Lena灰度圖,在Win10操作系統(tǒng)下,以MATLAB R2017a為軟件工具模擬仿真實(shí)驗(yàn)過程。設(shè)定Logistic-Sine混沌系統(tǒng)的初始密鑰(,)(0.234,0.128)。對Lena圖進(jìn)行加密和解密后的圖像如圖5所示。
圖5 加解密效果Fig.5 Encryption and decryption effect
由圖中可見,該算法加密效果較好,既可以很好的隱藏原文信息,又可以很好地恢復(fù)原文圖像。一個好的加密算法應(yīng)該能夠抵抗各種攻擊,因此對該算法進(jìn)行了密鑰空間分析、統(tǒng)計(jì)分析和密鑰敏感性分析等,驗(yàn)證了該算法的安全性和穩(wěn)定性。
密鑰空間是指在加解密過程中需要用到的密鑰總數(shù),密鑰空間的大小影響著加密算法能否有效抵抗窮舉攻擊。本文算法采用Logistic-Sine混沌系統(tǒng)的2個參數(shù)(,)作為初始密鑰,計(jì)算機(jī)系統(tǒng)可以處理64位數(shù)據(jù),且數(shù)據(jù)設(shè)為雙精度浮點(diǎn)類型,則密鑰空間為2。一個理想的加密算法需要有足夠大的密鑰空間來抵御窮舉攻擊,其值不應(yīng)該小于2。顯然,本文加密算法具有足夠大的密鑰空間。
良好的圖像加密算法應(yīng)該對任何形式的統(tǒng)計(jì)攻擊都具有穩(wěn)定性,因此可通過直方圖、相鄰像素間相關(guān)性和信息熵來分析加密算法的抗統(tǒng)計(jì)攻擊能力。
3.2.1 直方圖
圖像直方圖通過繪制圖像的像素值來說明圖像中的像素分布。理想的加密算法應(yīng)該擁有均勻分布的密文直方圖,因?yàn)槠湫枰[藏明文的有用信息。本文加密算法生成的明文圖像及密文圖像的直方圖分布如圖6所示。密文圖像的每個像素值近乎相等,呈現(xiàn)均勻分布,因此沒有給攻擊者提供任何使用統(tǒng)計(jì)攻擊的有用信息,使其很難通過統(tǒng)計(jì)分析的方法來破解原始明文圖像。
圖6 明文與密文圖像直方圖Fig.6 Histogram of plaintext and ciphertext images
3.2.2 相鄰像素間相關(guān)性
良好的加密算法應(yīng)使密文圖像相鄰像素的相關(guān)系數(shù)足夠低,用來抵御統(tǒng)計(jì)攻擊。為了分析明文圖像和密文圖像中相鄰像素的相關(guān)性,分別選取水平、垂直和對角方向上的相鄰像素加以分析,相關(guān)性分布如圖7所示。明文圖像中相鄰像素的分布比較集中,說明明文圖像相鄰像素相關(guān)性較高;密文圖像中相鄰像素比較離散,說明密文圖像相鄰像素相關(guān)性較低。相鄰像素相關(guān)性計(jì)算公式如下:
其中,、是圖像中兩個相鄰像素的灰度值,為圖像中選擇的像素總數(shù)。
通過選取加密算法較好的3種算法與本文算法進(jìn)行對比(對比結(jié)果見表1)發(fā)現(xiàn):本文提出的算法在水平、垂直、對角3個方向的相關(guān)系數(shù)都接近于0,可以很好的消除相鄰像素相關(guān)性;信息熵值更接近理想值8;值均超過0996、值均超過0334,能夠有效抵抗差分攻擊等攻擊手段。因此,該加密算法可以很好的應(yīng)用到圖像加密過程中。
表1 本文算法與文獻(xiàn)[3,7,8]結(jié)果對比Tab.1 Comparison of the results of the algorithm in this paper and the literature[3,7,8]
從表1中可以看出,密文圖像相鄰像素的相關(guān)性較低,說明本文所提出的加密算法可以很好的抵抗統(tǒng)計(jì)攻擊。
3.2.3 信息熵分析
信息熵是一種無序的、不可預(yù)測的不確定性度量。為了計(jì)算信息源的信息熵(),則有:
式中:(s)為信號s的概率;是信號源的總數(shù)。
對于一個具有256個灰度級的加密圖像,理想的信息熵應(yīng)為()8。經(jīng)過計(jì)算得到的密文圖像的信息熵值見表1,可以看出密文圖像的熵非常接近理論值8,說明本文加密算法可以很好地抵御信息熵攻擊。
圖7 加密圖像相關(guān)性Fig.7 Encrypted image correlation
加密算法應(yīng)能滿足密鑰的敏感性,這樣才能在一定程度上保證加密系統(tǒng)可以有效抵抗差分攻擊。
3.3.1 明文敏感性分析
良好的加密系統(tǒng),應(yīng)該確保對明文圖像的任何微小改變都會導(dǎo)致加密圖像的顯著差異,即明文敏感性。 通過計(jì)算(像素?cái)?shù)變化率)和(歸一平均變化強(qiáng)度)來衡量明文敏感性。
其中,、分別為圖像的行和列;、分別表示密文圖像和明文圖像發(fā)生微小變化后的密文圖像;函數(shù)用來比較兩個數(shù)值是否相同。
當(dāng)(,)(,)時((,),(,))0,否則((,),(,))1。越接近理想值09961,說明密文對明文的敏感性越好,而越接近理想值03446,說明加密算法抵抗差分攻擊的能力越強(qiáng)。
3.3.2 密鑰敏感性分析
密鑰敏感性是指當(dāng)密鑰發(fā)生微小變化時,得到的密文圖像也會引起很大變化。
以圖5(b)的加密圖像為例,圖8給出了密鑰微小變化時的仿真實(shí)驗(yàn)結(jié)果。其中,圖8(a)和圖8(b)分別是密鑰?。?,)(023410,0128)和(,)(0234,012810)的密文圖像。 由此可見,即使密鑰發(fā)生微小變化,也會生成完全不同的加密圖像,證明該加密算法的密鑰,即使存在微小的差異也不能正確解密圖像。
圖8 密鑰敏感性分析Fig.8 Key Sensitivity Analysis
本文設(shè)計(jì)了一種Logistic和Sine映射的非線性組合Logistic-Sine混沌映射,通過Logistic-Sine映射的分岔圖、Lyapunov指數(shù)變化圖對其混沌性能進(jìn)行了分析。結(jié)果表明,該算法具有良好的動態(tài)特性,適合應(yīng)用于圖像加密中。此外,比特重組方法也提高了加密效率。將Logistic-Sine映射與比特重組相結(jié)合,設(shè)計(jì)的圖像加密方案,通過一系列安全性分析,表明該算法是安全可靠的圖像加密算法。
目前,本文僅對標(biāo)準(zhǔn)256×256的Lena灰度圖像進(jìn)行了仿真實(shí)驗(yàn)和相關(guān)安全性分析,后續(xù)工作考慮進(jìn)一步將加密方案推廣到對彩色圖像的研究上,同時考慮本文加解密算法能否進(jìn)一步優(yōu)化,以期獲得更好的加密性能。