秦秋霞,梁仲月,徐 毅
(大連民族大學 a.計算機科學與工程學院;b.理學院、預(yù)科教育學院,遼寧 大連 116650)
當今時代科學技術(shù)發(fā)展日益更新,信息數(shù)據(jù)的安全性引起了人們的廣泛關(guān)注[1-3]。其中,彩色圖像由于色彩豐富,形象生動的特點被人們廣泛使用。本文提出了一種基于混沌和線性反饋移位寄存器的彩色圖像加密算法,可以實現(xiàn)安全、高效的加密,保護彩色圖像的安全。
混沌系統(tǒng)通常指的是一種非線性的且具有復(fù)雜動力學行為的系統(tǒng)[4-5]。其中經(jīng)典的低維混沌系統(tǒng),因其簡單、易實現(xiàn)的特性,被反復(fù)使用在加密算法中。李等人[6]提出了一種基于Arnold變換和混合混沌的圖像加密算法,通過改進Arnold混沌映射,增加迭代規(guī)則的多樣性,使得置亂效果更好。班等人[7]為了解決加密算法計算復(fù)雜度高的問題,提出了一種基于一維混沌映射的高效圖像加密算法,加密效率得到了大幅的提高。何等人[8]提出了一種基于二維混沌映射的AES加密算法,將二維混沌映射應(yīng)用到AES加密算法中,提高了算法的安全性。朱等人[9]對于一維混沌系統(tǒng)的圖像加密算法進行了研究和分析,并且提出了一種基于Logistic混沌映射加密算法,低維混沌參與加密使得密鑰管理更加方便,加快了加密速度。張等人[10]提出了基于一維混沌映射和比特塊置亂的圖像加密算法,通過使用經(jīng)典的Logistic混沌映射對圖像進行第一次置亂,然后對分塊后的圖像進行二次置亂,雙重置亂保證了更好的置亂效果。從上述可知,在低維混沌系統(tǒng)中,Logistic混沌系統(tǒng)[11-13]是使用頻率最高的低維混沌系統(tǒng)。
除了使用混沌系統(tǒng)提高算法的隨機性,還可以使用其他原理,比如線性移位寄存器[14]。預(yù)先給定一狀態(tài)的輸出,然后將該輸出的線性函數(shù)再用來做輸入的移位寄存器就是線性反饋移位寄存器。對于單比特線性函數(shù)來說,異或運算是最為常見的[15]。
為了加強對彩色圖像的保護,增強算法安全性的同時,不增加算法的復(fù)雜性,本文提出了一種基于混沌和線性反饋移位寄存器的彩色圖像加密算法。原始圖像使用哈希函數(shù)生成密鑰流,作為混沌系統(tǒng)的初值。使用給定的密鑰多次迭代Logistic混沌系統(tǒng)生成與原始圖像大小相同的密鑰矩陣。已知密鑰作為線性移位寄存器的最初狀態(tài),進行多次線性移位也產(chǎn)生一個密鑰矩陣。將兩種方式生成的密鑰矩陣按位異或生成最終密鑰矩陣,確保算法的隨機性。最終密鑰矩陣和原始圖像進行異或操作,得到最終加密圖像,加密完成。
從以上可以看出,基于混沌理論的圖像加密算法具有廣闊的應(yīng)用發(fā)展前景。而將混沌理論和線性反饋移位寄存器相結(jié)合,生成了更加隨機的密鑰矩陣,不僅增加了算法的安全性而且也為圖像加密提供了另一種方式。
本章主要介紹本文所使用的混沌映射,線性反饋移位寄存器相關(guān)原理。
Logistic混沌映射[16]是一個研究時間離散的動力學系統(tǒng),同時它也是分析混沌、分形等復(fù)雜行為的一個非常經(jīng)典的一維混沌系統(tǒng)模型。Logistic混沌映射是由生態(tài)學家R.May用來描述生物種群進化過程的一個經(jīng)典模型,又名“蟲口模型”[17-18]。它的數(shù)學定義表達式如下:
xn+1=μxn(1-xn)。
(1)
式中:x是系統(tǒng)參數(shù),x∈(0,1);μ是控制參數(shù)。當μ∈[3.5699456,4]時,混沌系統(tǒng)產(chǎn)生混沌現(xiàn)象,系統(tǒng)迭代生成的值更接近于偽隨機分布的狀態(tài),Logistic混沌系統(tǒng)的分岔圖如圖1。
圖1 Logistic混沌分岔圖
線性反饋移位寄存器(LFSR)[19]是一種電路結(jié)構(gòu),由n級觸發(fā)器以及一些異或門組成。線性反饋移位寄存器也應(yīng)用于密碼學,用于產(chǎn)生加密中使用到的偽隨機序列[20]。本文使用線性反饋移位寄存器產(chǎn)生用于加密的密鑰矩陣,增強加密算法的隨機性。
線性反饋移位寄存器(LFSR)的初值被稱為偽隨機序列的種子,影響下一個狀態(tài)的比特位稱為抽頭。LFSR的觸發(fā)器編號一般從1開始,抽頭取值范圍是1到2n-1。LFSR的反饋多項式一般使用抽頭序列來描述,n個觸發(fā)器構(gòu)成的LFSR可以產(chǎn)生周期為2n-1的序列。線性反饋移位寄存器的具體原理如圖2。
圖2 線性反饋移位寄存器原理
從圖2中可以看出,將八位二進制中的第一位、第五位、第六位以及第七位異或輸出的結(jié)果作為原來八位二進制的最后一位,也就是從原始的第二位作為開始,異或得到的二進制位作為結(jié)束,形成新的八位二進制。繼續(xù)以這樣的方式線性反饋移位,進而形成偽隨機序列。
本文提出了一種基于混沌和線性反饋移位寄存器的圖像加密算法。本加密算法主要分為三個部分:密鑰的生成部分,密鑰矩陣的生成部分,原始圖像加密部分。具體的加密步驟如2.1~2.3節(jié)所示,加密流程圖如圖3。
圖3 加密流程圖
原始圖像P使用MD2哈希函數(shù)生成Logistic混沌的初值,具體操作如下:
第一步:原始圖像P使用哈希函數(shù)中的MD2函數(shù)生成128位摘要信息,表現(xiàn)為32位十六進制字符串D。
第二步:將摘要信息D的每位字符串轉(zhuǎn)化成對應(yīng)的十進制數(shù)值K。
第三步:將K繼續(xù)進行轉(zhuǎn)換,每個十進制數(shù)轉(zhuǎn)換成4位二進制,32個十進制數(shù)就轉(zhuǎn)換成128位二進制BK,最后將BK每8位1組轉(zhuǎn)換成1個十進制,總共轉(zhuǎn)換成16個十進制值DK。
第四步:取DK中偶數(shù)位對應(yīng)的值按位異或生成t1,奇數(shù)位對應(yīng)的值按位異或生成t2,為生成Logistic混沌初值做準備,具體如下:
t1=DK{2}⊕DK{4}⊕DK{6}⊕DK{8}⊕DK{10}⊕DK{12}⊕DK{14}⊕DK{16},
(2)
t2=DK{1}⊕DK{3}⊕DK{5}⊕DK{7}⊕DK{9}⊕DK{11}⊕DK{13}⊕DK{15}。
(3)
其中,⊕是異或操作。
第五步:因為Logistic混沌初值x0∈(0,1),所以要確保生成的初值在此范圍之內(nèi)。x0生成過程,具體如下:
ts=t1+t2,
(3)
(4)
第六步:所有密鑰都已經(jīng)生成,其中x0作為Logistic混沌初值,Logistic混沌控制參數(shù)以及線性反饋移位寄存器的初值狀態(tài)都是系統(tǒng)直接給定的。
密鑰矩陣的生成主要分為三個部分:Logistic混沌映射生成密鑰矩陣KM1,線性反饋移位寄存器原理生成密鑰矩陣KM2,KM1和KM2按位異或生成最終密鑰矩陣KM。
第一步:根據(jù)原始圖像的大小確定生成的密鑰矩陣的大小,其中矩陣長為M,寬為N,維度為O。
第二步:2.1節(jié)中生成的x0作為Logistic混沌初值,已知密鑰μ0作為Logistic的控制參數(shù),系統(tǒng)迭代M×N×O次,生成M×N×O大小的密鑰矩陣KM1。
第三步:使用已知的密鑰作為線性反饋移位寄存器的初始狀態(tài),進行M×N×O次線性反饋移位操作,也生成M×N×O大小的密鑰矩陣KM2。
第四步:將第二步中生成的KM1矩陣和第三步中生成的KM2矩陣按位異或生成大小為M×N×O的最終密鑰矩陣KM。具體過程如下:
KM=bitxor(KM1,KM2)。
(6)
其中,bitxor()是按位異或函數(shù)。
具體的加密步驟如下:
(1)原始圖像P使用MD2哈希算法生成Logistic的初值密鑰,增大了密鑰空間。
(2)Logistic混沌映射使用(1)中生成的密鑰、已知密鑰作為初值以及控制參數(shù),生成密鑰矩陣KM1。
(3)線性反饋移位寄存器將已知密鑰作為初始狀態(tài),生成密鑰矩陣KM2。
(4)KM1和KM2按位異或生成最終密鑰矩陣KM,提高了密鑰矩陣的隨機性。
(5)將原始圖像P和最終密鑰矩陣KM進行按位異或操作,生成最終加密矩陣C,完成加密。
本算法的解密算法和加密算法是對稱的。需要注意解密過程中使用的密鑰應(yīng)該和加密中使用的密鑰一致,以便生成的用于解密的密鑰矩陣與加密中使用的一致。另外,需要注意加密對應(yīng)的解密操作的順序,以便可以準確無誤的解密出原始圖形。
在win10系統(tǒng)下,使用MATLAB R2020a軟件對三組不同的彩色圖像進行仿真實驗。本算法中一部分密鑰與明文有關(guān),另一部分密鑰是由系統(tǒng)給定的,本次實驗中使用的系統(tǒng)給定的密鑰具體情況見表1。參與實驗的三組不同的彩色圖像包括:Lena圖像、Peppers圖像以及Mario圖像,分別如圖4a、5a、6a。本算法得到的三組加密圖像分別為圖4b、5b、6b,得到的解密圖像分別如圖4c、5c、6c。
表1 密鑰表
a) Lena原圖 b) Lena密圖 c) Lena解密圖圖4 Lena圖的加密、解密效果
a)Peppers原圖 b) Peppers密圖 c) Peppers解密圖圖5 Peppers圖的加密、解密效果
a)Mario原圖 b) Mario密圖 c) Mario解密圖圖6 Mario圖的加密、解密效果
從上述的圖像可以看出,本算法可以對內(nèi)容各不相同的三組圖像進行正常有效的加密、解密。以下章節(jié)以Lena圖為例,對算法的安全性、效率方面展開分析。
本節(jié)需要進行三組實驗進行對比,其中第一組實驗只使用Logistic混沌密鑰矩陣作為最終密鑰矩陣參與加密過程,第二組實驗只使用線性反饋移位寄存器生成密鑰矩陣作為最終密鑰矩陣參與加密過程,第三組實驗使用本算法中的最終密鑰矩陣參與加密過程。三組實驗的原始圖像和加密后得到的加密圖像具體如圖7~9。
a) Lena原始圖像 b) 第一組實驗密圖圖7 Logistic混沌密鑰矩陣加密效果
a) Lena原始圖像 b) 第二組實驗密圖圖8 線性反饋移位寄存器密鑰矩陣加密效果
a) Lena原始圖像 b) 第三組實驗密圖圖9 本算法密鑰矩陣加密效果
從圖7可以看出,只使用Logistic密鑰矩陣作為最終密鑰矩陣進行加密生成的加密圖攜帶一些圖像的有效信息。從圖8可以看出,只使用線性反饋移位寄存器作為最終密鑰矩陣進行加密生成的加密圖不是經(jīng)典的雪花噪聲圖,可以看出圖像的輪廓信息。圖9得到的加密圖是經(jīng)典的雪花噪聲圖,看不出任何圖像信息,可以證明本算法使用的最終密鑰矩陣隨機性極強。
只有足夠大的密鑰空間才可以抵抗密鑰暴力破解,從文獻[21]可以得知,只有當密鑰空間大于2100時才能較為有效的避免被暴力破解。
本算法使用的密鑰見表1。其中Logistic混沌系統(tǒng)的初值是由MD2算法和明文圖像共同產(chǎn)生的,控制參數(shù)是由系統(tǒng)給定的。這一部分的密鑰空間為2128+1015。線性反饋移位寄存器的初始狀態(tài)是由系統(tǒng)給定的,是8個二進制位的數(shù)據(jù),這一部分的密鑰為28。因此,本算法總的密鑰空間為2128+1015+28,大于最低標準的2100。假如每次暴力攻擊的時間為1微秒,那么想要破解本算法需要花費大量的時間。因此可以說明本算法密鑰空間足夠大,保障了算法的安全性。
信息熵用來評估信息源的隨機性。信息分布越是有序,信息熵值越低;信息分布越是混亂、隨機,信息熵值越高[22]。當信息熵值變高的時候,被非法分子竊取統(tǒng)計型信息的難度會增加,發(fā)生的幾率會減少。信息熵的公式定義如下:
(7)
式中:n表示圖像信息;H(n)表示計算得出的信息熵;ni表示圖像n的第i個灰度值;P(ni)表示ni出現(xiàn)的概率;L表示圖像n的灰度級。理想情況下,當L=8時,混亂圖像的信息熵值為8[23]。
使用表2展現(xiàn)本算法的原始圖像以及加密圖像的信息熵,并且使用本算法的信息熵與其他文獻的信息熵值進行了對比,具體數(shù)據(jù)見表2。
表2 信息熵對比表
本表展示Lena圖像的原圖的信息熵以及密圖的信息熵值。原圖的信息熵與理想值有一定的差距,經(jīng)過加密后的密圖的信息熵為7.999 2,該值十分接近于8。其他參考文獻的密圖的信息熵值也接近于理想值,加密效果良好,但相比本算法的信息熵值略低。因此可以說明本算法可以有效地將圖像的信息熵值變高,降低了算法被統(tǒng)計性攻擊的風險。
圖像像素值的分布概率可以用直方圖來表示,它描述了一幅圖像灰度值的統(tǒng)計相關(guān)性[24]。因此判定一個算法的性能好壞是可以從直方圖看出的。通常來說,如果圖像灰度值分布越均勻,抵抗統(tǒng)計攻擊的能力就越強。原始圖像Lena的直方圖如圖10a,加密圖像的直方圖如圖10b,解密圖像的直方圖如圖10c。
a) 原圖直方圖 b) 密圖直方圖 c) 解密圖直方圖圖10 原圖、密圖、解密圖的直方圖
從圖10可以看出,明文圖像的像素點值一般來說是集中分布的,呈現(xiàn)一種高低起伏的狀態(tài)。而加密圖像的直方圖則是均勻分布的,這說明通過加密圖像直方圖是不可能得到任何有用的統(tǒng)計信息的,更進一步說明攻擊者是無法通過加密圖的直方圖獲取到明文圖像信息的。
相關(guān)性系數(shù)能夠反映出相鄰像素的相關(guān)程度[25]。通常來說,明文圖像中相關(guān)性較強的是對角線、垂直、水平方向上的相鄰像素點,但是這種相關(guān)性在加密圖像上是沒有顯著體現(xiàn)的。相關(guān)性系數(shù)越小,相鄰像素的相關(guān)性也越低,就越容易抵抗統(tǒng)計分析攻擊。相關(guān)性系數(shù)數(shù)學表達式如下:
(8)
9)
(10)
式中:E(x)是期望值;D(x)是方差;(x,y)都是圖像的相鄰像素對;rxy是相鄰像素對的相關(guān)性系數(shù)。在理想情況下,希望相鄰像素對不存在相關(guān)性,也就是理想相關(guān)性系數(shù)值為0。表3~5分別展示了隨機取2 000對相鄰像素對進行實驗得出的R、G、B通道的水平、垂直、對角線方向的相關(guān)性系數(shù)情況。各個方向的相關(guān)性點圖如圖11~13。
表3 原圖、密圖R通道相關(guān)性系數(shù)表
表4 原圖、密圖G通道相關(guān)性系數(shù)表
表5 原圖、密圖B通道相關(guān)性系數(shù)表
Lena圖加密前后R、G、B通道3個方向的相鄰像素相關(guān)性結(jié)果見表3~5。從表中可以得出,原始圖像相鄰像素相關(guān)性系數(shù)接近于1,加密圖像相關(guān)性系數(shù)接近于0,說明本算法可以非常好的降低相鄰像素相關(guān)性,在抵抗統(tǒng)計攻擊方面效果良好。同時在表3~5還給出了與最新文獻加密圖像相關(guān)性系數(shù)的對比結(jié)果,可以看出本算法在降低相關(guān)性方面表現(xiàn)更為突出。另外,從圖可以看出原始圖像3個通道不同方向的相關(guān)性點圖中像素分布呈一定的正相關(guān),而密文圖像3個通道不同方向的相關(guān)性點圖像素呈現(xiàn)離散狀態(tài),更趨于均勻分布。
a) 原圖水平 b) 密圖水平圖11 水平方向相關(guān)性點圖
時間性能是衡量圖像加密算法時效性的重要指標[26]。在實際應(yīng)用中,圖像加密算法既要保證具有良好的加密、解密效果,也要保證運行時間在可以接受的范圍之內(nèi)。本實驗在個人計算機中使用MATLAB 2020a軟件對三組內(nèi)容不同的彩色圖像進行了時間測試,測試結(jié)果見表6。
a) 原圖垂直 b) 密圖垂直圖12 垂直方向相關(guān)性點圖
a) 原圖對角線 b) 密圖對角線圖13 對角線方向相關(guān)性點圖
表6 時間性能對比表
從表6可知,三組實驗中加密、解密時間較長的為0.967 5 s,也就是三組不同的彩色圖像加密和解密時間都控制在1 s之內(nèi)。因此可以表明本算法在加密、解密的運行時間方面有一定的優(yōu)勢。
本文提出了一種基于混沌和線性反饋移位寄存器的彩色圖像加密算法。采用Logistic經(jīng)典混沌系統(tǒng)與線性反饋移位寄存器相結(jié)合的方式生成參與圖像加密的密鑰矩陣,不僅提高了加密算法的安全性,還保證了算法的隨機性。為了提高明文與密鑰之間的關(guān)聯(lián),增強抵抗已知明文攻擊的能力,本算法的原始圖像使用MD2哈希算法生成密鑰。原始圖像和密鑰圖像采用按位異或的方式進行加密,加密結(jié)束,得到加密圖像。從仿真實驗、方法對比以及安全性分析結(jié)果可知,本算法的密鑰空間足夠大,加密、解密效果良好。另外算法在運行時間方面有著一定的優(yōu)勢,適用于彩色圖像加密。