魏連鎖,胡現(xiàn)成,陳齊齊,韓 建
(齊齊哈爾大學計算機與控制工程學院,黑龍江 齊齊哈爾 161006)
隨著信息技術(shù)的快速發(fā)展,圖像、視頻、音頻等多媒體數(shù)據(jù)的安全引起了人們的廣泛關(guān)注。對圖像信息進行安全、高效的加密是多媒體研究的重點[1,2],而基于混沌系統(tǒng)設計新型的加密算法則成為當下圖像加密的有效方法[3,4]。
常見圖像加密過程是利用混沌序列對明文圖像置亂來改變像素點位置;同時通過對像素點的像素值進行數(shù)值改變,使原始圖像信息被隱藏;最后對像素點進行擴散處理,使明文像素點的信息隱藏在更多的密文像素點中,像這樣置亂、置換多步驟的圖像處理過程才能提高加密的安全性。文獻[5]設計了一種擴散-聯(lián)合置亂-聯(lián)合擴散的加密方法,提出利用耦合Logistic映射產(chǎn)生隨機密鑰流,但混沌系統(tǒng)過于簡單,難以抵抗窮舉攻擊,并且擴散過程繁瑣。文獻[6]為提升混沌系統(tǒng)復雜性,將分段Logistic映射加入到時空混沌中,將混沌系統(tǒng)作為像素置亂的依據(jù),同時分量相互置亂的方法置亂,雖然混沌系統(tǒng)復雜難被破解,但是置亂擴散后的像素存在相關(guān)性大的問題。文獻[7]提出基于Tent映射和改進Logistic等映射構(gòu)造四進制復合混沌系統(tǒng),然后利用混沌序列對RGB分量聯(lián)合置亂的彩色圖像加密,雖然置亂擴散方法能減少相關(guān)性,并且混沌系統(tǒng)能抵抗窮舉,但是4個混沌的組合過于復雜化,影響加密效率。文獻[8]提出混合混沌系統(tǒng)的并行多通道彩色圖像加密,利用3種混沌分別對3個分量加密,盡管形式簡單,但是置亂擴散方法傳統(tǒng),密文相關(guān)性大。文獻[9]為了降低算法的復雜度,利用Logistic、Tent 與 Sine 映射構(gòu)建復合混沌系統(tǒng),通過人工神經(jīng)網(wǎng)絡處理混沌序列,再利用神經(jīng)網(wǎng)絡序列實現(xiàn)明文置亂,通過構(gòu)造量化方法與分段異擴散技術(shù),對置亂圖像實現(xiàn)分類加密。
對此,本文提出了基于云模型的Fibonacci混沌系統(tǒng)與矩陣卷積運算結(jié)合的彩色圖像加密算法,該算法的混沌序列隨著云模型隨機種子的隨機變換,重復運行產(chǎn)生不重復的多組動態(tài)混沌序列,并且混沌系統(tǒng)密鑰空間大;利用復合混沌序列對RGB分量拼接的圖像像素點進行置亂變換,再利用矩陣卷積運算[10,11]來將置亂后的像素點進行置換,增強密文抗攻擊能力;最后與混沌序列及前相鄰像素值進行異或擴散,實現(xiàn)了圖像加密過程的位置置亂-數(shù)值變換-擴散的整體設計。該算法抗明文攻擊性強,具有加密安全性高的特點。
云模型發(fā)生器多是基于偽隨機數(shù)的發(fā)生器,云模型擁有期望值Ex、熵En和超熵He共3個數(shù)字特征,它是用來表示不確定性轉(zhuǎn)換的模型[12]。
Ex的值反映了在云滴群里云重心所在的位置。
(1)
其中,xi,i=1,2,…,n表示輸入樣本點,n為樣本點取值個數(shù)。
樣本方差定義如下:
(2)
En的值揭示了數(shù)據(jù)間模糊性和隨機性的關(guān)聯(lián)性。
(3)
He是對En的不確定度量,反映了云的離散程度和厚度。
(4)
yi=RN(En,He)
(5)
xi=RN(Ex,yi)
(6)
其中,RN為正態(tài)隨機數(shù),算法云模型取值為Ex=5000,En=3,He=1。
Figure 1 Cloud droplet distribution圖1 云滴分布
如圖1a云滴圖所示,云模型數(shù)字特征產(chǎn)生的云滴分布具有正態(tài)分布特性,從圖1b中可以看出,xi居中分布。云發(fā)生器的數(shù)據(jù)不像混沌序列具有分布均勻的特性,但是云模型的數(shù)據(jù)可以隨著隨機種子的變換而變換,將云模型的隨機性與混沌序列相結(jié)合,讓混沌序列實現(xiàn)了長期不可預測,序列的規(guī)律將很難被發(fā)現(xiàn),在加密應用中將會起到很好的加密作用。
混沌系統(tǒng)利用Fibonacci產(chǎn)生隨機數(shù)[14],產(chǎn)生的隨機數(shù)能克服序列本身存在的相關(guān)性。Fibonacci數(shù)列[15]如式(7)所示:
xi+1=(xi+xi-p) modM,i=p,p+1,…,M∈N
(7)
其中,p=1,2,…,n為數(shù)列輸入值的下標,M為模。
Fibonacci數(shù)列具有簡單、快速、易于實現(xiàn)等特性,并且模型采用廣義三階Fibonacci函數(shù)模型:
Fj=(AiFi-1+BiFi-2+CiFi-3) modM
(8)
其中,Ai,Bi和Ci表示隨機常數(shù),M為模,F(xiàn)i為云滴群。
量子Logistic QL(Quantum Logistic)[16]映射的表達式為:
(9)
量子混沌映射作為隨機動態(tài)參數(shù),降低了序列相關(guān)性,經(jīng)過廣義三階Fibonacci的函數(shù)模型運算[17],再與 Logistic映射耦合得到云模型Fibonacci混沌系統(tǒng):
Xn+1=AFQL=(F(Q(γ,β)))+L(x0,μ)mod 1
(10)
其中,Q(γ,β)表示量子混沌系統(tǒng);F(Q(γ,β))表示將云滴代入到式(8)廣義三階Fibonacci函數(shù)模型的序列Fj;L(x0,μ)表示初始狀態(tài)為x0、參數(shù)為μ的Logistic混沌系統(tǒng),μ的取值在[0,4],算法中取μ=3.8。最后通過與Logistic映射耦合產(chǎn)生新的非相關(guān)混沌序列。
如圖2所示為混沌序列發(fā)生器的組合結(jié)構(gòu)圖,展現(xiàn)了混沌結(jié)構(gòu)的數(shù)據(jù)傳輸流程以及組合公式。云模型Fibonacci混沌系統(tǒng)通過將量子logistic、logistic、Fibonacci數(shù)列和云模型相結(jié)合,構(gòu)造出新的混沌系統(tǒng),結(jié)合了Fibonacci數(shù)列簡單、快速、易于實現(xiàn)的特性,以及多組混沌序列的混沌性和云模型的正態(tài)分布特性,提高了系統(tǒng)復雜度。但是,系統(tǒng)的時間復雜性也相對提高了,在進行多組圖像加密時,將會有短暫的時間延遲。
Figure 2 Schematic diagram of CFCS pseudo-random chaotic sequence generator圖2 CFCS偽隨機混沌序列發(fā)生器示意圖
基于云模型的Fibonacci混沌系統(tǒng)生成的多組混沌序列相互獨立,在對彩色圖像加密過程中用到多組混沌序列,如加密過程中產(chǎn)生的4個混沌序列F1(i),F(xiàn)2(i),F(xiàn)3(i),F(xiàn)4(i)。傳統(tǒng)混沌系統(tǒng)生成的混沌序列固定統(tǒng)一,很容易推斷出混沌規(guī)律,而用云模型Fibonacci混沌系統(tǒng)可以隨意生成無數(shù)組混沌序列,從而提高圖像加密的效率。
步驟1首先選取量子Logistic混沌系統(tǒng)的初始值及系統(tǒng)控制參數(shù),代入QL混沌系統(tǒng)中,得到xn,yn和zn均在(0,1)內(nèi)的實數(shù)三階序列(xn,yn,zn)。
步驟2選取云模型期望值Ex,熵En和超熵He3個參數(shù)的初始值,利用云發(fā)生器生成隨機的云滴群。
步驟3將步驟1產(chǎn)生的QL混沌三階序列(xn,yn,zn)代入式(8)中分別作為廣義三階Fibonacci函數(shù)模型的參數(shù)Ai,Bi,Ci,并將步驟2中的云滴代入式(8)中作為廣義三階Fibonacci函數(shù)模型的函數(shù)值Fi,產(chǎn)生廣義三階Fibonacci函數(shù)模型序列。
步驟4將步驟3中產(chǎn)生的廣義三階Fibonacci函數(shù)模型序列與Logistic混沌系統(tǒng)代入式(10)中級聯(lián)耦合,廣義三階Fibonacci混沌系統(tǒng)產(chǎn)生最后所需的均勻非相關(guān)的序列。
基于云模型與Fibonacci的混沌系統(tǒng)相比于簡單的Logistic、Ten映射具有偽隨機特性好、序列獨立不重復和安全性高的特點,能產(chǎn)生均勻且非相關(guān)的偽隨機混沌序列。
加密算法首先對原始彩色圖像的 R、G、B分量進行拼接,利用混沌序列映射更替像素點坐標,達到像素點置亂的目的;再通過矩陣卷積運算置換像素值;最后進行像素點間的相互異或擴散,3通道拆分整合后得到加密圖像。流程圖如圖3所示。
Figure 3 Encryption process圖3 加密過程
Step1預處理。
預處理指彩色圖像的轉(zhuǎn)換。原始彩色圖像(W為圖像的寬,H為圖像的高),PH×W×3位于三維空間,將彩色圖像分解為R、G、B 3通道圖像,然后拼接成為二維低維灰度矩形圖像P0。
Step2置亂。
將二維的灰度矩形圖像P0置亂成P1,即將P0位置坐標與混沌序列所轉(zhuǎn)換的數(shù)據(jù)坐標進行映射互換生成加密圖像P1。選取圖像像素點的平均值作為密鑰,通過隱密通道與混沌參數(shù)值一起傳輸?shù)浇邮辗?,密鑰分別作為云模型的隨機種子和Logistic映射的初始值來生成云模型Fibonacci混沌序列F1(i);再乘以明文圖像的高height和寬width進行擴展,取整得到(0,H*W)之間的整數(shù)序列F11(i)。最后將混沌序列中每1個元素F11(i)(i=1,2,…,H*W)用F(x,y)(x:行,y:列)坐標形式表示出來,利用混沌坐標映射更替像素點坐標,達到像素點置亂的目的,再調(diào)整矩陣后得到P1。置亂方法如圖4所示。
Figure 4 Scrambling process圖4 置亂過程
置亂公式如下所示:
F11(i)=int(F1(i)×height×width)
(11)
(12)
其中,Xi和Yi分別表示混沌序列中每1個元素對應的行與列;W表示圖像的寬;Te為輔助變量,用來臨時存儲變換位置的像素值。
Step3卷積置換。
將P1置換成P2,即由P1進行矩陣卷積運算生成加密圖像P2。在卷積運算之前,要在矩陣的最右邊和最下邊補零。P1內(nèi)2×2單位矩陣在卷積運算后右移1位,同時將卷積核filter(t)內(nèi)2×2的隨機序列進行更替,t表示隨機數(shù),1行結(jié)束再轉(zhuǎn)至下1行依次進行矩陣卷積運算。在結(jié)束卷積置換后再去掉添加的行列零。矩陣卷積運算流程如圖5所示。
Figure 5 Convolutional permutation圖5 卷積置換
云模型Fibonacci混沌系統(tǒng)混沌序列F2(i)需先通過式(13)進行擴展得到F22(i),混沌序列擴展如式(13)所示:
F22(i)=int(F2(i)×100),
i∈{0,1,2,…,height×width-1}
(13)
然后,將連續(xù)的4個混沌序列值放到2×2矩陣中組成卷積核filter(t),再將P1矩陣與卷積核filter(t)進行卷積運算,最后與F3(i)隨機序列做差得到P2置換圖像矩陣。像素置換公式如式(14)所示:
P2[i][j]=sum(P1[i:i+2,j:j+2]×
filter(t))-F3(i)
(14)
其中,F2(i)表示混沌序列,F(xiàn)22(i)為擴展序列,F(xiàn)3(i)表示另1組混沌序列。式(14)即為P1內(nèi)矩陣與卷積核的卷積求和運算公式。
Step4異或擴散。
將P2異或擴散成P3,即由P2與云模型Fibonacci混沌系統(tǒng)及前后相鄰像素值進行正反雙向2次異或操作生成加密圖像P3。首先利用式(15)對隨機序列F4(i)進行擴展,再與P2矩陣、前(后)相鄰像素值進行正反雙向的異或運算,實現(xiàn)像素點之間擴散的相互影響,得到P3。
F44(i)=int(F4(i)×108)
(15)
正向擴散:
(16)
反向擴散:
(17)
其中,image_mean表示像素值的均值,F(xiàn)44(i)為混沌擴展序列,異或過程需要像素點與混沌序列以及前像素值P2[i-1]3個數(shù)據(jù)元素,當i=0時,初始前像素值P2[i-1]為image_mean。
Step5最后歸一化后把圖像轉(zhuǎn)換成R、G、B模式的彩色圖像。
矩陣卷積將會擴大數(shù)據(jù)的范圍,無論是置亂還是置換,混沌的范圍難以達到置換擴散的效果,需要對序列進行不同程度擴展。而矩陣類pading的補零過程可以避免邊緣數(shù)據(jù)遺漏,在卷積運算后再與混沌結(jié)合可以防止通過邊緣數(shù)據(jù)反推出圖像真實數(shù)據(jù)的可能性。
解密過程與加密過程相反,根據(jù)像素的平均值產(chǎn)生云模型Fibonacci隨機序列來進行解密。解密步驟如下:
(1)將加密后的圖像轉(zhuǎn)換為R、G、B灰度圖像。
(2)將圖像的平均值作為初始值生成云模型Fibonacci隨機序列。
(3)根據(jù)式(15)~式(17)對加密后的P3矩陣進行異或運算。
(4)異或運算后的矩陣再進行式(18)所示的反卷積運算:
P1[i][j]=P2[i][j]+F3(i)-
P2[i+1][j+1]×filter[1][1]-P2[i+1][j]×
filter[1][0]-P2[i][j+1]×filter[0][1]
(18)
Step6卷積運算恢復后再進行置亂運算,就可以得到原圖像。
以上圖像加密算法將廣義三階Fibonacci和云模型結(jié)合,放大了對整個加密系統(tǒng)的初值敏感性,增大了密鑰空間;將圖像的像素平均值作為混沌序列的初始值,同時將平均值與異或運算緊密結(jié)合,提高了明文敏感性;通過卷積運算將置亂后的矩陣進行置換操作,微小的誤差將會影響后面所有的計算結(jié)果,并且會逐漸放大誤差,達到較好的置亂效果。
本節(jié)利用Python 3.6測試所提彩色圖像的加密算法,圖像為256×256的彩色圖像Peppers,分別展現(xiàn)圖像加密過程中置亂、置換與擴散后的圖像,通過視覺分析很難辨別加密后的圖像,加密過程如圖6所示。
Figure 6 Color encryption images圖6 彩色圖像加密圖
Figure 8 Histogram圖8 直方圖
密鑰敏感性是加密算法安全性分析的一項重要檢測步驟。本文將混沌初始密鑰偏差10-16進行解密,解密出的圖像無法識別出原始圖像,在偏差為10-17時能恢復原圖像,表明該算法具有很強的敏感性。圖7對加密后的Peppers彩色圖像進行了偏差解密。
Figure 7 Key sensitivity analysis image圖7 密鑰敏感性分析圖像
加密前后Peppers圖像的R、G、B分量直方圖分布如圖8所示,矩陣卷積運算后的直方圖分布與明文直方圖出現(xiàn)了明顯的不同,加密后的R、G、B分量直方圖分布平滑,無法辨認出加密前的分布規(guī)律,直方圖顯示加密效果明顯。
圖像像素的位置關(guān)系分為水平、垂直和對角線上的相鄰[18]。
圖像像素之間的強相關(guān)性會威脅到圖像信息的安全,相關(guān)性越小,則置亂的破壞程度越高。圖9展示了原圖像像素分布、卷積圖像、密文圖像的水平方向相鄰像素的分布圖。分析圖9及表1可知,明文圖像分量像素相關(guān)性較高,相關(guān)系數(shù)都接近1,密文圖像的相關(guān)系數(shù)趨近于0,本文的加密算法破壞了原始圖像的統(tǒng)計特性。相關(guān)性分析公式如下所示:
(19)
其中,xi和yi為相鄰像素點的像素值,T為像素點的數(shù)量。原圖像及加密后圖像的相關(guān)性如表1所示。
Figure 9 Horizontal adjacent pixel distribution圖9 水平方向相鄰像素分布圖
信息熵用來度量圖像中像素值的分布情況,像素值分布越均勻信息熵越大。信息熵計算公式為:
(20)Table 1 Correlation analysis of adjacent pixels in image表1 圖像相鄰像素值的相關(guān)性分析
其中,mi表示像素的值,p(mi)表示像素出現(xiàn)的概率。根據(jù)式(20)計算出的彩色圖像R、G、B分量的信息熵如表2所示。表2給出了多種加密算法的信息熵,本文算法加密后的信息熵接近于8,說明像素值分布均勻,算法具有較強的抵抗統(tǒng)計攻擊的能力。
Table 2 Comparison of information entropy among different encryption algorithms表2 本文加密算法與其他加密算法的信息熵對比
差分攻擊嚴重威脅著圖像信息的傳輸安全,加密算法敏感性越強,抵抗攻擊能力越強,它是加密技術(shù)領(lǐng)域中最具有挑戰(zhàn)的篡改形式,好的加密機制應該能夠抗差分攻擊。NPCR與UACI變化率值是抗差分攻擊的衡量標準,用來評價加密算法的抗差分攻擊性能。其計算公式為:
(21)
(22)
其中,H和W表示圖像的高和寬,像素變化率和像素平均強度變化率的理想期望值為99.609%和33.464%[22]。
分析表3可知,本文算法對圖像的微小變化很敏感,能有效地抗差分攻擊,圖像各層的像素變化率和像素平均強度變化率接近理想值。和其它文獻數(shù)據(jù)對比,像素變化率和像素平均強度變化率的數(shù)值略有不足,稍有差距,但數(shù)值大小接近期望值,具有很好的敏感性。
Table 3 Analysis of NPCR and UACI of image表3 圖像的NPCR和UACI值分析 %
在現(xiàn)實情況中,信息的傳輸容易受到各種干擾和攻擊,所以要求圖像加密算法具有較強的魯棒性。為了測試本文加密算法的抗噪聲攻擊性能,圖10對加密后的密文圖像添加了不同強度的高斯噪聲,圖10a為添加強度為0.2的高斯噪聲后的加密圖,從解密后的圖10b可以直觀地辨別圖像的主要信息,而增加強度為0.3的高斯噪聲后,圖像變得模糊,但是解密后的圖像依然可以分辨,因此可認為本文加密算法可以抵抗噪聲攻擊,具有一定的抗擊噪聲干擾能力。
Figure 10 Noise attack decryption map圖10 噪聲攻擊解密圖
實驗通過對加密圖像進行剪切來驗證該加密算法的抗剪切能力。圖11a對密文圖像進行25%的裁剪,解密圖像如圖11b所示,雖然解密后的圖像會出現(xiàn)噪聲,但不會影響圖像的整體輪廓。從圖11中可以看出,當密文在傳輸過程中遇到剪切干擾時,本文算法具有很好的安全性,其解密圖像可以分辨出原始面貌,由此得知算法具有更強的抵抗裁剪攻擊能力。
Figure 11 Cut attack decryption map圖11 剪切攻擊解密圖
對于加密系統(tǒng)的明文攻擊,選擇明文攻擊的威脅最大。選擇明文攻擊是指攻擊者利用已知加密算法,并且可任意選擇明文,通過對應的密文推導出中間密文。本文算法選擇利用選擇明文攻擊來測試加密圖像的安全性,將彩色圖像Peppers的第1個像素點加1,得到新的明文圖像,選擇像素值全為0的明文I={0,0,0,0},設云模型混沌序列F2={1,2,3,4},序列F3={5};置亂操作對像素值為0的明文無效,置亂后的密文依然為Z={0,0,0,0},再做卷積運算為-5,使像素值不為0,所以本文算法能有效抵抗選擇明文攻擊。
本文提出一種基于云模型Fibonacci混沌系統(tǒng)與矩陣卷積算法的彩色圖像加密算法,將廣義三階Fibonacci和云模型結(jié)合,提高了混沌系統(tǒng)的復雜性;同時加密算法將三通道圖放在同一平面里進行處理,降低了算法的計算強度和空間需求,通過卷積運算將置亂后的矩陣進行置換操作,降低了RGB相關(guān)性,提高了明文與密文關(guān)系復雜度。實驗結(jié)果表明,加密后圖像成功隱藏了圖像信息,無法辨認加密后的分布規(guī)律,并且可以有效抵抗干擾攻擊、明文攻擊等測試攻擊,具有加密安全性高的特點,擁有較高的使用價值。