秦秋霞,梁仲月,徐 毅
(大連民族大學 a.計算機科學與工程學院;b.理學院、預科教育學院,遼寧 大連 116650)
當今時代科學技術發展日益更新,信息數據的安全性引起了人們的廣泛關注[1-3]。其中,彩色圖像由于色彩豐富,形象生動的特點被人們廣泛使用。本文提出了一種基于混沌和線性反饋移位寄存器的彩色圖像加密算法,可以實現安全、高效的加密,保護彩色圖像的安全。
混沌系統通常指的是一種非線性的且具有復雜動力學行為的系統[4-5]。其中經典的低維混沌系統,因其簡單、易實現的特性,被反復使用在加密算法中。李等人[6]提出了一種基于Arnold變換和混合混沌的圖像加密算法,通過改進Arnold混沌映射,增加迭代規則的多樣性,使得置亂效果更好。班等人[7]為了解決加密算法計算復雜度高的問題,提出了一種基于一維混沌映射的高效圖像加密算法,加密效率得到了大幅的提高。何等人[8]提出了一種基于二維混沌映射的AES加密算法,將二維混沌映射應用到AES加密算法中,提高了算法的安全性。朱等人[9]對于一維混沌系統的圖像加密算法進行了研究和分析,并且提出了一種基于Logistic混沌映射加密算法,低維混沌參與加密使得密鑰管理更加方便,加快了加密速度。張等人[10]提出了基于一維混沌映射和比特塊置亂的圖像加密算法,通過使用經典的Logistic混沌映射對圖像進行第一次置亂,然后對分塊后的圖像進行二次置亂,雙重置亂保證了更好的置亂效果。從上述可知,在低維混沌系統中,Logistic混沌系統[11-13]是使用頻率最高的低維混沌系統。
除了使用混沌系統提高算法的隨機性,還可以使用其他原理,比如線性移位寄存器[14]。預先給定一狀態的輸出,然后將該輸出的線性函數再用來做輸入的移位寄存器就是線性反饋移位寄存器。對于單比特線性函數來說,異或運算是最為常見的[15]。
為了加強對彩色圖像的保護,增強算法安全性的同時,不增加算法的復雜性,本文提出了一種基于混沌和線性反饋移位寄存器的彩色圖像加密算法。原始圖像使用哈希函數生成密鑰流,作為混沌系統的初值。使用給定的密鑰多次迭代Logistic混沌系統生成與原始圖像大小相同的密鑰矩陣。已知密鑰作為線性移位寄存器的最初狀態,進行多次線性移位也產生一個密鑰矩陣。將兩種方式生成的密鑰矩陣按位異或生成最終密鑰矩陣,確保算法的隨機性。最終密鑰矩陣和原始圖像進行異或操作,得到最終加密圖像,加密完成。
從以上可以看出,基于混沌理論的圖像加密算法具有廣闊的應用發展前景。而將混沌理論和線性反饋移位寄存器相結合,生成了更加隨機的密鑰矩陣,不僅增加了算法的安全性而且也為圖像加密提供了另一種方式。
本章主要介紹本文所使用的混沌映射,線性反饋移位寄存器相關原理。
Logistic混沌映射[16]是一個研究時間離散的動力學系統,同時它也是分析混沌、分形等復雜行為的一個非常經典的一維混沌系統模型。Logistic混沌映射是由生態學家R.May用來描述生物種群進化過程的一個經典模型,又名“蟲口模型”[17-18]。它的數學定義表達式如下:
xn+1=μxn(1-xn)。
(1)
式中:x是系統參數,x∈(0,1);μ是控制參數。當μ∈[3.5699456,4]時,混沌系統產生混沌現象,系統迭代生成的值更接近于偽隨機分布的狀態,Logistic混沌系統的分岔圖如圖1。

圖1 Logistic混沌分岔圖
線性反饋移位寄存器(LFSR)[19]是一種電路結構,由n級觸發器以及一些異或門組成。線性反饋移位寄存器也應用于密碼學,用于產生加密中使用到的偽隨機序列[20]。本文使用線性反饋移位寄存器產生用于加密的密鑰矩陣,增強加密算法的隨機性。
線性反饋移位寄存器(LFSR)的初值被稱為偽隨機序列的種子,影響下一個狀態的比特位稱為抽頭。LFSR的觸發器編號一般從1開始,抽頭取值范圍是1到2n-1。LFSR的反饋多項式一般使用抽頭序列來描述,n個觸發器構成的LFSR可以產生周期為2n-1的序列。線性反饋移位寄存器的具體原理如圖2。

圖2 線性反饋移位寄存器原理
從圖2中可以看出,將八位二進制中的第一位、第五位、第六位以及第七位異或輸出的結果作為原來八位二進制的最后一位,也就是從原始的第二位作為開始,異或得到的二進制位作為結束,形成新的八位二進制。繼續以這樣的方式線性反饋移位,進而形成偽隨機序列。
本文提出了一種基于混沌和線性反饋移位寄存器的圖像加密算法。本加密算法主要分為三個部分:密鑰的生成部分,密鑰矩陣的生成部分,原始圖像加密部分。具體的加密步驟如2.1~2.3節所示,加密流程圖如圖3。

圖3 加密流程圖
原始圖像P使用MD2哈希函數生成Logistic混沌的初值,具體操作如下:
第一步:原始圖像P使用哈希函數中的MD2函數生成128位摘要信息,表現為32位十六進制字符串D。
第二步:將摘要信息D的每位字符串轉化成對應的十進制數值K。
第三步:將K繼續進行轉換,每個十進制數轉換成4位二進制,32個十進制數就轉換成128位二進制BK,最后將BK每8位1組轉換成1個十進制,總共轉換成16個十進制值DK。
第四步:取DK中偶數位對應的值按位異或生成t1,奇數位對應的值按位異或生成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),所以要確保生成的初值在此范圍之內。x0生成過程,具體如下:
ts=t1+t2,
(3)
(4)
第六步:所有密鑰都已經生成,其中x0作為Logistic混沌初值,Logistic混沌控制參數以及線性反饋移位寄存器的初值狀態都是系統直接給定的。
密鑰矩陣的生成主要分為三個部分:Logistic混沌映射生成密鑰矩陣KM1,線性反饋移位寄存器原理生成密鑰矩陣KM2,KM1和KM2按位異或生成最終密鑰矩陣KM。
第一步:根據原始圖像的大小確定生成的密鑰矩陣的大小,其中矩陣長為M,寬為N,維度為O。
第二步:2.1節中生成的x0作為Logistic混沌初值,已知密鑰μ0作為Logistic的控制參數,系統迭代M×N×O次,生成M×N×O大小的密鑰矩陣KM1。
第三步:使用已知的密鑰作為線性反饋移位寄存器的初始狀態,進行M×N×O次線性反饋移位操作,也生成M×N×O大小的密鑰矩陣KM2。
第四步:將第二步中生成的KM1矩陣和第三步中生成的KM2矩陣按位異或生成大小為M×N×O的最終密鑰矩陣KM。具體過程如下:
KM=bitxor(KM1,KM2)。
(6)
其中,bitxor()是按位異或函數。
具體的加密步驟如下:
(1)原始圖像P使用MD2哈希算法生成Logistic的初值密鑰,增大了密鑰空間。
(2)Logistic混沌映射使用(1)中生成的密鑰、已知密鑰作為初值以及控制參數,生成密鑰矩陣KM1。
(3)線性反饋移位寄存器將已知密鑰作為初始狀態,生成密鑰矩陣KM2。
(4)KM1和KM2按位異或生成最終密鑰矩陣KM,提高了密鑰矩陣的隨機性。
(5)將原始圖像P和最終密鑰矩陣KM進行按位異或操作,生成最終加密矩陣C,完成加密。
本算法的解密算法和加密算法是對稱的。需要注意解密過程中使用的密鑰應該和加密中使用的密鑰一致,以便生成的用于解密的密鑰矩陣與加密中使用的一致。另外,需要注意加密對應的解密操作的順序,以便可以準確無誤的解密出原始圖形。
在win10系統下,使用MATLAB R2020a軟件對三組不同的彩色圖像進行仿真實驗。本算法中一部分密鑰與明文有關,另一部分密鑰是由系統給定的,本次實驗中使用的系統給定的密鑰具體情況見表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圖的加密、解密效果
從上述的圖像可以看出,本算法可以對內容各不相同的三組圖像進行正常有效的加密、解密。以下章節以Lena圖為例,對算法的安全性、效率方面展開分析。
本節需要進行三組實驗進行對比,其中第一組實驗只使用Logistic混沌密鑰矩陣作為最終密鑰矩陣參與加密過程,第二組實驗只使用線性反饋移位寄存器生成密鑰矩陣作為最終密鑰矩陣參與加密過程,第三組實驗使用本算法中的最終密鑰矩陣參與加密過程。三組實驗的原始圖像和加密后得到的加密圖像具體如圖7~9。

a) Lena原始圖像 b) 第一組實驗密圖圖7 Logistic混沌密鑰矩陣加密效果

a) Lena原始圖像 b) 第二組實驗密圖圖8 線性反饋移位寄存器密鑰矩陣加密效果

a) Lena原始圖像 b) 第三組實驗密圖圖9 本算法密鑰矩陣加密效果
從圖7可以看出,只使用Logistic密鑰矩陣作為最終密鑰矩陣進行加密生成的加密圖攜帶一些圖像的有效信息。從圖8可以看出,只使用線性反饋移位寄存器作為最終密鑰矩陣進行加密生成的加密圖不是經典的雪花噪聲圖,可以看出圖像的輪廓信息。圖9得到的加密圖是經典的雪花噪聲圖,看不出任何圖像信息,可以證明本算法使用的最終密鑰矩陣隨機性極強。
只有足夠大的密鑰空間才可以抵抗密鑰暴力破解,從文獻[21]可以得知,只有當密鑰空間大于2100時才能較為有效的避免被暴力破解。
本算法使用的密鑰見表1。其中Logistic混沌系統的初值是由MD2算法和明文圖像共同產生的,控制參數是由系統給定的。這一部分的密鑰空間為2128+1015。線性反饋移位寄存器的初始狀態是由系統給定的,是8個二進制位的數據,這一部分的密鑰為28。因此,本算法總的密鑰空間為2128+1015+28,大于最低標準的2100。假如每次暴力攻擊的時間為1微秒,那么想要破解本算法需要花費大量的時間。因此可以說明本算法密鑰空間足夠大,保障了算法的安全性。
信息熵用來評估信息源的隨機性。信息分布越是有序,信息熵值越低;信息分布越是混亂、隨機,信息熵值越高[22]。當信息熵值變高的時候,被非法分子竊取統計型信息的難度會增加,發生的幾率會減少。信息熵的公式定義如下:
(7)
式中:n表示圖像信息;H(n)表示計算得出的信息熵;ni表示圖像n的第i個灰度值;P(ni)表示ni出現的概率;L表示圖像n的灰度級。理想情況下,當L=8時,混亂圖像的信息熵值為8[23]。
使用表2展現本算法的原始圖像以及加密圖像的信息熵,并且使用本算法的信息熵與其他文獻的信息熵值進行了對比,具體數據見表2。

表2 信息熵對比表
本表展示Lena圖像的原圖的信息熵以及密圖的信息熵值。原圖的信息熵與理想值有一定的差距,經過加密后的密圖的信息熵為7.999 2,該值十分接近于8。其他參考文獻的密圖的信息熵值也接近于理想值,加密效果良好,但相比本算法的信息熵值略低。因此可以說明本算法可以有效地將圖像的信息熵值變高,降低了算法被統計性攻擊的風險。
圖像像素值的分布概率可以用直方圖來表示,它描述了一幅圖像灰度值的統計相關性[24]。因此判定一個算法的性能好壞是可以從直方圖看出的。通常來說,如果圖像灰度值分布越均勻,抵抗統計攻擊的能力就越強。原始圖像Lena的直方圖如圖10a,加密圖像的直方圖如圖10b,解密圖像的直方圖如圖10c。

a) 原圖直方圖 b) 密圖直方圖 c) 解密圖直方圖圖10 原圖、密圖、解密圖的直方圖
從圖10可以看出,明文圖像的像素點值一般來說是集中分布的,呈現一種高低起伏的狀態。而加密圖像的直方圖則是均勻分布的,這說明通過加密圖像直方圖是不可能得到任何有用的統計信息的,更進一步說明攻擊者是無法通過加密圖的直方圖獲取到明文圖像信息的。
相關性系數能夠反映出相鄰像素的相關程度[25]。通常來說,明文圖像中相關性較強的是對角線、垂直、水平方向上的相鄰像素點,但是這種相關性在加密圖像上是沒有顯著體現的。相關性系數越小,相鄰像素的相關性也越低,就越容易抵抗統計分析攻擊。相關性系數數學表達式如下:
(8)
9)

(10)
式中:E(x)是期望值;D(x)是方差;(x,y)都是圖像的相鄰像素對;rxy是相鄰像素對的相關性系數。在理想情況下,希望相鄰像素對不存在相關性,也就是理想相關性系數值為0。表3~5分別展示了隨機取2 000對相鄰像素對進行實驗得出的R、G、B通道的水平、垂直、對角線方向的相關性系數情況。各個方向的相關性點圖如圖11~13。

表3 原圖、密圖R通道相關性系數表

表4 原圖、密圖G通道相關性系數表

表5 原圖、密圖B通道相關性系數表
Lena圖加密前后R、G、B通道3個方向的相鄰像素相關性結果見表3~5。從表中可以得出,原始圖像相鄰像素相關性系數接近于1,加密圖像相關性系數接近于0,說明本算法可以非常好的降低相鄰像素相關性,在抵抗統計攻擊方面效果良好。同時在表3~5還給出了與最新文獻加密圖像相關性系數的對比結果,可以看出本算法在降低相關性方面表現更為突出。另外,從圖可以看出原始圖像3個通道不同方向的相關性點圖中像素分布呈一定的正相關,而密文圖像3個通道不同方向的相關性點圖像素呈現離散狀態,更趨于均勻分布。

a) 原圖水平 b) 密圖水平圖11 水平方向相關性點圖
時間性能是衡量圖像加密算法時效性的重要指標[26]。在實際應用中,圖像加密算法既要保證具有良好的加密、解密效果,也要保證運行時間在可以接受的范圍之內。本實驗在個人計算機中使用MATLAB 2020a軟件對三組內容不同的彩色圖像進行了時間測試,測試結果見表6。

a) 原圖垂直 b) 密圖垂直圖12 垂直方向相關性點圖

a) 原圖對角線 b) 密圖對角線圖13 對角線方向相關性點圖

表6 時間性能對比表
從表6可知,三組實驗中加密、解密時間較長的為0.967 5 s,也就是三組不同的彩色圖像加密和解密時間都控制在1 s之內。因此可以表明本算法在加密、解密的運行時間方面有一定的優勢。
本文提出了一種基于混沌和線性反饋移位寄存器的彩色圖像加密算法。采用Logistic經典混沌系統與線性反饋移位寄存器相結合的方式生成參與圖像加密的密鑰矩陣,不僅提高了加密算法的安全性,還保證了算法的隨機性。為了提高明文與密鑰之間的關聯,增強抵抗已知明文攻擊的能力,本算法的原始圖像使用MD2哈希算法生成密鑰。原始圖像和密鑰圖像采用按位異或的方式進行加密,加密結束,得到加密圖像。從仿真實驗、方法對比以及安全性分析結果可知,本算法的密鑰空間足夠大,加密、解密效果良好。另外算法在運行時間方面有著一定的優勢,適用于彩色圖像加密。