圖像文件加密算法之DNA編碼和斜帳篷映射
針對(duì)Logistic映射應(yīng)用于罔像加密時(shí)迭代點(diǎn)比較集中、遍歷性較差的問題,提出一種改進(jìn)的基于斜帳篷映射與DNA理論的圖像文件加密算法。
一、斜帳篷映射
斜帳篷映射是一種簡(jiǎn)單的混沌映射,它的表達(dá)式如下:
當(dāng)a∈(0,1),Xn∈(0,1),n=l,2,…時(shí),系統(tǒng)處于混沌狀態(tài)。對(duì)比Logistic映射Xn+l =HXn(l-Xn),當(dāng)3.569 945<μ≤4,xn∈(0,1)時(shí),系統(tǒng)進(jìn)入混沌狀態(tài)。由此可見,斜帳篷映射有更大的參數(shù)取值范圍,且變量密度比Logistic映射穩(wěn)定。
對(duì)斜帳篷映射和Logistic映射分別進(jìn)行仿真得到其遍歷圖,由圖l和圖2可見,相比Logistic映射中迭代點(diǎn)在區(qū)間兩側(cè)比較集中,斜帳篷映射的迭代點(diǎn)分布更加均勻,遍歷性也更好。故本文選取該映射產(chǎn)生混沌序列。
二、DNA編碼
本文采用DNA編碼理論對(duì)像素位置已被置亂的圖像進(jìn)行編碼。將每一個(gè)像素用8位二進(jìn)制表示,每2位用一個(gè)DNA堿基(A,C,G,T)表示。又因?yàn)槎M(jìn)制數(shù)字0與1是互補(bǔ)的,所以00與11互補(bǔ),01與10互補(bǔ)。由此可得到8種編碼規(guī)則,見表l。
在這8種規(guī)則的選取上,采用隨機(jī)函數(shù)生成一個(gè)(0,1)間的隨機(jī)數(shù),使8種規(guī)則分別對(duì)應(yīng)(0,1)間的8個(gè)區(qū)域,例如:(0,0.125)對(duì)應(yīng)規(guī)則1,(0.125,0.25)對(duì)應(yīng)規(guī)則2,……。不同區(qū)間的隨機(jī)數(shù)對(duì)應(yīng)不同的編碼規(guī)則,進(jìn)而得到不同的加密圖像。
三、基于斜帳篷映射和DNA編碼的圖像文件加密算法
利用Logistic混沌序列置亂像素位置和像素灰度值。利用混沌映射對(duì)像素位置和像素灰度值進(jìn)行雙重置換。然而僅改變像素位置或像素值的算法容易導(dǎo)致密鑰空間小、易被窮舉攻擊破譯等問題;并且Logistic混沌序列的分布不均勻,會(huì)延長搜索時(shí)間。
本文提出一種改進(jìn)的斜帳篷映射與DNA編碼結(jié)合的算法。利用混沌序列置亂圖像的像素位置,之后結(jié)合混沌序列和DNA編碼來置亂像素的值。
算法具體步驟如下:
(1)輸入8位灰度圖像A(m,n),m,n為圖像的行列A維數(shù)。
(2)給定初值為x1,y1,系統(tǒng)參數(shù)為a1,a2,由式(l)迭代N-1次(N=mxn),產(chǎn)生2組序列{Xm),{yn},并按升序排列,得到2組新序列{Xm’)},{yn’)}。
(3)用序列{Xm’)},{yn’)}中各元素的下標(biāo)索引替換原序列中的該元素,得到序列{Xm’')},{yn’')};用這2組新序列產(chǎn)生置亂地址變換碼,得到灰度圖像B(m,n)。
(4)將圖像B轉(zhuǎn)換為一個(gè)二進(jìn)制序列S,像素灰度值用8位二進(jìn)制數(shù)表示,則length(S)=mxnx8,再利用隨機(jī)函數(shù)選取一種DNA編碼規(guī)則對(duì)序列S進(jìn)行編碼,得到DNA序列K,則length(K)=mxnx4。
(5)給定初值ZI,以及系統(tǒng)參數(shù)a3,由式(1)迭代length(K)-1次,產(chǎn)生一組新的混沌序列,再利用閾值函數(shù)f(x)將此混沌序列二值化,若混沌序列中zi =1,則K中對(duì)應(yīng)位置堿基取補(bǔ),反之不變。
(6)對(duì)DNA序列利用隨機(jī)函數(shù)選擇一種DNA編碼規(guī)則進(jìn)行解碼,將其還原為二值序列,重構(gòu)矩陣得到加密圖像。
定義閩值函數(shù)f(x),取閾值為0.5,則f(x)定義如下:
另外,由于a= 0.5時(shí),斜帳篷映射容易趨于周期性,或收斂于穩(wěn)定值0,因此在a=0.5時(shí)為迭代點(diǎn)添加擾動(dòng),使其跳出周期點(diǎn),保證混沌映射能更好地遍歷。
Logistic函數(shù)或Logistic曲線是一種常見的S形函數(shù),它是皮埃爾·弗朗索瓦·韋呂勒在1844或1845年在研究它與人口增長的關(guān)系時(shí)命名的。廣義Logistic曲線可以模仿一些情況人口增長(P)的S形曲線。起初階段大致是指數(shù)增長;然后隨著開始變得飽和,增加變慢;最后,達(dá)到成熟時(shí)增加停止。






