胡春杰,黃啟勝,陳 翠,嵇海祥,阮 聰
1(水利部南京水利水文自動化研究所,南京 210012)
2(江蘇南水科技有限公司,南京 210012)
3(云南省水文水資源局西雙版納分局,西雙版納 666100)
隨著數字技術、通信技術的不斷發(fā)展,數字圖像、視頻等多媒體交流形式在人們日常生活中扮著相當重要的角色[1].然而在通信傳輸過程中,這些信息的安全性面臨到巨大的威脅.相比現代數字圖像具有海量數據、高度相關性的特點,一些傳統(tǒng)的加密算法已不適用于圖像加密[2,3].由于混沌系統(tǒng)是非線性的動力系統(tǒng),具有初值敏感性、遍歷性、隨機性等特點,與圖像加密非常契合,被廣泛應用于圖像加密領域[4-9].
文獻[10]提出了一種多混沌映射的快速圖像加密算法,該算法加密效率較高.文獻[11]提出了一種利用復合混沌系統(tǒng)的加密算法,由于低維混沌系統(tǒng)控制參數和初始值個數少,安全性很低.文獻[12]采用超混沌系統(tǒng)進行圖像加密,密鑰空間大,安全性較高,但是單一的混沌系統(tǒng),算法復雜度低,不能滿足現代圖像加密的要求.文獻[13]采用模擬DNA生物操作的方式,通過偽DNA計算來實現信息加密,成為信息加密算法的新熱點.文獻[14]提出了結合混沌系統(tǒng)和DNA動態(tài)編碼的圖像加密算法,然而由于DNA運算規(guī)則單一,導致加密算法復雜度不夠.
結合上述,針對低維混沌系統(tǒng)和單一的DNA加密方案的空間小、復雜度低等問題,本文提出一種結合多混沌與DNA的彩色圖像加密算法,采用超混沌系統(tǒng)實現了多種DNA編碼方式加密.通過仿真實驗測試,本文提出的圖像加密算法具備足夠大的密鑰空間,大大地增強了復雜度,足以抵御各種攻擊,安全性更高.
Logistic映射是一個經典的非線性迭代方程,其數學表達式如式(1)所示:
其中,當3.5699<μ≤4時系統(tǒng)處于混沌狀態(tài),此時會產生具有隨機性、遍歷性的序列,如圖1所示.
圖1 系統(tǒng)狀態(tài)隨參數μ 的演化圖
Arnold映射是一種非線性二維映射方程[9],其公式定義如下:
其中,(x,y)為明文圖像的像素點,(x′,y′)為置亂圖像的像素點.
Chen超混沌系統(tǒng)方程如下:
式中,x,y,z,w是系統(tǒng)的狀態(tài)變量;a,b,c,d,e是系統(tǒng)的控制參數.當a=35,b=3,c=12,d=7,e處于[0.085,0.798]區(qū)間內,Chen系統(tǒng)處于超混沌狀態(tài).其混沌吸引子圖如圖2所示.
圖2 吸引子圖
DNA中含4種不同的氮堿基分別是腺嘌呤A、胸腺嘧啶T、胞嘧啶C和鳥嘌呤G.根據堿基互補配對原,中A和T互補配對,C和G互補配對,而數字圖像中像素點的值可以用二進制表示,在二進制中0和1是互補的,因此00和11是互補的,01和10是互補的.基于這種思想,結合二進制和DNA編碼共有8種符合堿基編碼規(guī)則,如表1所示.按照表1的方式,A用00表示,T用11表示,C用01來表示,G用10來表示.DNA的運算規(guī)則如表2~表4所示.
本文算法分成2個部分:Arnold置亂部分和DNA加密部分.假設明文圖像的大小為M×N,具體步驟如下:
表1 編碼規(guī)則方式
表2 DNA加法運算
表3 DNA減法運算
表4 DNA異或運算
第1步:輸入原始圖像,并進行R、G、B分層.
第2步:對原始明文圖像的R、G、B分量分別進行Arnold變換置亂,得到R、G、B共3個分量的Arnold置亂圖.
第3步:將Logistic混沌系統(tǒng)方程迭代300次,以減少暫態(tài)效應帶來的不良影響,設定初值和參數,連續(xù)迭代式(1)方程得到長度為M×N的序列.
第5步:對3個分量的Arnold置亂圖和隨機矩陣R均勻分成4×4的小塊.
第6步:設定好Chen系統(tǒng)的4個初值x(0)、y(0)、z(0)和w(0),利用四階龍格-庫塔算法對Chen系統(tǒng)方程求解可得到3個混沌序列{x(k)}、{y(k)}、{z(k)}.
第7步:將置亂圖像矩陣各分塊內所有像的灰度值轉化為二進制數;利用序列x(k)變換后的值,按表1的第x(k)的DNA編碼規(guī)則進行DNA編碼,x(k)按照式(5)進行變換.
同理,將隨機矩陣各分塊內所有像素的灰度值轉化為二進制數;利用序列y(k)變換后的值,按表1的第y(k)的DNA編碼規(guī)則進行DNA編碼,y(k)按照式(6)進行變換.
當z(k)=0時,則圖像矩陣與隨機矩陣分塊內所有像素一一對應進行DNA加法運算.
當z(k)=1,則圖像矩陣與隨機矩陣分塊內所有像素一一對應進行減法運算.
當z(k)=2為則圖像矩陣與隨機矩陣分塊內所有像素一一對應進行異或運算.
第9步:將3個密文R、G、B分量合成,得到最終密文圖像.
解密算法是加密算法的反向過程,只要在獲取正確密鑰條件下就能恢復出原始明文圖像.
本文算法采用大小為256×256×3的Lena彩色圖像作為樣本原始圖像,測試壞境為Windows10 64位系統(tǒng)壞境,在Matlab 2016a軟件平臺下進行仿真實驗,運行得到的加密圖像,如圖3所示.
圖4分別為Lena圖像R、G、B信道的明文和密文灰度直方圖.從圖4可知,加密前后圖像直方圖變化很大,明文圖像的直方圖分布不均,密文圖像的直方圖分布平均,有效地隱藏了原始圖像的灰度信息,從密文的直方圖上無法得到原始圖像的統(tǒng)計特性.
一個良好的加密算法,須具有盡可能大的密鑰空間[15].本文加密算法采用Logistic映射的有1個控制參數和1個初始值,采用Chen系統(tǒng)有4個控制參數和4個初始值.假如仿真實驗計算機的每個參數精度都可達1 0-16,其密鑰空間為1 0160,此外還有Arnold變換控制參數,想通過窮舉攻擊破譯密文圖像,成功的概率是微乎其微的.
圖3 圖像加密結果
圖4 圖像加密前后的灰度值
信息熵是衡量信源隨機性的重要參數,圖像混亂越厲害,信息熵越接近理想值[16],其計算公式為:
其中,P(mi)是信源取第i個符號mi的概率,圖像灰度級為256的信息熵應該是8.由式(8)計算可得密文圖像的信息熵為7.9980,非常接近于理論值8,可以得出密文圖像灰度分布是非常均勻的,整個加密系統(tǒng)能夠有效地抵御惡意攻擊.
為了分析加密前后圖像相鄰像素之間的相關性,分別從加密前后圖像隨機水平,垂直,對角3個方向上選取2000對相鄰的像素,使用式(9)計算像素相關性:
式中,n是像素點的個數;E(x),E(y)分別是x,y的期望,cov(x,y)是x,y的協(xié)方差,r是相關系數.從表5可知,原始明文圖像的相鄰像素高度相關,其3個相關系數接近1,而密文圖像的3個相關系數趨近于0,說明密文圖像的相鄰像素點基本不相關了.與此同時比較其他算法[7,9],得到本文加密算法的相關系數r更小.
圖5 加入噪聲后解密圖像
表5 像素相關系數
密文圖像在傳輸過程中經常受到噪聲,造成圖像失真.為了檢測算法抗噪聲性能,在密文圖像上加了分差不同的高斯噪聲.從圖5可以看出,隨著高斯噪聲分差增加,解密圖像局部越來越模糊,但是依然可以看清楚圖像的輪廓信息,可見本文算法具有較好的抗噪聲性.
本文提出一種結合多混沌與DNA的彩色圖像加密算法,采用超混沌系統(tǒng)實現了多種DNA編碼方式加密.通過仿真實驗測試,本文加密算法密鑰空間較大,大大地增強了復雜度,足以抵御各種攻擊,安全性更高,抗噪聲性較好,適合用于圖像的加密傳輸,具有良好的實用價值和應用前景.