毛彥斌,張選平,楊曉剛
?
偽DNA密碼圖像加密算法研究
毛彥斌,張選平,楊曉剛
隨著計算機網絡的快速發展,在日常生活中用網絡進行數字圖像傳輸已經變得非常普遍。然而,由于網絡的開放性和自身協議中存在的某些缺陷,數字圖像在網絡上傳輸的安全問題已經成為人們研究的熱點。在眾多的數字圖像安全保護中,圖像加密是一種行之有效的方法。相對于文本數據,數字圖像有數據量大、冗余度高、相關性強等特點。因此,傳統的諸如DES、IDEA和AES等加密方法并不適合數字圖像的加密[1-2]。近年來,學者們提出了很多關于圖像加密的新算法。例如,基于混沌理論的圖像加密方法[3-6]和基于DNA序列的圖像加密方法[7]。基于混沌理論的圖像加密算法主要分為像素位置置亂和像素值擾亂兩個過程[8-10]。因簡單置亂不能改變原始圖像像素值的分布規律,所以不能有效抵抗統計攻擊,而只進行擾亂,不進行像素位置置亂,則很難抵抗剪切攻擊。所以,很多學者在加密過程中將兩者結合起來使用,以達到更高的安全性。高維混沌系統由于具有密鑰空間大、對初值敏感性高和混沌特性更加復雜等優點,因此被廣泛應用于圖像加密中。Wang等提出了一種基于高維混沌系統的圖像加密算法[11],仿真實驗表明,該算法密鑰空間大、對密鑰敏感、安全性高。隨著NDA計算的研究和發展,DNA加密作為一個新的研究領域倍受學者們的青睞。Celland等提出了一種新的加密方法[12],用DNA運算代替了傳統的二進制加密;Shyam等提出了一種新的基于DNA計算的加密算法[13],他們用自然的DNA序列對原始信息進行編碼,然后進行異或操作,以此實現對文本的加密。以上加密都是基于DNA生物操作,對實驗環境要求苛刻,實驗設備昂貴,在一般實驗室很難完成相應的實驗。近年來,Kang提出一種偽DNA加密方法[14],主要利用生物分子學中心法則的基本思想來實現信息的加密,但此方法只能對文字進行加密,不能對圖像進行加密。為了克服以上基于混沌映射和DNA序列加密的缺點,本文采取偽DNA密碼思想與高維混沌映射相結合的方法對圖像進行加密。
1.1 混沌序列
本文研究的圖像加密算法中涉及到二維Logistic混沌映射、Chen混沌映射、PWLCM混沌映射3個混沌映射,下面分別介紹這3個混沌映射。
二維Logistic映射形式為
(1)
式中:x和y是狀態變量,x、y∈(0,1);μ1、μ2和γ是控制參數,當μ1,μ2∈[0.89,0.9]、γ∈(0,1)時,系統處于混沌狀態。
Chen混沌映射是一種三維的混沌映射,其映射
形式為

(2)
式中:x、y和z是狀態變量;a、b和c是正實數。當a=35、b=3、c∈[20,28.4]時,混沌系統便進入混沌狀態。
PWLCM混沌映射也是一種典型的混沌映射,其映射形式為
(3)
式中:μ∈[0,1];xn∈(0,1),n=0,1,2,…。當0≤μ<0.5時,系統進入混沌狀態;當0.5≤μ≤1時,系統逐漸進入分岔期,直至收斂為一點。
1.2DNA序列運算規則
1.2.1 DNA編碼 單鏈DNA序列由腺嘌呤A、鳥嘌呤G、胞嘧啶C和胸腺嘧啶T 4種堿基組成[15],其中A與T、C與G互補。算法中用A、C、G、T對四進制序列進行編碼,共有24種編碼組合。由于四進制0與3互補,1與2互補,所以在24種編碼中,只有8種編碼滿足堿基互補配對原則。編碼方法如表1所示。

表1 DNA序列的8種編碼方法
1.2.2DNA序列的截取與延長操作 P1、P2均是一條完整的DNA序列,S1、S2和S3、S4分別是P1和P2的子序列,P3是將P1的子序列S2截取后得到的新DNA序列,P4是將P1的子序列S2連接到P2后得到的新DNA序列。
1.2.3DNA運算法則 隨著DNA計算的發展,一些學者提出了DNA序列的生物和代數運算[16-17]。由于DNA序列有8種編碼方法,因此在進行DNA異或運算時也有8種不同的結果。本文采用0-A,1-C,2-G,3-T的映射規則進行DNA編碼,具體運算規則如表2所示。

表2 DNA序列異或運算法則
本文算法的加密流程如圖1所示,加密過程為:利用外部密鑰和圖像尺寸共同產生混沌系統的初始條件和控制參數;利用二維Logistic混沌系統產生的偽隨機數對原始圖像進行置亂;將置亂圖像轉換為四進制序列,利用PWLCM混沌系統產生的偽隨機數和四進制序列值對四進制序列進行DNA動態編碼;利用Chen混沌系統產生一個與四進制序列等長的隨機DNA序列,并與編碼后的DNA序列進行異或運算及截取延長操作;選擇一種DNA解碼方式進行解碼得到加密圖像。
2.1 混沌系統初始條件的產生
混沌系統的初始條件是根據320位的外部密鑰和圖像尺寸共同產生的,初始條件包括初始狀態變量x0、y0、p0、q0、r0、k0,控制參數包括μ1、μ2、μ3。外部密鑰被分成8bit長的塊Ki(i=0,1,…,40)。設置C=0,用C=Ki(C?1)重復進行迭代操作,其中表示異或操作,x?y表示x向右移y個比特位;然后,通過Ki=Ki(C?3)對塊Ki(i=0,1,…,40)進行修正。
計算混沌系統的初始條件,需產生9個數Qi(i=0,1,…,8),計算公式為
(4)
式中:W=n+248,n表示原始圖像的尺寸。
混沌系統的初始條件為:x0=Q0,y0=Q1,μ1=0.89+0.01Q2,μ2=0.89+0.01Q3,p0=Q4,q0=Q5,r0=Q6,k0=Q7,μ3=0.5Q8。(x0,y0,μ1,μ2)為二維Logistic混沌映射的初始狀態和控制參數;(p0,q0,r0)為Chen混沌系統的初始狀態;(k0,μ3)為PWLCM混沌映射的初始狀態和參數。

圖1 偽DNA密碼圖像加密算法流程圖
2.2 置亂算法
置亂算法的具體步驟如下:
步驟1 設置二維Logistic混沌映射初始狀態(x0,y0),系統參數(μ1,μ2),從迭代的M步開始取(x0,x1,…,xi)、(y0,y1,…,yi),i=0,1,…,mn-1;
步驟2 根據zi=αxi+(1-α)yi產生新的偽隨機序列(z0,z1,…,zi),i=0,1,…,mn-1,參數α∈(0,1);


步驟5 將原始圖像矩陣I轉換為一維數組Ii,i=0,1,…,mn-1,而xi又對應位置wi,將原始圖像一維數組I(i)用對應的I(wi)來替換得到置亂后的一維數組I′。
2.3 DNA動態編碼
DNA動態編碼的具體步驟如下:
步驟1 設置PWLCM混沌映射的初始狀態(K0,μ3),從迭代的第M步開始取(k0,k1,…,ki),i=0,1,…,4mn-1;
步驟2 將ki隨機數按照Vi=mod(floor(ki×1015),M×N)進行計算得到整數序列Vi,其中mod()為取模函數,floor()為取下整函數;
步驟3 將置亂后的圖像轉換為四進制序列Ri,i=0,1,…,4mn-1;

算法加密具體過程步驟如下:
步驟1 輸入待加密的8位灰度圖像I(m,n),(m,n)為原始圖像I的行數和列數;
步驟2 設置二維Logistic混沌映射的初始狀態(x0,y0),系統參數(μ1,μ2),從迭代的第M步開始取(x0,x1,…,xi)和(y0,y1,…,yi),i=0,1,…,mn-1;
步驟3 根據式(7)產生新的偽隨機序列(z0,z1,…,zi),i=0,1,…,mn-1;


步驟6 將原始圖像矩陣I轉換為一維數組Ii,而xi對應位置wi,故可以將原始圖像一維數組I(i)用對應的I(wi)來替代,得到置亂后的一維數組I′;
步驟7 設置PWLCM混沌映射的初始狀態(k0,μ3),從迭代的第M步開始取(k0,k1,…,ki),i=0,1,…,4mn-1;
步驟8 將ki隨機數進行計算得到整數序列Vi;
步驟9 將置亂后的圖像轉換為四進制序列Ri,i=0,1,…,4mn-1;
步驟10 根據四進制序列第一個值R0和整數V0計算S值,依據S值選擇相應的編碼方式對四進制序列第一個值進行編碼得到C0;
步驟11 對四進制序列其他值進行DNA編碼,得到動態編碼后的DNA序列G;
步驟12 利用三維Chen混沌映射分別以初值(p0,q0,r0),從迭代的第L步開始取(pi,qi,ri)序列(i=0,1,…,(4mn-1)/3),產生一維隨機序列fi(i=0,1,…,4mn-1),利用fi產生一個DNA序列T,將T與G進行異或運算得到G′
(5)
步驟13 選擇一種解碼方式對G′進行DNA解碼得到四進制序列R′;
步驟14 根據R′值大小進行截取延長操作,并將截取延長后的四進制序列轉換為十進制矩陣,得到最終加密圖像。
3.1 實驗結果
為了測試本文算法的性能,我們選取6個灰度級為256,大小分別為128×128、256×256、512×512、102 4×102 4的樣本圖像,實驗用圖如圖2所示。

在Matlab2012環境下,對512×512的莉娜灰度圖像進行加解密實驗。加密和解密圖像如圖3所示。

(a)原始圖像 (b)密文圖像 (c)解密圖像圖3 加密和解密圖像
3.2 置亂度定量分析
本文在對加密圖像置亂度性能參數進行分析時,采取不動點比、灰度變化平均值、信息熵以及局部信息熵等方法來檢驗算法的置亂效果,下面分別介紹4種置亂度評價參數。
(1)設P=(pij)M×N表示大小為M×N的原始圖像,C=(cij)M×N表示大小為M×N的加密圖像,其中pij和cij是圖像像素在位置(i,j)上的像素值。
若圖像P中不動點占所有像素點的百分比用B(P,C)表示,則不動點比表示式為
(6)

(2)設P=(pij)M×N和C=(cij)M×N分別表示大小為M×N、灰度級為V的明文圖像和密文圖像,用G(P,C)表示兩幅圖像的灰度變化平均值,計算公式為
(7)
(3)信息熵是描述在一個給定的系統中不確定性或隨機性的程度。計算公式為
(8)
式中:2N是總的樣本數;mi∈m;p(mi)表示樣本mi的概率分布。
(4)加密圖像的局部隨機性可以通過局部信息熵來測試[16]。(k,TB)局部信息熵定義為
(9)
式中:Si表示有TB個像素隨機選擇的互不重疊的圖像塊。文獻[16]建議取k=30,TB=1 936。
對于加密理想的圖像,不動點比在0.40%以內,灰度變化平均值差值在0.5以內,信息熵在7.996以上,局部信息熵在7.9以上。
下面以標準的512×512莉娜圖像為測試圖像,分別選取5組不同的密鑰對測試圖像進加密,得到5幅加密圖像然后進行分析評價,表3給出了分析結果。
從表3可以看出,不動點比、灰度變化平均值、信息熵和局部信息熵4個置亂度評價參數均取得了比較理想的值。在5組數據中,每幅加密圖像的不動點比都比較小,均沒有超過0.4%;從明文圖像與密文圖像的差值變化情況來看,在不同密鑰條件下,5幅密文圖像與明文圖像的灰度變化平均值變化非常均勻,灰度變化平均值在72.7~73.1之間,圖像的最大灰度變化平均值與最小灰度變化平均值之差沒有超過0.5。從5組數據中可以看出:加密圖像和原始圖像的灰度差是均勻變化的;5組密文信息熵均超過7.996,非常接近8的理想值。由此可見:密文圖像的灰度值分布非常均勻;圖像的局部信息熵均在7.9左右,因此本算法加密的密文圖像有很好的局部隨機性。綜上所述,本算法所得加密圖像置亂效果較好,安全性較高。

表3 置亂度評價參數
3.3 安全性分析

(a)莉娜 (b)莉娜1 (c)圖4a和b的差值圖

(d)莉娜加密圖像(e)莉娜1加密圖像(f)圖4d和e的差值圖圖4 密文差值圖
3.3.1 差分攻擊分析 差分攻擊的手段主要是將原圖像做細微改變,然后用相同的密鑰分別對原圖像和修改后的圖像進行加密,通過比較和統計兩幅加密圖像之間的差別,找出明文圖像和密文圖像之間的規律和聯系,以此來破解算法。因此,一個好的加密算法應該能夠有效地抵抗差分攻擊。本文算法中,明文圖像像素即使發生1bit的變化,所加密的圖像也會與原始圖像加密的密文圖像截然不同。為了測試算法的明文敏感性,實驗中將莉娜圖像(75,480)坐標處的像素點設置為0,其余像素點不變,得到改變后的圖像莉娜1如圖4所示。然后,用相同的密鑰對莉娜和莉娜1進行加密,得到密文圖像C1和C2。
加密算法中明文的敏感性通常用像素變化率T和歸一化平均變化強度U來計算。假設C1和C2僅是1 bit不同的明文圖像加密得到的密文圖像。c1(i,j)和c2(i,j)分別代表密文圖像C1和C2在第i行、第j列的灰度值,則T和U的計算公式為
(10)

(11)
式中:abs()表示取絕對值。如果c1=c2,D(i,j)=0;否則,D(i,j)=1。理想的加密算法,像素變化率值大約是99.6%,歸一化平均變化強度大約是33.46%。
實驗中,隨機選擇原始圖像的一個像素進行改變得到改變后的圖像,然后用相同的密鑰對原始圖像和改變后的圖像進行加密,并計算兩個密文圖像的像素變化率和歸一化平均強度。對于圖2中的樣本,每個樣本測試1 000次。表4分別給出了每個樣本的T和U的最大值、最小值和平均值。從表6中可以看出,用本文提出的加密算法加密的圖像的T值均在99.5%以上,U值均在33.2以上,非常接近理想值。也就是說,在相同的密鑰條件下,即使原始圖像改變1 bit,加密的圖像與原始圖像加密的圖像也會截然不同。因此,本文算法有良好的雪崩效應,攻擊者試圖利用差分攻擊的方法對算法或加密圖像進行解密幾乎是不可能的。

表4 明文敏感性分析表 單位:%
3.3.2 密鑰空間分析 密鑰空間的大小與能否抵抗窮舉攻擊有很大關系。因此,為了抵抗窮舉攻擊,一個好的圖像加密算法應該有足夠大的密鑰空間,而且加密算法對密鑰也要極其敏感。本文算法中,密鑰空間為320 bit,其密鑰空間是2320≈2.135 9×1096。根據目前計算機雙精度浮點數的精度,我們取8 B、15 bit有效數字進行分析,設嘗試一次破解所需時間的數量級為1 ms,則分析密鑰空間窮舉破解所需時間約為6.16×1085a。因此,本文算法密鑰空間是足夠大的,能夠有效抵抗窮舉攻擊。
3.3.3 統計性分析 一個理想的加密算法要能夠抵抗統計攻擊。為了更加科學地驗證和分析算法的加密效果及安全性,我們從直方圖、卡方值、密文圖像相鄰像素之間的相關性3個方面來分析加解密圖像。

(a)原始圖像 (b)原始圖像直方圖

(c)加密圖像 (d)加密圖像直方圖圖5 原始圖像與加密圖像直方圖
圖像直方圖表征圖像像素的分布情況,它是圖像的重要統計特性之一。作為評價圖像加密效果的標準之一,加密后的圖像直方圖變化越大,與原始圖像差別越大,原始圖像的視覺特征就越不明顯。通常情況下,認為直方圖越均衡,加密效果越好。圖5顯示了大小為512×512的莉娜原始圖像和加密圖像的直方圖。從直方圖來看,莉娜原始圖像像素比較集中,(0,255)的兩端像素分布比較少,而中間分布的較多,密文圖像的灰度值分布相對比較均衡,基本接近理想的灰度值分布。因此,攻擊者很難利用像素灰度值的統計特性得到有用的信息。圖像像素值分布的均衡程度也可用卡方值χ2測試來進行分析,一個灰度級為256的圖像的χ2計算公式為
(12)
式中:ni表示灰度為i的像素出現的頻率;n/256是每個灰度級出現的期望頻率。對于灰度級為256的圖像,理想的加密圖像卡方值應小于χ2(0.05,255)=293.5。
不同圖像的明文圖像和密文圖像卡方值如表5所示,從表中可以看出,明文圖像的卡方值非常大,而每個密文圖像的卡方值均小于293.5,表明密文圖像的直方圖沒有明顯波峰,像素值分布比較均衡。原始圖像像素間的相關性很高,為了抵抗統計攻擊,必須降低加密圖像的相關性。實驗中,我們分別從原始圖像和加密圖像中隨機選取在水平方向、垂直方向以及對角線方向上各1 000對像素點,然后計算各個方向的相關性,即

表5 卡方值分析表
(13)

原始圖像和加密圖像相鄰像素的關聯度如表8所示。一幅自然圖像相關性應在0.9以上,接近1,效果理想的加密圖像相關性應在0.01以下,接近0。
從表6可以看出,明文圖像無論水平、垂直、對角線方向的兩個相鄰像素的相關性都接近于1,像白圖和黑圖兩幅特殊單色圖像,各方向相關性都等于1,說明原始圖像相關性非常強。密文圖像無論水平、垂直還是對角線方向,兩個相鄰像素之間的相關性都接近于0,表明原始圖像經過加密以后,圖像之間的相關性變得非常小,說明本文算法有很強的抵抗統計攻擊的能力。

表6 相關性分析表
3.3.4 加密速度分析 一個好的加密算法不僅要有好的安全性,也要盡可能滿足實時性的要求。仿真實驗中,我們用Matlab2012在主頻為3.10 GHz、內存為8 GB的win7操作系統下,對不同尺寸的灰度圖像進行加密速度測試,每組測試進行100次實驗,然后取加密時間的平均值,實驗結果如表7所示。

表7 加密速度分析表 單位:s
本文針對現有基于DNA序列的圖像加密算法對實驗條件要求苛刻、實驗難以實現的不足,結合高維混沌系統和偽DNA密碼思想的特點,提出了一種基于偽DNA密碼思想的圖像加密算法。將DNA加密的一些基本思想與混沌系統結合使用,增加了密文圖像的安全性。針對靜態DNA編碼對原始圖像進行編碼不能有效抵抗差分攻擊和統計攻擊的不足,本文算法在編碼過程中采用動態DNA編碼方式,結合原始圖像信息和混沌系統產生的隨機數來選擇編碼規則;同時,根據編碼后的密文數值對DNA序列進行延長截取操作,使密文圖像安全性進一步提高。仿真實驗結果表明,本算法具有較好的安全性和較快的加密速度,能夠抵抗枚舉攻擊和統計攻擊,適用于軍事、醫療、司法等機密圖像的保密存儲和網絡傳輸。
[1] LI S, CHEN G, CHENG A, et al. On the design of perceptual MPEG-Video encryption algorithms [J]. IEEE Trans Circuits Syst Video Technol, 2007, 17(2): 214-223.
[2] ZHANG G, LIU Q. A novel image encryption method based on total shuffling scheme [J]. Optics Communications, 2011, 284(12): 2775-2780.
[3] WANG Z, HUANG X, LI Y, et al. A new image encryption algorithm based on the fractional order hyperchaotic Lorenz system [J]. Chinese Physics: B, 2013, 22(1): 010504.
[4] ZHU C. A novel image encryption scheme based on improved hyper-chaotic sequences [J]. Optics Commu-nications, 2012, 285(1): 29-37.
[5] LIAN S G. A block cipher based on chaotic neural networks [J]. Neurocomputing, 2009, 72(4): 1296-1301.
[6] FU C, ZHU Z. Chaotic image encryption scheme based on circular bit shift method [C]∥The 9th International Conference for Young Computer Scientists. Piscataway, NJ, USA: IEEE, 2008: 3057-3061.
[7] WEI X, GUO L, ZHANG Q, et al. A novel color image encryption algorithm based on DNA sequence operation and hyper-chaotic system [J]. Journal of Systems and Software, 2012, 85(2): 290-299.
[8] ZHANG G, LIU Q. A novel image encryption method based on total shuffling scheme [J]. Optics Communications, 2011, 284(12): 2775-2780.
[9] LIAN S G, SUN J S, WANG Z Q. A block cipher based on a suitable use of the chaotic standard map [J]. Chaos, Solitons & Fractals, 2005, 26(1): 117-129.
[10]CELLAND C T, RISCE V, BANCROFT C. Hiding messages in DNA microdots [J]. Nature, 1999, 399(6736): 533-534.
[11]SHYAM M, KIRAN N, MAHESWARAN V. A novel encryption scheme based on DNA computing [J]. Nonlinear Dynamics, 2007, 23(1): 142-150.
[12]KANG N. A pseudo DNA cryptography method [EB/OL]. [2014-11-12]. http:∥arxiv.org/pdf/0903.2693v1.pdf.
[13]WATSON J D, CRICK F H. A structure for deoxyribose nuclei acid [J]. Nature, 1953, 171 (4356): 737-738.
[14]GABORITP, KING O D. Linear constructions for DNA codes theory Compute [J]. Nonlinear Dynamics, 2005, 334(1): 99-113.
[15]KING O D, GABORIT P. Binary templates for comma-free DNA codes [J]. Discrete Appl Math, 2007, 155(1): 831-839.
[16]WU Y, ZHOU Y, SAVERIADES G, et al. Local Shannon entropy measure with statistical tests for image randomness [J]. Information Sciences, 2013, 222(2): 323-342.
[17]XUE X, ZHANG Q, WEI X, et al. An image fusion encryption algorithm based on DNA sequence and multi-chaotic maps [J]. Journal of Computational and Theoretical Nanoscience, 2010, 7(2): 397-403.
[18]ZHANG Q, GUO L, WEI X P. A novel image fusion encryption algorithm based on DNA sequence operation and hyperchaotic system [J]. Optik, 2013, 124(18): 3596-3600.
(編輯 趙煒)
(西安交通大學電子信息與工程學院,710049,西安)
針對現有基于DNA序列的圖像加密算法實驗環境要求苛刻、難于實現的不足,根據DNA加密的基本思想,提出了一種偽DNA密碼圖像加密算法。該算法首先利用二維Logistic混沌序列對原始圖像進行位置置亂,打亂像素之間的分布規律;然后,將置亂圖像轉換為四進制序列,根據事先定義的編碼規則采用動態DNA編碼方法將四進制序列轉換為DNA序列;利用三維Chen混沌系統產生與四進制序列相同大小的DNA序列,將四進制編碼的DNA序列和三維Chen混沌系統生成的DNA序列按照DNA異或規則進行異或運算;最后,進行截取延長操作并進行DNA解碼重組得到加密圖像。實驗結果表明,該算法不僅容易實現,而且加密速度快、安全性高,可用于軍事、醫療、司法等涉及個人和單位隱私的數字圖像的保密存儲和網絡傳輸。
DNA序列;動態編碼;混沌系統;圖像加密
A Novel Image Encryption Algorithm Based on Pseudo DNA Coding
MAO Yanbin,ZHANG Xuanping,YANG Xiaogang
(School of Electronics and Information Engineering, Xi’an Jiaotong University, Xi’an 710049, China)
Aiming at the fact that existing image encryption algorithms based on DNA sequence have strict experimental conditions and are difficult to implement, an image encryption algorithm based on pseudo DNA coding is proposed combining DNA coding and chaotic system. Firstly, the original image is scrambled by using two-dimensional chaotic system. Secondly, the scrambled matrix is transformed into quarternary sequence which is then converted to DNA sequence by using dynamic DNA coding method. Thirdly, generating a random DNA sequence by three-dimensional chaotic system, with the same size as the quarternary sequence. Then, implementing DNA XOR operation on the quarternary DNA sequence and the DNA sequence generated by three-dimensional chaotic system, the encrypted image is obtained by decoding and reorganization. The simulation results and analysis show that the algorithm has not only good encryption effect but also fast encryption speed and high safety, which can be applied to the storage and network transmission of military, medical, judicial and other digital images.
DNA sequence; dynamic coding; chaos system; image encryption
2014-12-10。 作者簡介:毛彥斌(1979—),男,碩士生;張選平(通信作者),男,副教授,碩士生導師。 基金項目:陜西省自然科學基金資助項目(2014JM8322)。
10.7652/xjtuxb201509016
TP391
A
0253-987X(2015)09-0091-08