陳子豪,苗 博,殷旭東
(常熟理工學(xué)院 計算機科學(xué)與工程學(xué)院,江蘇 常熟 215500)
隨著信息時代的到來,數(shù)字圖像成為網(wǎng)絡(luò)上經(jīng)常出現(xiàn)的信息形式之一,在諸如軍事協(xié)同作戰(zhàn)、場景監(jiān)控、電子政務(wù)等傳輸系統(tǒng)中,都需要可靠的圖像加密技術(shù),因此,對數(shù)字圖像的加密保護研究十分重要.
目前,對圖像加密研究最多的技術(shù)就是圖像的置亂算法[1]. 常見的圖像置亂方法有基于矩陣變換,如Arnold變換[2]、幻方變換等,它通過對圖像空間的重新分布來打亂各像素的次序,但是像素總數(shù)不變,直方圖也不變. 也有許多基于混沌系統(tǒng)[3-6]的加密算法,能夠同時改變像素值和像素位置,典型的有基于像素混排的多混沌圖像加密算法、基于混沌像素比特圖像置亂加密算法. 雖然這些方法都進行了比特級的圖像加密,但常常散亂不夠充分.
本文選擇的多混沌組合系統(tǒng)和分塊DNA數(shù)字編碼[7-8]可以對圖像進行更好的分塊散亂重組,以達到較大程度的置亂效果,并使圖像分塊依據(jù)確定性混沌隨機序列組合、像素值依據(jù)DNA規(guī)律編碼變化進一步加密,從而增大破解難度,是非常有效的數(shù)字圖像加密算法.
混沌是指出現(xiàn)在確定性系統(tǒng)中的一種不確定性的、偽隨機的過程,這種過程既非周期性又不收斂,是自然界中普遍存在的非線性現(xiàn)象,也是一種非線性動力系統(tǒng)中普遍存在的固有現(xiàn)象. 混沌系統(tǒng)對系統(tǒng)初值極為敏感,即初值發(fā)生微小擾動后系統(tǒng)經(jīng)過一段時間就會嚴重偏離原來的運動方向.
因此混沌系統(tǒng)能產(chǎn)生大量的、互不相關(guān)的、具有偽隨機性的混沌序列. 混沌加密的基本原理是利用混沌系統(tǒng)產(chǎn)生混沌序列作為密鑰序列,利用該序列對明文加密,密文經(jīng)信道傳輸,接收方用混沌同步的方法將明文信號提取出來實現(xiàn)解密.
改進型Logistic迭代[9-10]是一種拋物線混沌映射,是由一維Logistic迭代推導(dǎo)而來,但相比傳統(tǒng)Logistic映射迭代方法,改進型Logistic迭代達到混沌狀態(tài)速度更快,產(chǎn)生的混沌序列分布均勻,具有更好的偽隨機性,它按照式(1)方程進行反復(fù)迭代.
其中μ∈[0,2]被稱為Logistic參數(shù),保證xn∈[-1,1]. 研究表明,當(dāng)xn∈[-1,1]時,Logistic映射工作處于混沌狀態(tài),在μ的取值符合1.41<μ<=2的條件時,系統(tǒng)處于完全混沌的狀態(tài),此時迭代生成的值處于一種偽隨機分布的狀態(tài),這樣在確定足夠大的迭代次數(shù)n之后可以得到確定性的混沌序列.
超混沌Chen系統(tǒng)[11-12]具有復(fù)雜的混沌特性,利用超混沌Chen系統(tǒng)可以產(chǎn)生隨機性較好的隨機序列,超混沌Chen系統(tǒng)方程組:
DNA是生物學(xué)中染色體的主要化學(xué)成分,由核苷酸組成的,DNA序列由A(腺嘌呤)、G (鳥嘌呤)、C(胞嘧啶)和T (胸腺嘧啶)4種堿基排列而成. 其中A和T是互補的,G和C是互補的,采用0與1的互補關(guān)系與其對應(yīng)編碼,一共有4!=24種方案,在4個數(shù)字的二進制表示中00和11是互補的,01和10是互補的對應(yīng)到A與T、C與G互補,則最終只有8種編碼方案可以使用. 這8種編碼方案如表1所示.
與之對應(yīng)的DNA編碼的運算法則包括加法、減法、異或運算,按照對應(yīng)的DNA編碼共有00、01、10、11 4種編號,編號的加法運算產(chǎn)生的進位直接去除,減法則以補碼運算方式進行. 采用DNA編碼使得編碼簡單化,提高了編碼效率.
以明文圖像為灰度圖像為例,加密過程的分析流程、重要算法使用如圖1所示.
首先,根據(jù)明文圖像像素信息產(chǎn)生改進型Logistic和超混沌chen系統(tǒng)狀態(tài)初值,作為密鑰. 其次,利用改進型Logistic混沌迭代產(chǎn)生一維偽隨機序列,再將隨機序列轉(zhuǎn)換為與原圖大小相同的隨機矩陣. 再次,取明文圖像像素信息8位像素值的前4位產(chǎn)生chen超混沌系統(tǒng)狀態(tài)初值,以求解得到4個超chen混沌序列,再對數(shù)字圖像和隨機序列轉(zhuǎn)換的隨機矩陣進行均勻分塊,不足部分補0. 根據(jù)超混沌chen系統(tǒng)產(chǎn)生的隨機序列,以選擇明文圖像和隨機矩陣每個子塊的DNA編碼方式以及兩子塊間的DNA編碼運算方式. 最后,合并所有經(jīng)過加密的圖像子塊,使其失去本身圖像原有的面目,達到加密的效果.
圖1 加密過程使用的分析處理框圖
Logistc混沌映射初值x0根據(jù)原圖像計算得出表示在數(shù)字圖像(i,j)位置的像素值,SUM為圖像的大小,參數(shù)μ設(shè)定為1.66,接近2以達到混沌狀態(tài),此時初值x0范圍可知x0∈[-1,1]. 為避免計算機精度的影響,下文初值統(tǒng)一保留4位小數(shù).
超混沌Chen系統(tǒng)初值由明文圖像像素信息8位像素值的前4位產(chǎn)生,如方程組(3)所示.
通過將改進型Logistic混沌迭代和超混沌Chen系統(tǒng)初值與明文圖像的像素信息建立聯(lián)系,可以實現(xiàn)對同一數(shù)字圖像密鑰重建的目的. 在設(shè)置好各混沌系統(tǒng)初值之后,開始進行迭代產(chǎn)生偽隨機序列,對于圖像大小為SUM=M*N的數(shù)字圖像,要獲得具有較好隨機性長度為SUM的序列可設(shè)置改進型Logistic混沌迭代次數(shù)為2000+SUM次,利用式(1)進行迭代,最終結(jié)果去除前2 000次得到最終SUM長度的隨機序列L:
對于超混沌Chen系統(tǒng)產(chǎn)生的序列,利用方程組(2),并設(shè)置系統(tǒng)參數(shù)進行迭代得到混沌序列,迭代采用四階Runge-Kutta[13]方法. 本文中超混沌Chen系統(tǒng)控制參數(shù)設(shè)置a=35,b=3,c=12,d=7,k=0.3,為了得到較好的隨機序列,迭代次數(shù)設(shè)置為分塊數(shù)+2 000,最終利用方程組(3)初值迭代得到4個混沌序列再進行截取,去掉前2 000位,保留長度與分塊數(shù)相同的序列,4個序列分別與8、8、3、8數(shù)字相與,8代表8種DNA編碼和DNA解碼方式,3表示DNA的3種運算方式,利用最終得到的序列對分塊進行編碼、運算、解碼,最終組合分塊形成密文圖像.
解密過程便是加密過程的逆變換,只要得到正確的密鑰,便能通過密鑰進行相同的迭代產(chǎn)生確定的混沌序列,再變換運算符號如加法與減法步驟互換,最終組合分塊便能得到解密圖像.
圖2 原始圖片
圖3 加密后的圖片
圖4 加密前像素分布圖
圖5 加密后像素分布圖
實驗環(huán)境為: Intel(R) Core(TM) i5-8250U CPU@1.60 GHz,11.9.00 GB內(nèi)存, Windows 7操作系統(tǒng),MATLAB 7.0版本.
加密后的圖片呈現(xiàn)雪花狀,加密前后圖片對比如圖2、圖3所示,可見已經(jīng)完全看不出原圖的蹤影.
加密前后圖像的灰度直方圖如圖4、圖5所示. 圖像灰度值分布圖是反映圖像像素分布情況的一個重要指標(biāo). 一般來說,明文圖像可以真實地反映現(xiàn)實世界,所以它的灰度直方圖分布規(guī)律必然是非均勻的. 但對于理想密文圖像來說,相鄰像素間相關(guān)性極低,且它的灰度直方圖分布規(guī)律應(yīng)該是均勻的,否則,密碼分析者可能通過非均勻直方圖的分析來獲取明文圖像的某些統(tǒng)計信息,從而為破解算法提供幫助. 本圖像加密后的直方圖分布均勻,攻擊者無法獲取原始圖像的有關(guān)信息.
在圖像中,相鄰像素之間存在高相關(guān)性,所以可以通過一個像素的灰度值推斷出周圍像素的灰度值. 計算公式如下:
x、y為相鄰的兩個像素,cov(x,y)表示相關(guān)函數(shù),D(x)表示均方差.
本實驗加密前后的圖片相關(guān)性如表2所示.
對于明文圖像來說,相鄰像素點之間的相關(guān)性系數(shù)一般都接近于1(100%). 但是對于一個足夠好的圖像加密算法,密文圖像的相鄰像素點相關(guān)性系數(shù)(水平相關(guān)性、垂直相關(guān)性和對角線相關(guān)性)都應(yīng)該接近于0. 由實驗結(jié)果可知能滿足此要求.
表2 加密前后的圖片相關(guān)性
信息熵是衡量信息源不確定性的指標(biāo). 通常來講,信息熵越大則表明信息的不確定性越強. 其定義為是信源包含符號的總數(shù),是符號出現(xiàn)的概率. 經(jīng)計算,原始圖片信息熵=6.126 4,加密后圖片信息熵=7.999 1. 可以看出,加密后圖片信息熵十分接近理想信息熵8.
本系統(tǒng)加密圖像共有6個密鑰,6個密鑰的可改動范圍為:
改進型Logistic參數(shù):μ: 10-15,Logistic初值X0:10-16
Chen超混沌系統(tǒng)初值X1:10-16,X2:10-16,X3:10-16,X4:10-16
以改進型Logistic參數(shù)μ為例,參數(shù)μ只要改變大于等于10-15時(即μ原來為1.66,現(xiàn)在改為μ=1.660 000 000 000 001時),按原始密鑰解密后的圖像仍是不能辨認的雪花點. 由此可見,每次只輕微改變單個密鑰也無法恢復(fù)原始圖像,混沌算法具有很好的密鑰敏感性,同時也表明密鑰的空間大.
為了能夠有效抵御窮舉攻擊,加密算法應(yīng)該擁有足夠大的密鑰空間使得窮舉攻擊成功的概率盡量小,通常認為密鑰空間至少要達到2100. 本算法的密鑰空間可由上述各密鑰敏感性計算得出,密鑰空間為:1015×1016×1016×1016×1016×1016=1095≈2315,可見此加密算法可以較好抵御窮舉攻擊.
本文根據(jù)明文圖像像素信息產(chǎn)生改進型Logistic和超混沌chen系統(tǒng)狀態(tài)初值,作為加解密密鑰;采取多混沌系統(tǒng)混合,以分塊方式進行DNA編碼運算,結(jié)合混沌系統(tǒng)產(chǎn)生的偽隨機序列進行隨機選擇;最后,再合并所有經(jīng)過加密的圖像子塊,使其失去本身圖像原有的面目,達到加密的效果. 對加密前后的數(shù)字圖片像素分布相關(guān)性和信息熵進行分析. 結(jié)果表明,利用混合混沌系統(tǒng)和DNA編碼結(jié)合的方式對數(shù)字圖像加密效果優(yōu)良,密鑰敏感性強;密鑰的空間大,爆破難度很高;加密后像素值平均分布,能夠較好地掩蓋原圖像的像素規(guī)律,并且本加密算法的加解密密鑰可由原圖重復(fù)生成.