劉思聰 李春彪 李泳新
①(電子科技大學生命科學學院 成都 610054)
②(江蘇經貿職業技術學院智能工程學院 南京 210045)
③(南京信息工程大學人工智能學院 南京 210044)
伴隨5G時代與后疫情時代的到來,越來越多的人際交流遷移到了線上。出于對個人隱私的保護及確保信息安全,人們對于圖像加密的需求也越來越大。目前的圖像加密算法普遍存在加密過程復雜、耗時較長等缺點。對一些要求能夠進行實時加密傳輸的場合,現有加密算法并不能滿足要求。隨著Matthews[1]將混沌系統應用于信息加密領域,混沌加密算法引起了研究人員的注意,已有多種1維混沌系統應用于信息加密[2–4]。1維混沌系統多數具有迭代速度快、實現方法簡單等特點,但是由于1維混沌系統的系統控制參數較少,相空間軌道分布較為單薄,極易受到相空間重構等方法的攻擊,從而導致密文被惡意破解。研究者為了克服1維混沌系統的缺點,提出了一系列的改進方案。例如:有研究者將1維混沌系統的多個控制參數間進行耦合操作,使得整個系統的混沌性質變得更加復雜。也有研究者將多個1維混沌映射整合為1個系統,整個加密過程中在不同混沌系統間進行切換或級聯操作[5–7]。上述方法可使1維混沌系統具有更好的迭代效率和不可預測性。與此同時,也有研究者嘗試通過構建復數域上的1維混沌系統來對信息進行加密,以期獲得更好的混沌特性與加密效果[8]。上述手段提高了1維混沌系統的信息加密強度,但受限于1維混沌系統自身的結構與參數特點,其信息加密強度仍然有待提高。目前,研究者將焦點聚集于高維混沌系統以及混沌系統的加密應用上,部分高維混沌系統具有更高的參數維度,其相空間的軌道分布更加復雜,初值敏感性更強,整個系統的混沌映射結構也更加復雜。通過對高維混沌系統的研究,可以獲得更好的加密效果[9]。
Gan等人[10]基于3維Chen混沌映射系統,提出了一種3維比特平面重排列的彩色圖像加密算法。利用該算法加密后的圖像,可以有效降低彩色圖像(紅,綠,藍,Red Green Blue)3通道間的像素相關性,并且整個加密過程具有更大的算法特異性。Yin等人[11]在4階超混沌系統的基礎上,利用廣度優先搜索策略,構建了一種新的圖像加密算法。該算法提高了加密的安全性和靈敏度。Luo等人[12]在baker映射及Logistic映射的基礎上提出了一種新的混沌圖像加密算法,該算法通過2維baker映射來控制Logistic映射的參數空間選擇,從而使得Logistic映射的混沌行為更加復雜。通過使用一次置亂-擴散策略,該算法能夠有效地提高圖像加密的有效性與抗攻擊能力。Khan等人[13]通過整合多個混沌映射系統,構造出了一個新型的圖像加密算法,該算法構建了一個圖像加密流,首先通過2維Henon映射來對原始圖像的像素點進行空間置亂操作,之后再利用1維圓映射來進行混沌擴散操作。經過上述加密步驟后,得到了加密圖像數據,通過對加密圖像數據進行有效性分析,表明該算法具有較好的加密性能和抗攻擊能力。Ye等人[14]利用2維正弦映射構造了一個混沌參數空間,并采用置亂-重寫-擴散的加密策略,提出了一種新的混沌加密算法。該算法對傳統加密算法中彼此分離的兩個加密步驟:置亂與擴散過程進行了整合,從而提高了算法的抗攻擊能力。同時該算法在像素位置變換與對應像素點灰度值變換之間建立起了聯系,從而增強了算法的加密效果。Liu等人[15]基于正弦混沌映射,提出了同步置亂-擴散加密算法,該算法通過生成動態密鑰流和索引的方法,將圖像的置亂與擴散過程整合在一起,提高了圖像加密效率的同時也加強了算法的敏感性。
但是上述研究中所提混沌映射系統,其動力學特性較為單一,在面對基于深度神經網絡的新型攻擊算法時,極易遭到攻擊,從而導致加密失敗。基于此,為了提高混沌映射系統的動力學復雜度,本文通過向1維余弦混沌映射系統中引入非線性指數項和高次冪項來對1維混沌系統進行維度提升。被引入的非線性指數項和高次冪項作為混沌擾動源來對余弦混沌映射的迭代過程進行擾動。通過上述方法,構建出了一個新的2維指數-余弦混沌系統。對本系統的混沌特性進行研究,發現本系統具有更加復雜的混沌特性,相空間軌道分布復雜。在本系統的基礎上,提出了圖像加密算法。理論分析與仿真實驗發現該算法具有較強的魯棒性和較好的加密效果。
1維cosine混沌映射作為一種經典的混沌映射系統,具有控制參數少、易于實現等優點[9],盡管1維cosine系統具有混沌特性,但是該系統混沌映射構造相對簡單,序列迭代排序方式較易被預測。為了提高系統的混沌映射結構復雜度,可以通過向低維混沌系統中引入非線性擾動源的方式來對系統的映射維度進行提升。維度提升后的混沌系統具有更多的控制參數,更復雜的混沌映射結構,序列迭代排序方式變得更加難以預測。本文提出一種新的2維離散混沌映射,該映射的數學模型為


其中,det為解線性方程組產生的一個算式,取值為標量。J為雅可比矩陣,E為單位矩陣,tr為矩陣的跡。系統式(1)在固定參數a=0.4, b=1.75,c=0.85下,不同初始值對應的特征值分布如圖1所示。其中圖1(a)中起振點在[1,1.5]范圍內變化。圖1(b)中起振點在[0, 0.2]范圍內變化。其中綠色代表特征值λ1,梅紅色代表特征值λ2,系統式(1)部分特征值分布在單位圓外,這說明系統式(1)是不穩定的。

圖1 動力學系統在不同初始值下特征值分布圖
固定初始值 (x0,y0)=(0.74,1.38),設定參數a=0.4,c=0.85,當參數b取值范圍在[1, 2]時,隨著參數b的增大,系統依次出現周期、混沌等不同動力學振蕩行為。如圖2所示,當b在[1, 1.5]時系統捕獲到周期解,當b在[1.624, 1.965]時系統具有混沌動力學行為,當b在[1.966, 1.979]時有一處周期窗清晰可見。選取動力學系統部分典型相軌展示在圖3中,系統存在多種振蕩行為如表1所示。

表1 不同參數b對應的李雅普諾夫指數譜及吸引子類型

圖2 李雅普諾夫指數譜和分叉圖
如圖3所示,對比圖3(a)—圖3(c)可知參數b可有效修正系統遍歷性,伴隨著參數b的增加,動力學系統遍歷性增強。圖3(d)對應上述系統處于周期窗時吸引子運動軌跡。式(1)鎖定控制參數為a=0.4,c=0.85 ,(x0,y0)=(0.74,1.38),當b取不同參數時動力學系統典型相軌展示在圖3中。其中參數b的變化均在圖中標注。 其中圖3(a)(b)(c)處于混沌狀態,(d)處于離散周期點。

圖3 系統動力學系統典型相軌圖
為了能夠利用指數-余弦離散混沌(Exponentcosine Chaotic mapping, 2D-ECs)系統對圖像信息進行混沌加密操作,首先對圖像數據進行RGB多通道提取,接著對抽取出的單通道圖像數據進行混沌加密,之后再將加密后的單通道圖像數據重寫回圖像當中,進而完成對圖像數據的加密。在對圖像數據進行混沌加密時,采用了“置亂-擴散-置亂”的加密策略。
步驟1 在對圖像數據進行置亂操作時,首先利用2D-ECs混沌系統生成離散數據序列 (xn,yn),設置初始值(x0,y0)=(0.74,1.38), 控制參數(a,b,c)=(0.4,1.75,0.85)。 迭代輪次為M×N+10000,其中M,N為圖像的寬、高值。為了避免混沌序列在迭代早期存在的單值性與周期性,因此將序列中前8000點數據廢棄不用。在完成上述操作后,對生成的離散數據序列 (xn,yn)進行去重處理,將去重后的xn序 列作為圖像置亂的行坐標,yn序列作為圖像置亂的列坐標,對原始圖像進行空間置亂操作。具體置亂操作如式(5)所示

步驟2 在完成上述操作后,將從步驟1中獲得的置亂后圖像數據沿列方向展開為1維序列數據。再利用由初始值 (x0,y0)=(0.15,1.7)與控制參數(a,b,c)=(0.4,1.75,0.85)構成的2D-ECs混沌系統生成的用于第1輪加密的離散加密序列,來對空間置亂數據進行加密。2D-ECs系統生成的離散加密序列長度為MN+10000。為了避免混沌序列在迭代早期存在的單值性與周期性,因此將序列中前8000點數據廢棄不用。
步驟3 將步驟2 中獲得的離散加密序列(xn,yn)與 坐標置亂后的圖像數據(Q)進行雙螺旋加密。具體加密步驟如式(6)所示

為了使加密后的數據具有較好的抵抗選擇明文攻擊的能力,需要對置亂加密后的密文數據進行擴散加密操作。通過該操作,可以使加密系統對于明文圖像極微小的變化變得非常敏感。即使只更改明文圖像中一個像素的數據值,也會使得整個加密數據發生較大的變化。具體操作步驟如下所示:
步驟1 首先計算待加密明文圖像的平均像素值M,再對該平均值進行歸一化操作,使其處于0~1的取值范圍內。再將該歸一化后的像素均值M′作為2D-ECs混沌系統的x0初始值,并設Ky0初始值為1.5,此時控制參數(a,b,c)=(0.4,1.75,0.85)。經過MN+10000輪迭代后,拋棄前8000個數據點,獲得擴散序列Kxn,Kyn。
步驟2 將經過置亂加密后的圖像數據(Q′)沿列方向展開為1維序列數據。再與步驟1中所獲得的擴散序列進行雙螺旋擴散加密操作。具體擴散加密公式如式(7)所示

為了使圖像的加密效果更佳,在完成了上述置亂與擴散操作后,再對加密后的數據進行第2輪空間置亂操作。
步驟1 在對圖像數據進行置亂操作時,首先利用2D-ECs混沌系統生成離散數據序列 (xn,yn),設置初始值(x0,y0)= ( 0.74,1.38), 控制參數(a,b,c)=(0.4,1.75,0.85)。迭代輪次為MN+10000,其中M,N為圖像的寬、高值。為了避免混沌序列在迭代早期存在的單值性與周期性,同時為了增強算法空間的隨機性,因而將序列中前9000點數據廢棄不用。在完成上述操作后,對生成的離散數據序列(xn,yn)進行去重處理,將去重后的xn序列作為圖像置亂的行坐標,yn序列作為圖像置亂的列坐標,來對原始圖像進行空間置亂操作。具體置亂操作如式(5)所示。通過上述步驟,即可完成第2輪空間置亂加密操作。本文系統的加密算法流圖如圖4所示。

圖4 2D-ECs混沌加密系統加密算法流圖
圖像加密算法的時間復雜度是衡量加密算法性能的重要指標之一。通過對算法的時間復雜度進行分析,可以從理論上說明圖像加密算法的加密效率。一個好的加密算法應該盡可能地花費較少的時間成本來完成對數據的加密。根據上文所述算法流程,可知文中算法不存在循環嵌套等復雜程序運算過程,因此時間復雜度為O(n)。而目前已有的一些混沌加密算法[11–13],因存在較為復雜的循環嵌套,因此算法時間復雜度遠大于O(n)。具體時間復雜度計算結果如表2所示。
從表2可知,本文所提加密算法具有更小的時間復雜度,其算法計算效率更高。

表2 算法時間復雜度分析
為了驗證本文提出的2D-ECs混沌系統加密算法的加密有效性、魯棒性與安全性,從密鑰空間大小,差分攻擊分析,自相關性分析,信息熵,算法魯棒性等方面進行了實驗仿真,并對仿真結果進行了分析。上述所有分析均在如下計算平臺上完成,平臺具體配置為:CPU AMD R7 3700, 16 GB內存,GPU Nvdia RTX 2060 6 G,操作系統為Windows 10專業版。所有程序均由Python語言編寫。
利用2D-ECs混沌加密算法對如下標準灰度圖像進行加密操作:(1)Cameraman圖像;(2)Lena圖像;(3)Boat圖像。上述圖像尺寸均為200像素×200像素。加密結果如圖5所示。
由圖5可知,經過2D-ECs混沌系統加密算法加密后的圖像像素之間相關性幾乎消除,密文圖像像素值分布均勻,密碼破譯難度較大。

圖5 2D-ECs混沌加密圖像及直方圖信息
密鑰空間大小對于加密算法的加密安全性具有較大的影響。密鑰空間越大,密碼破譯所花時間越長。當密鑰空間足夠大時,密文破譯所需時間將呈指數級增長。
本文所設計的2D-ECs混沌系統加密算法采用隨機密鑰生成方式。加密算法所需的密鑰為
Key={x0, y0,a,b, c,Ky0,Ka,Kb,Kc,StartPosition,StartPositoin2}。 其中x0,y0為第1輪置亂時所用的系統初始值,a,b,c為 系統控制參數,K y0為擴散加密時所用初始值,K a,Kb,Kc為擴散時所用系統控制參數,StartPosition,StartPositoin2為兩輪置亂操作時參數序列的起始值。x0,y0,Ky0取值由式(8)計算得到

控制參數a,b,Ka,Kb采用隨機取值的方式從a,Ka ∈[0, 0.4],b,Kb ∈[0,1.7],c,Kc∈[0.6,0.9]隨機抽取。隨機取值間隔為0.0 1。StartPosition,StartPositoin2 取值采用隨機取值的方式,從[3000,12000]之間隨機抽取。綜上所述,可知該算法具有較大的密鑰空間,可以有效抵御窮舉式破譯攻擊。
差分攻擊是通過分析明文細微差異所導致的密文改變程度,來對加密算法進行攻擊的一種破譯方法。為了分析2D-ECs混沌系統加密算法對于差分攻擊的抵抗能力,本文通過改變明文圖像中任意一點像素值的方式來觀察兩次加密后的密文圖像間的差異程度。如果差異程度較大,則說明該算法能夠有效地抵御差分攻擊。本文采用計算像素數變化率(Number of Pixels Change Rate, NPCR)以及統一平均變化強度(Unified Average Changing Intensity,UACI)的方式來衡量密文圖像之間差異程度的大小。設I1,I2為只具有一像素值差異的兩幅待加密明文圖像,這兩幅圖像之間的NPCR值與UACI值,可通過式(9)進行計算

對于任意NPCR值而言,其理想值為(255/256)×100%=99.6094%,對任意UACI值而言,其理想值約為33.4635%[11]。本文算法對不同灰度圖像分別計算NPCR與UACI值,計算結果如表3所示。
通過表3可知,同文獻[12–14]相比,本文提出的2D-ECs混沌系統加密算法的NPCR值與UACI值更加接近理想值,故本文所提加密算法對于明文圖像像素值的變化非常敏感,可以有效地抵御差分攻擊。

表3 NPCR,UACI參數值(%)
加密效果良好的圖像加密算法應當使加密后的密文圖像具有白噪聲的特點,這樣可以使密碼破譯者無法從加密圖像中截獲有用的信息。自相關系數是用來衡量圖像像素點間相關性的一個重要指標。自相關系數越大,說明像素點間關聯程度越大,反之,則表明像素點間關聯程度越小。本文分別對Cameraman圖像、Lena圖像、Boat圖像及其加密后的密文圖像計算了自相關系數。
從上述圖像中隨機選取N對相鄰像素點,并記其灰度值為 (u,v) ,則這N對相鄰像素點間的相關系數可以通過式(10)來進行計算。具體計算公式為

不同圖像的自相關系數計算結果如表4所示。從表4可知,不同明文圖像,其6鄰域方向均具有較強的自相關性,而通過本文算法加密后,各方向上的自相關性很弱,說明本文加密算法可以很好地隱藏明文中的圖像信息。

表4 自相關系數
信息熵是衡量信息中不確定性大小的一個重要指標。信息熵越大,說明信息的不確定程度越高,信息的加密效果越好。理想信息熵的值為8[14],越接近該值,說明圖像的加密效果越好。信息熵計算公式如式(11)所示

其中,mi表 示第i位 的像素的值,p(mi)表示像素值為mi的 概率,N表示在密文圖像中所有的像素個數。
本文中所用灰度圖像的信息熵計算結果如表5所示。

表5 圖像信息熵
為了破壞正常的圖像加密傳輸過程,惡意密碼破譯者可能會對截獲到的密文數據進行數據篡改或向密文中添加干擾信息,從而導致加密圖像無法被正常解密。因此,對于加密算法而言,應當對密文數據的缺損具有一定的容忍度,當密文數據出現一定程度的缺失或損壞后,也能正常地進行解密操作。這種能力稱為算法魯棒性。
為了驗證本文所提算法的魯棒性,對加密后的灰度圖像數據隨機進行像素點移除,并觀察是否能夠正常地進行解密操作。實驗仿真結果如圖6所示。
通過圖6可知,在密文數據損失10%, 30%時,本文算法仍然能夠正常地進行解密操作,并且明文數據的有效信息并未嚴重丟失。當密文數據損失達到50%時,解密后的數據仍然保留一定程度的有效信息。說明本文所提算法具有較好的算法魯棒性。

圖6 隨機像素點移除
由于本文所提算法主要針對圖像像素值進行加密,因此該算法也可對彩色圖像進行加密。在對彩色圖像進行加密時,首先需要將圖像分離為R, G,B 3通道值,之后分別針對各通道數據進行混沌加密,加密完成后,再將加密后的R, G, B通道值進行整合,進而生成加密圖像。加解密圖像的處理結果如圖7所示。

圖7 彩色圖像加解密效果圖
本文通過向1維cosine混沌映射系統中引入指數及高次冪項的方式,構造出了一個具有混沌特性的2D-ECs 2維混沌系統。通過對該系統利用Lyapunov指數計算,分岔圖及空間相圖繪制等方法進行研究后發現,該系統具有復雜的相空間結構,說明該系統具有非常復雜的混沌行為。在此基礎上,本文設計一種基于2D-ECs混沌系統的圖像加密算法。本算法具有密鑰空間大、加密效果好等特點。仿真實驗表明,該算法可以有效地抵御窮舉式以及差分式攻擊。同時該算法可以有效地消除明文圖像中的像素相關性,并且對于明文中像素間的微小變化異常敏感,極微小的變化也可以使加密后的數據完全改變。綜上所述,本文所提基于2D-ECs混沌系統的圖像加密算法具有較高的密碼安全性和較好的實際應用前景。