唐 辰, 涂喜梅, 陸曉剛, 張 琦, 張小貝,*
(1. 上海大學通信與信息工程學院, 上海 200444; 2. 上海飛機設計研究院, 上海 201210)
隨著互聯網和計算機的發展,圖像作為一種直觀的信息展現方式,包含了許多隱私內容。出于對安全性的考慮,圖像加密技術備受關注[1]。高級加密標準(advanced encryption standard,AES)因具備加解密速度快等優點,被廣泛使用[2]。但由于圖像具備數據量大、冗余性高等特征,傳統AES加密算法已無法滿足圖像的加密需求[3]。由于混沌系統對初值敏感、不可預測[4],與密碼學具有緊密的聯系,故結合混沌系統的圖像加密算法存在巨大的發展前景[5]。
2000年,Yen等[6]提出了一種基于Logistic[7]混沌的圖像加密算法。Logistic作為一維混沌圖像加密算法,雖然迭代速度快、實現簡單[8],但由于結構簡單、控制參數少,導致密鑰空間較小,易被破解。2002年,LYU等[9]提出了一種Lorenz-Chen-Lu(LCL)混沌系統,通過參數控制,能夠在Lorenz[10]、Chen[11]、Lu[12]等提出的系統之間實現過渡,極大程度地提高了系統的復雜度。2019年,田嘉琪等[13]提出了一種改進的Lorenz混沌系統,并將其應用于圖像加密的置亂擴散過程。為提高加密復雜度,2021年,張雷等[14]提出了一種結合S盒和混沌的三階擴散圖像加密算法,但混沌系統依舊采用傳統的Logistic和Chen系統。2021年,Wang等[15]提出了一種具有兩個參數的新混沌系統,并通過對圖像的行、列、對角線不同方向進行置亂和擴散,實現了加密。2022年,Kumar等[16]提出了一種基于優化的Thorp混沌和Zig-zag掃描的混沌圖像加密算法,能夠有效克服差分攻擊,但Thorp為一維結構,密鑰安全性有待進一步提升。2022年,Teng等[17]提出了一種基于Logistic和Sine混沌的二維交叉模式超混沌系統,并通過擴散和排列組合的方式完成了加密,但僅依靠置亂等簡單的加密方法,系統的抗攻擊能力較弱。
本文提出了一種基于四維LCL混沌系統的改進AES圖像加密算法,以提高混沌系統的復雜度和AES算法對圖像的加密效果。密鑰由混沌系統生成,通過在LCL混沌系統中引入非線性項和反饋控制器,構成了新的四維混沌映射關系。新的四維LCL混沌系統既繼承了LCL混沌系統的特點,能在Lorenz、Chen、Lu系統間實現過渡,又增加了控制參數,提升了系統復雜度。針對傳統AES加密算法在圖像加密方面效率和安全性不高的缺點,使用混沌Cubic-S盒、動態交叉變換的方法替代了原始的S盒變換和行位移變換,并在密鑰生成過程中引入混沌序列,修改了密鑰生成函數的結構,使得每一輪密鑰均與上兩輪密鑰有關,加強了密鑰的安全性和加密效果。

(1)
Sine混沌是一種基于正弦函數的混沌映射[18],通過引入非線性擾動和延遲反饋控制器的方式可以提高混沌結構復雜度[19-20]。故本文基于Sine和三維LCL混沌系統,提出了如式(2)所示的四維LCL混沌系統,通過在計算過程中引入siny和y2兩個非線性項,并新增一個反饋控制器,使各狀態變量參與到相互的計算中,從而形成相互影響。為保證新的四維LCL混沌系統能夠繼承原始LCL系統可在多個混沌系統間過渡的特點,維持了x、y、z的基本運算結構。同時,為擴大密鑰空間,新增了控制參數b、c、d、e。當c等于0,e分別等于、大于和小于0時,x、y、z分別組成了Lu系統[12]、Chen系統[11]和Lorenz系統[10]。
(2)
式中:x、y、z、w為系統的狀態變量;a、b、c、d、e為控制參數。參數和狀態變量的初值和取值范圍分別為a∈[18,27],b∈[8,20],c∈[0,1.8],d∈[0,2.8],e∈(1,5),x0∈[-20,20],y0∈[-5,5],z0∈[2,12],w0∈[-10,10]。利用4階龍格庫塔算法,以0.001為步長,當a=26,b=18,c=1.1,d=0.3,e=3,x0=8,y0=2,z0=8,w0=5時,得到混沌序列,圖1給出了系統相位圖。從圖1可以觀察到系統在各個相位空間上都展現出了由內向外不斷拉伸同時又收縮于吸引子的趨勢,存在多環多翼的復雜結構,但整體上又呈現出穩定的狀態。


圖1 新的四維LCL混沌系統相圖Fig.1 New phase diagram of four-dimensional LCL chaotic system
(1) 耗散性分析

(3)

(4)
(2) 平衡點分析

表1 平衡點對應特征值
由平衡點和穩定性關系[21]可知,S0是不穩定鞍點,其余4個為不穩定的鞍焦點,是形成多環多翼運動狀態的前提條件。
(5)
(1) 李雅普諾夫(Lyapunov exponent, LE)指數和維數
LE能夠定量地描述運動軌跡的吸引和排斥程度[22]。圖2給出了a=26,c=1.1,d=0.3,e=3,b在[-5,25]內變化時的LE指數圖。當b在[6.7,22.1]和[23.7,25]內,至少有一個LE大于0,表明處于混沌狀態;尤其當b在[11.5,20.3]內時,存在兩個大于0的LE指數,表明系統處于超混沌狀態;在其余范圍內,系統4個LE指數均小于0,表明系統處于準周期的運動狀態。故當b∈[8,20]時,至少存在一個為正、一個接近于0、兩個小于0的LE指數,表明系統保持著高度混沌狀態。

圖2 b變化時的LE變化圖Fig.2 Change of LE when b is changing
當參數a=26,b=18,c=1.1,d=0.3,e=3時,LE1=3.06,LE2=0.11,LE3=-0.32,LE4=-12.60,則LE維數可由式(6)得到。其中,DL為LE維數;j+1為LE指數的數量。由于DL為分數,表明存在奇異吸引子,系統處于混沌狀態。
(6)
(2) 分岔圖
圖3給出了a=26,c=1.1,d=0.3,e=3,b在[-5,25]范圍內變化時x的分岔圖,由圖3可以觀察到系統從準周期運動逐漸出現分岔然后進入混沌的狀態,并在[-20,20]范圍內出現分布均勻的無規律隨機運動。與LE指數圖對比,系統運動狀態隨b的變化情況基本一致,驗證了系統具有良好的遍歷性。

圖3 b變化時x的分岔圖Fig.3 Bifurcation of x as b is changing
(3) 龐加萊截面圖
龐加萊截面將高維混沌系統映射至二維平面,能夠更清晰地反映系統的分岔和折疊特性,圖4給出了當a=26,b=18,c=1.1,d=0.3,e=3時,x=0,y=0,z=0情況下y-z,x-w,x-y平面的龐加萊截面。當龐加萊截面只有一個不動點或少數離散點時,系統處于周期運動狀態;當存在一條封閉的曲線時,則系統運動是擬周期的;而當存在連續的曲線或成片密集點時,系統則處于混沌狀態[23]。圖4(a)、圖4(c)由多條連續曲線構成,圖4(b)則由成片的密集點構成,驗證了本文提出的新的四維LCL系統是混沌的。

圖4 龐加萊截面圖Fig.4 Poincare diagrams
(4) 功率譜分析
功率譜直觀地展示了信號的周期性,當信號是周期信號時,功率譜是離散譜,而當信號是非周期信號時,功率譜是連續譜。圖5分別給出了系統參數a=26,b=18,c=1.1,d=0.3,e=3時x、y、z、w的功率譜。每個功率譜分布均勻,沒有明顯的峰值頻率,呈連續狀態,這表明混沌序列不存在周期,是無序的,從側面驗證了混沌特性。


圖5 功率譜Fig.5 Power spectrum
本文提出的加密算法流程如圖6所示。

圖6 加解密流程圖Fig.6 Flowchart of encryption and decryption
將四維LCL混沌系統的5個參數和4個變量作為初始密鑰,將加密和解密端事先通過安全信道共享初始密鑰。然后,由四維LCL混沌系統產生兩個密鑰序列key1和key2,key1用于置亂,key2用于改進AES加密。明文圖像A通過置亂和改進AES加密后產生一張密文圖像B。在解密端,通過改進AES加密和置亂的逆操作得到明文圖像A′。
假設明文圖像A為m×n大小的灰度圖。首先,將混沌系統參數和變量a、b、c、d、e、x0、y0、z0、w0代入四維LCL混沌系統,先迭代1 000次,消除暫態效應帶來的周期性影響;然后,從第1 001次開始先繼續迭代q=m×n/2次,得到序列X1={x0,…,xi,…,xq-1},Y1={y0,…,yi,…,yq-1},Z1={z0,…,zi,…,zq-1},W1={w0,…,wi,…,wq-1},·表示向上取整。通過式(7)可計算得到用于置亂的密鑰key1={k0,k1,…,k2i,k2i+1,…,km×n-1}。
(7)
式中:i=0,1,…,q/2-1為序號;·為向下取整;|·|為取絕對值。通過序列的組合計算,有效提高密鑰的安全性。隨后,再將混沌系統迭代p=(|m×n/16|+315)/4次,獲得混沌序列X2={x0,…,xi,…,xp-1},Y2={y0,…,yi,…,yp-1},Z2={z0,…,zi,…,zp-1},W2={w0,…,wi,…,wp-1}。通過式(8)可獲得取值范圍在[0,255]、用于改進AES的密鑰序列key2={k0,k1,k2,k3,…,k4i,k4i+1,k4i+2,k4i+3,…,kp-1}。

(9)
傳統的AES-128加密是一種分組加密算法,采用4×4 Bytes大小的塊分組,進行10輪加密,才能保證加密的安全性。每一輪加密包括了輪密鑰加變換、S盒變換、行位移變換、列混淆變換和密鑰擴展[24]。但由于圖像數據量大,10輪加密造成了時間上的浪費,若減少輪數,安全性則無法得到保障。每一輪S盒變換、行移位變換都采用固定形式,密鑰擴展只與上一輪有關,安全性有待提升。
本文基于傳統AES-128加密算法進行了修改,將10輪加密減少為5輪,從而減少了運算時間。為保證安全性,修改了密鑰擴展函數,使每一輪密鑰由前兩輪密鑰得到,并引入混沌,提升密鑰的安全性。在加密過程中,采用混沌Cubic-S盒變換和動態交叉移位變換的方案,增強密鑰與加密之間的相關性,具體步驟如圖7所示。

圖7 改進的AES算法流程圖Fig.7 Flowchart of improved AES algorithm
(1) 混沌Cubic-S盒變換
傳統AES加密中的S盒采用固定矩陣,安全性無法得到充分保障。本文將混沌序列引入S盒的生成,并采用Cubic-S盒[25]替代原始S盒,進一步提升加密復雜度。首先,提取密鑰序列key2中的第1個至第256個元素,用R={r0,…,ri,…,r255}表示;然后,對R按從小到大的順序排序,并返回排序后元素在原始序列中的位置,得到序列R′。將序列R′按從下到上、從左到右的順序重新排列,生成大小為16×16的混沌S盒;最后,如圖8所示,將混沌S盒平均分為8×8大小的4個子S盒,形成三維表達的混沌Cubic-S盒。每一個像素為8 bits大小,可用“d0d1d2d3d4d5d6d7”二進制形式表示。其中,di∈[0,1]。將像素用“yxz”的形式進行表達。其中,x=d3d4d5;y=d0d1d2;z=d6d7,x、y、z的十進制數分別用于定位混沌Cubic-S盒的行、列、層。在映射過程中,狀態矩陣的每一個像素值在用“yxz”完成表達后,再通過混沌Cubic-S盒完成數值上的替換。

圖8 混沌Cubic-S盒Fig.8 Chaotic Cubic-S box
(2) 交叉移位變換
在傳統的AES加密過程中,行移位變換采用固定的變換方式。本文結合混沌序列,采取了一種動態的交叉移位變換。將每個4×4 Bytes大小的分組{s0,…,si,…,s15}(如圖9所示)按照主對角線或副對角線,從上至下或從下至上,順時針或逆時針的順序進行移位,共有16種不同的順序,具體如式(10)所示。取密鑰序列key2中的第257至257+m×n/16個序列值用kj表示,其中j=0,1,…,m×n/16-1為分組數量。通過密鑰的大小決定每一個分組塊采用哪種順序的交叉移位順序,從而達到一種動態的移位變換效果,有效提升了加密的安全性。

圖9 動態交叉移位變換示意圖Fig.9 Schematic diagram of dynamic cross shift transformation

(10)
(3) 列混淆變換
列混淆變換采用傳統AES加密算法中的方案,其計算公式如下所示:
(11)

(4) 輪密鑰加變換

(12)
(5) 密鑰擴展函數
在密鑰擴展過程中,傳統AES算法的每輪密鑰只與上一輪密鑰有關,若獲取了加密過程中的任意一輪密鑰,則后續密鑰直接可被破解。本文采用的密鑰擴展函數具體步驟如圖10所示。

圖10 密鑰擴展步驟Fig.10 Procedure of key expansion
每一輪密鑰由前兩輪密鑰得到,并將混沌序列引入其中,有效提高了密鑰的隨機性。首先,取密鑰key2中的第258+m×n/16個至273+m×n/16個元素用{k0,…,ki,…,k15}表示;然后,按從上到下、從左到右的順序排列為4×4大小的矩陣,再按列將4個字節用wr組合,即{w0,w1,w2,w3},wr={k4r,k4r+1,k4r+2,k4r+3},其中r=0,1,…,23為wr的個數。接著,取key2中的第274+m×n/16到289+m×n/16個元素,按順序每4個字節進行組合,則可表示為{c0,c1,c2,c3},用于第一輪擴展。密鑰擴展可分為3種情況:
(13)
式中:t=1,2,3,4,5為擴展輪數。當t=1時,wr-8分別為{c0,c1,c2,c3}。T函數包括了動態左移變換、混沌Cubic-S盒變換、異或操作,其中動態左移變換如式(14)所示。取密鑰序列key2中的第290+m×n/16到299+m×n/16個元素用于T函數,用{g1,g2,…,g2t-1,g2t,…,g10}表示,其中g2t-1決定動態左移的方式,g2t用于進行T函數中的異或計算。
(14)
(6) 加密模式
本文采用AES加密算法中的密碼分組鏈接(cipher block chaining, CBC)模式進行加密,計算過程如圖11所示。

圖11 CBC加密模式Fig.11 CBC encryption mode
在該模式下,加密前,明文塊需要與前一個密文塊進行異或計算。為了保證每次加密信息的唯一性,在計算第一個明文塊時需要與初始塊進行異或,本文選取密鑰序列key2中最后的16個元素作為初始塊。
解密過程為加密過程的逆過程,即先由混沌系統以及初始密鑰生成與加密密鑰相同的解密密鑰key1,key2。接著,對密文進行AES加密和置亂的逆過程,即可解密,獲得明文圖像。
為驗證本文所提基于新的四維LCL混沌系統和改進AES算法的圖像加密方法的安全性,分別從算法的密鑰空間大小、自相關性分析、信息熵、抗差分攻擊、魯棒性以及加密效率方面進行了實驗仿真分析,并對結合了混沌和AES加密或其他加密算法的文獻[26]、文獻[27]、文獻[28]所提3種算法進行了仿真對比。選取了斯坦福大學和南加州大學圖像庫的Cameraman、Lena、Boat共3張具有不同屬性的圖像進行實驗測試,具體測試結果如圖12所示,所有圖像均為256×256大小的灰度圖。仿真使用的硬件為搭載Intel(R) Core(TM) i5-11300H @ 3.10 GHz CPU的計算機,仿真平臺為Python 3.6。仿真所采用的密鑰為四維LCL混沌系統的5個系統參數和4個初值[a,b,c,d,e,x0,y0,z0,w0],均使用key={26,18,1.1,0.3,3,8,2,8,5}。

圖12 原圖Fig.12 Origin image
密鑰空間的大小直接影響了加密算法破解密鑰的難度,密鑰空間越大,破譯時間越長,抵抗暴力破解的能力就越強。本文加密算法密鑰分別為四維LCL混沌系統的5個參數和4個變量,取值范圍分別為a∈[18,27],b∈[8,20],c∈[0,1.8],d∈[0,2.8],e∈(1,5),x0∈[-20,20],y0∈[-5,5],z0∈[2,12],w0∈[-10,10]。理論上的密鑰空間可達到∞,但由于IEEE浮點準則,64位雙精度數最小精度為10-15,故本文提出的加密算法的密鑰空間為1.75×10143≈2476。本文算法密鑰空間遠大于理論安全值2100,故本文算法可以有效抵御窮舉攻擊[29]。
密鑰敏感性代表了當密鑰發生微小變化時密文發生變化的程度。以Lena圖像為例,先使用key={26,18,1.1,0.3,3,8,2,8,5}進行加密,再使用key′={26,18+1×10-15,1.1,0.3,3,8,2,8,5}解密,加解密結果如圖13(a)~圖13(c)所示。盡管密鑰僅發生了1×10-15的微小改變,但無法正確解密。當密鑰key中的b以δ×10-15(δ∈[-100,100])的幅度變化時,解密結果與正確解密結果的均方誤差結果如圖13(d)所示。可以觀察到,當密鑰出現錯誤時,均方誤差均在9 000附近,無法正確解密,且錯誤解密結果與明文存在很大的誤差,驗證了本文加密算法具有較強的密鑰敏感性。

圖13 密鑰敏感性測試結果Fig.13 Key sensitivity test results
良好的加密算法應能夠抵抗統計分析[30],利用本文加密算法進行加密,并對直方圖進行分析,加解密前后結果和直方圖如圖14所示。不同的明文圖像直方圖具有明顯不同的分布特征,而密文圖像直方圖幾乎相同,分布均勻,這驗證了該加密算法能夠有效抵御直方圖分析攻擊,破解難度較大。


圖14 加密結果及直方圖Fig.14 Results and histograms of the encryption
信息熵能夠描述信息的不確定性,反映加密效果,其計算公式如下:
(15)
式中:h為圖像矩陣;F為比特深度;p(hs)為像素出現概率;hs為像素。對于8 bit深度圖像,密文信息熵理想值為8,越接近8,則表明密文圖像加密效果越好[31]。
3幅灰度圖像的明文和密文的信息熵對比結果如表2所示。

表2 信息熵對比Table 2 Information entropy comparison bits
由表2可知,本文加密算法在3幅圖像上的信息熵相較于傳統AES以及其他改進算法更接近于8,平均值也優于其他算法,從而有效地驗證了本文加密算法能夠有效抵抗外部熵攻擊。
圖像的像素在水平、垂直、對角線3個方向上一般存在較強的相關性,接近于1。良好的加密算法能夠有效地破壞這種相關性,使密文圖像出現類似白噪聲的特點,破譯者無法從密文中獲取有效信息。相關系數能夠定量描述圖像之間的相關性,其計算公式如下:
(16)
式中:xi、yi為圖像相鄰兩個像素點的值;n為像素點數;i為像素序列號;E(x)和D(x)為圖像的期望值和方差;τ為相關系數。
相關系數越大,相關性越強,相關系數越小,相關性越弱,說明加密效果越好。圖15為Lena圖像原圖和密文圖像分別在3個方向上的相關性對比。可以明顯地觀察到,明文圖像像素間具有較強的相關性,而密文圖像則打破了原本像素間的相關性。
表3列出了Lena圖像在不同算法加密后密文圖像的相關系數對比,經過本文算法加密后的密文圖像相關系數相比其他加密算法密文圖像相關系數更接近于0,表明本文算法加密效果優于其他算法。

表3 Lena圖像相關性對比
差分攻擊是通過對明文圖像微小的變化,分析密文變化情況,進而對加密算法進行破譯的一種攻擊方法。通常采用像素數變化率(number of pixels change rate,NPCR)和統一平均變化強度(unified average changing intensity,UACI)兩項性能指標進行評判。理論上,當NPCR和UACI越接近于99.609%和33.464%時,算法抗差分攻擊能力越強,敏感性也越強[32],計算方式如下:
(17)
式中:I(i,j)為像素值;m、n分別為圖像的長和寬。
本文通過對圖像中任一位置像素值減1之后的密文結果進行NPCR和UACI的分析對比,對比結果如表4所示。由表4可知,本文提出的加密算法的NPCR和UACI在3幅圖像上都更接近理論值,表明本文加密算法相比其他算法對明文變化更敏感,有著更強的抗差分能力。

表4 NPCR與UACI的參數對比
在圖像傳輸的過程中,可能會因為網絡的延遲而丟失部分信息,也有可能一些攻擊者為了破壞圖像的正常傳輸,故意篡改密文信息或干擾正常通信。其中,裁剪攻擊、噪聲攻擊是最常見的攻擊方法。為驗證本文算法的魯棒性,本文以Cameraman圖像為例對密文分別進行了25%的裁剪和1%的椒鹽噪聲干擾,并將本文算法與其他算法進行了對比分析,實驗結果如圖16和圖17所示。當密文被裁剪時,傳統AES加密算法和文獻[27]解密結果裁剪部分內容無法正確解密,造成了解密圖像內容嚴重缺失,文獻[26]和文獻[28]則在特定的方向或位置上出現了內容的錯誤解密,在視覺上造成了嚴重的影響。當密文受噪聲影響時,傳統AES加密算法和文獻[27]解密結果出現了局部錯誤解密,本文算法和文獻[26]和文獻[28]所提算法效果相近,均出現了類似噪聲的情況,但不影響整體圖像內容的閱讀,從而驗證了即使密文在遭受裁剪攻擊和噪聲攻擊的情況下,本文加密算法依舊能將圖像結果中的大部分信息成功解密,恢復出圖像的整體主要內容,沒有造成嚴重的內容缺失或噪聲影響,表明本文算法有較強的魯棒性。

圖16 抗裁剪攻擊分析Fig.16 Anti-clipping attack analysis

圖17 抗噪聲攻擊分析Fig.17 Anti-noise attack analysis
加密算法除了需要考慮安全性,計算效率也是一個評判圖像加密系統的重要指標。本文對3幅圖像算法分別進行了100次計算后取平均值,計算得到的效率對比結果如表5所示。

表5 加密效率對比
本文加密算法由于減少了傳統AES算法50%的輪數,相較于傳統AES算法加密效率明顯提升了近3倍。對比其他優化算法,由于避免了DNA算法等復雜的計算規則,效率得到了提升,驗證了本文加密算法在保證密文安全的情況下可實現快速加密。
本文首先通過在三維LCL混沌系統中引入非線性項、反饋控制器,構成了一個繼承三維LCL混沌系統特點的四維LCL混沌系統,通過對其平衡點、LE指數、分岔圖、龐加萊截面、頻譜等進行分析,充分驗證了其高度的混沌特性。然后,對傳統AES算法進行了改進,結合提出的混沌系統,采用混沌Cubic-S盒、動態交叉變換方法替代了原始的S盒變換和行位移變換,以此提高加密安全性;同時,對密鑰生成函數進行了結構上的修改,使得每一輪密鑰都由上兩輪密鑰計算得到,并將混沌序列引入其中,增強了密鑰的安全性;最后,對算法進行了仿真實驗,分別分析了密鑰空間、密鑰敏感性、相關性、魯棒性、直方圖、抗差分攻擊、信息熵以及加密效率,從多個維度驗證了本文圖像加密算法安全性能良好,能夠實現快速加密和有效抵抗各類攻擊,在圖像加密、保密通信等領域有著良好的實用價值。