胡輝輝,劉建東,商 凱,陳 飛
(1.北京化工大學 信息科學與技術(shù)學院,北京 100029; 2.北京石油化工學院 信息工程學院,北京 102617)
近年來的研究表明,DNA計算具有許多良好的特性,例如,大量的并行性、巨大的存儲量和超低的功耗,十分利于其在圖像加密中的應用。Zhang Qiang等[1]提出了一種基于DNA編碼與2D Logistic映射的數(shù)字圖像加密算法,該算法將DNA編碼與混沌加密相結(jié)合,在一定程度上提高了加密算法的安全性,但也存在著DNA編碼的規(guī)則有限、低維混沌系統(tǒng)結(jié)構(gòu)簡單,使得加密后的圖像存在像素相關(guān)性強等缺陷,安全性依然不高。
時空混沌系統(tǒng)是一種復雜的動力學系統(tǒng),十分適合用于設(shè)計針對圖像等大數(shù)據(jù)量的多媒體信息的加密算法。目前已有許多基于時空混沌理論的圖像加密算法[2-4],這些加密算多是采用像素位置置亂和像素值擴散的思想,很好地體現(xiàn)了密碼設(shè)計的混淆和擴散這兩個基本原則。由于現(xiàn)有的混沌模型難以產(chǎn)生同時具備獨立性和均與性的偽隨機序列,降低了加密方案的安全性,而且位置置亂較為耗時,不利于大批量圖像數(shù)據(jù)的加密和實時傳輸。
結(jié)合DNA編碼和高維混沌系統(tǒng)的優(yōu)點,成為設(shè)計更加安全、耗時更低的圖像加密算法更好的選擇[5,6],然而這些圖像加密算法所使用的混沌系統(tǒng)都是三維及以下混沌系統(tǒng),混沌系統(tǒng)的結(jié)構(gòu)比較簡單且復雜度相對較低,降低了加密算法的安全性。本文基于DNA編碼和四維以上的高維時空混沌系統(tǒng),設(shè)計了一種并行彩色圖像加密算法。算法充分利用了DNA編碼、DNA加法和DNA求補等DNA密碼的思想,復雜化了圖像加密中的基本運算。同時,構(gòu)造了高維的整數(shù)非線性耦合混沌系統(tǒng),從模型基礎(chǔ)上保證了算法所用整數(shù)偽隨機序列的安全性。實驗結(jié)果表明,相對于其它加密算法而言,本文設(shè)計的加密算法不僅密鑰空間無限大,而且易于并行實現(xiàn),加密速度快,利于圖像數(shù)據(jù)的加密和實時傳輸?shù)膶崿F(xiàn),同時還能很好地抵御各種常用的攻擊手段。
時空混沌模型中經(jīng)典的耦合帳篷映像格子模型(CML)的數(shù)學形式為
f(xn(i+1))]
(1)
此模型包含了時間上的并行迭代特征和空間上的耦合擴散機理,通過多次并行迭代,很容易產(chǎn)生多維的偽隨機序列,但模型產(chǎn)生的多維偽隨機序列存在著相鄰序列的互相關(guān)性過大的缺點,同時,此模型是在實數(shù)域內(nèi)實現(xiàn)的,有限精度的存在既不利于計算機高速計算的實現(xiàn),又使得數(shù)字化混沌系統(tǒng)的動力學特性相較于連續(xù)系統(tǒng)而言存在著嚴重的退化。
為解決相鄰序列的互相關(guān)性過大的問題,引入Arnold貓映射的方法,采用貓映射作為模型的空間格點耦合方式,解決了原模型相鄰序列的互信息值過大的問題。其次引入動態(tài)整數(shù)Tent映射構(gòu)造整數(shù)非線性耦合混沌模型,模型在整數(shù)域內(nèi)實現(xiàn),從而消除了有限精度對系統(tǒng)的不良影響。
由此構(gòu)造了整數(shù)非線性耦合混沌模型,其數(shù)學形式為
xn+1(i)=[f(xn(i))+f(xn(j))+f(xn(k))]mod(2a)
(2)
式中:2a表示系統(tǒng)可容納的最大狀態(tài)值,n為迭代步數(shù);i=1,2,…,L為格點坐標,L為系統(tǒng)格點數(shù),且L大于等于4;邊界條件由xn(L+1)=xn(1),xn(0)=xn(L)實現(xiàn),初始條件xi∈[1,2a-1]。
非線性函數(shù)f選擇動態(tài)整數(shù)Tent映射,其數(shù)學形式為
(3)
gi=xi+kimod2a
(4)
式中:系統(tǒng)的位數(shù)為a,xi∈[1,2a-1],ki是Tent映射的水平移動距離。
空間格點位置i,j,k之間由貓映射決定
(5)
其中,p和q是映射參數(shù)。
以下分別從獨立性(互信息)和均勻性(分布特性)兩個最根本的密碼學特性對整數(shù)非線性耦合混沌模型產(chǎn)生的整數(shù)偽隨機序列進行密碼學特性分析。
互信息顯示了不同序列之間的統(tǒng)計約束程度,當兩序列完全相關(guān)時互信息值最大,反之,兩序列相互獨立時互信息值為零。
圖1和圖2分別給出了兩種模型取100個空間格點、格點兩兩之間的互信息值。對比圖1和圖2可知,整數(shù)非線性耦合混沌模型很好地解決了耦合帳篷映像格子模型(CML)所產(chǎn)生的多維偽隨機序列中相鄰序列間互信息值過大的問題,不同序列之間的互信息值都接近于零,任意格點的偽隨機序列都接近于相互獨立。
圖1 CML模型的互信息
混沌偽隨機序列的不變分布特性能夠直觀地展示出各點狀態(tài)在不同取值區(qū)間的分布概率。
圖3和圖4分別給出了CML模型和整數(shù)非線性耦合混沌模型所產(chǎn)生的混沌偽隨機序列的不變分布特性曲線,對比兩圖可知整數(shù)非線性耦合混沌模型產(chǎn)生的偽隨機序列具有良好的均勻分布特性,遠優(yōu)于CML模型。
圖3 CML模型隨α變化的不變分布概率曲線
圖4 整數(shù)非線性耦合混沌模型的不變分布概率曲線
通過對整數(shù)非線性耦合混沌模型所產(chǎn)生的混沌偽隨機序列從獨立性和均勻性兩個最根本的密碼學特性進行仿真分析,結(jié)果表明了本文構(gòu)造的整數(shù)非線性耦合混沌模型能夠快速、并行地產(chǎn)生多維混沌偽隨機序列,序列的密碼學特性優(yōu)良,能夠從根本上解決目前混沌偽隨機序列發(fā)生器難以產(chǎn)生同時具備均勻性和獨立性的多維序列的缺陷。
每個DNA序列都是由A、G、C、T這4種核酸堿基組成,其中A與T,C與G互補配對。在現(xiàn)代的計算機理論中,所有的信息都是由二進制數(shù)字0和1表示,且0和1是互補的,因此00和11、01和10也是互補的。在4!=24種編碼規(guī)則中只有8種滿足互補規(guī)則,見表1。
表1 滿足互補規(guī)則的8種DNA編碼規(guī)則
互補規(guī)則必須滿足條件:對于核酸串中的每個核酸xi有
(6)
式中:B(xi)是xi的基對(base pair),它能保證單映射的互補規(guī)則成立。
在DNA計算中,Hamming距離用于計算兩個長度相同序列相應位置具有不同項的數(shù)目。序列x=(x1,x2,…,xn)和y=(y1,y2,…,yn)的Hamming距離H(x,y)可定義為
(7)
DNA序列的加法和減法是在兩位二進制下按照傳統(tǒng)加法和減法運算進行的。與8種DNA編碼規(guī)則對應,存在8種DNA加法規(guī)則和8種DNA減法規(guī)則。在進行運算時應注意,所有加減運算都只有2位。
整數(shù)非線性耦合混沌模型能快速、并行地產(chǎn)生性能良好的多維整數(shù)混沌偽隨機序列,這使得此模型能夠十分便利地應用于圖像加密算法中?;诖四P秃虳NA編碼,本文設(shè)計了一種并行的彩色圖像加密算法。算法主要包含3個部分:圖像數(shù)據(jù)與整數(shù)偽隨機序列按位異或混淆灰度值、中間密文按DNA編碼規(guī)則進行求補運算、RGB三分量兩兩做DNA加法運算。其中第一部分的按位異或能夠很好地發(fā)揮整數(shù)偽隨機序列良好的均勻性和隨機性優(yōu)勢;第二部分的求補運算以整數(shù)偽隨機序列為參考量來決定是否進行求補運算,從而增大了算法的復雜度;第三部分三分量相互做DNA加法運算彼此混淆,既很好地保證了算法對于明文的敏感性,又再次混淆了圖像的灰度值。圖5給出了算法的流程圖,具體加密步驟如下:
(1)讀取彩色圖像,得到圖像數(shù)據(jù)矩陣E[3,N*N],并計算3個漢明距離H1,H2,H3(加密解密時都使用原圖的漢明距離);
(2)給定L,p,q,k,H1,H2,H3及其它初值,生成混沌序列,并與圖像數(shù)據(jù)做按位異或運算,得到中間密文P1[3,N*N](使用序列a1,a2,a3);
(3)對P1進行DNA編碼(編碼規(guī)則b1),得到P2[3,N*N*4];
(4)當混沌序列數(shù)值大于127時,對圖像編碼序列求補得到P2[3,N*N*4](使用序列a4,a5,a6),求補規(guī)則為(A:00,T:11,G:01,C:10;A-T-C-G-A);
(5)深入開展水權(quán)試點研究工作。開展相關(guān)專題研究,探索層次分析法與模糊決策理論,建立適宜黑龍江省實際情況的水權(quán)分配指標體系,構(gòu)建初始水權(quán)分配模型,開展水權(quán)初始配置應用研究,編制五常市、慶安縣、肇州縣等試點水權(quán)確權(quán)實施方案,探索開發(fā)考慮第三方影響的市場供需平衡的水權(quán)轉(zhuǎn)讓均衡定價技術(shù)方法,為黑龍江省水權(quán)試點工作推廣提供技術(shù)支撐。
(5)圖像R/G/B三原色矩陣P2[3,N*N*4]相互混淆做DNA加法得矩陣E[3,N*N*4]。相互混淆規(guī)則為(R=r+g、G=g+b、B=g+2b);
(6)對E進行DNA解碼(解碼規(guī)則b2),得到密文圖像矩陣[3,N*N]。
圖5 加密算法流程
解密步驟是加密步驟的逆過程。首先將密文圖像進行DNA編碼,再對密文圖像三分量進行DNA減法運算進行混淆,相互混淆的規(guī)則為加密時混淆規(guī)則的逆運算,即(r=R+B-2G、g=2G-B、b=B-G);然后選擇同樣的偽隨機序列進行逆求補,規(guī)則為(A∶00,T∶11,G∶01,C∶10;A-G-C-T-A);之后對密文圖像進行解碼,再與偽隨機序列執(zhí)行按位異或運算即可得到解密圖像。
本文設(shè)計的彩色圖像加密算法的主要理論基礎(chǔ)是整數(shù)非線性耦合混沌模型和DNA編碼及運算,前者能快速、并行地產(chǎn)生性能良好的多維混沌偽隨機整數(shù)序列,后者本身也具備著高并發(fā)性易于實現(xiàn)的特性。因此,本文基于C#編程環(huán)境,充分利用.NET4.0及以上版本所提供的一個新的命名空間System.Threading.Tasks及其附屬的Parallel靜態(tài)類(System.Threading.Tasks.Parallel),簡單方便地發(fā)揮了多核計算機中多個邏輯內(nèi)核的作用,高速并行地對算法進行了編程實現(xiàn)。并行程序主要包含彩色圖像三分量加密過程中的Task類命令式任務并行和大循環(huán)計算時的Pa-rallel類命令式數(shù)據(jù)并行兩大部分。
算法的實驗環(huán)境為64位Windows系統(tǒng),處理器為Intel(R)Core(TM) i7-2600CPU,3.4 GHz。針對算法,分別進行了并行編程實現(xiàn)和串行編程實現(xiàn),以標準測試圖像Lena彩色圖像為例,運行算法所花費的時間統(tǒng)計為表2。同時表2也給出了文獻[7]對相同大小的彩色圖像加密的算法耗時和文獻[8]對相同大小的灰度圖像加密的算法耗時。對比表中數(shù)據(jù)可知,對于不同尺寸大小的彩色圖像,本文設(shè)計的算法的并行實現(xiàn)都能穩(wěn)定達到串行實現(xiàn)的兩倍速度以上。同時,算法并行實現(xiàn)的速度為文獻[7]設(shè)計的算法的兩倍左右,文獻[8]設(shè)計的算法的3倍左右。
表2 算法耗時統(tǒng)計
采用Visual Studio 2013平臺,取512×512像素大小的Lena彩色標準圖像作為明文圖像進行實驗。實驗結(jié)果如圖6所示,圖6可以看出,通過加密算法對實驗圖像進行加密,能夠完全隱藏原圖所包含的直觀信息,達到很好的保密效果,并且通過解密算法能夠無損地恢復原圖。
圖6 算法加密效果
(1)密鑰空間
對于任何的加密算法來說,密鑰空間的大小都直接決定了其安全性的高低,當密鑰空間較小時,就不可避免地會受到窮舉攻擊等暴力破解攻擊。本文算法采用了可變長度的整數(shù)非線性耦合混沌模型,其空間格點大小可以任意選取(L≥4),與之對應的空間格點初始值的數(shù)量也是可變的,因此其密鑰空間可變,且可以無限大。本文可以選作密鑰的變量只要有兩個部分:一是混沌系統(tǒng)的初始值以及系統(tǒng)參數(shù),二是加密過程中選取的混沌序列所在空間格點位置以及DNA編碼、解碼和求補規(guī)則的選取。當今的密碼算法普遍認為密鑰空間大于2^100就相對安全,本文算法中當取10個空間格點時,其密鑰空間為:256^13×8^6×6^3×10^6=2^131×3^3×5^6≈2^146,滿足密鑰空間安全性要求。若將空間格點數(shù)增加到25,其密鑰空間將超過2^256,同樣將空間格點數(shù)增加到55,其密鑰空間將超過2^512,密鑰空間的安全性完全可以通過增加空間格點數(shù)量得到足夠的保證。
(2)密鑰敏感性分析
在實驗中,對512×512像素大小的Lena彩色標準圖像加密后,分別采用正確密鑰和錯誤密鑰解密,敏感性分析如圖7所示,改變其它密鑰參數(shù)也能得到相同結(jié)果??芍诮饷苓^程中,即使密鑰只發(fā)生了微小的變化,解密過程也變成了一輪新的加密過程,無法得到正確的解密圖。
圖7 密鑰敏感性
(1)直方圖分析
圖8給出了Lena彩色圖像加密前的明文圖像和用本文算法加密后的密文圖像的各分量灰度直方圖。對比可知,密文圖像各分量的灰度直方圖都呈現(xiàn)均勻分布的特點,很好地隱藏了原圖的統(tǒng)計信息。
圖8 灰度直方圖分析
(2)相鄰像素相關(guān)性分析
相關(guān)系數(shù)是用來分析和度量相鄰像素之間的相關(guān)程度的指標,密文相關(guān)性越低,相關(guān)系數(shù)越接近于零。對明文圖像和密文圖像分別隨機選取了5000組相鄰像素,從水平、垂直和對角線3個不同方向計算密文圖像的相鄰像素相關(guān)系數(shù),見表3,同時,表3也給出了文獻[8]中密文圖像的相鄰像素的相關(guān)系數(shù)。對比表中數(shù)據(jù)可知,使用本文算法加密得到的密文圖像相鄰像素相關(guān)系數(shù)更接近于零,這表明明文圖像所包含的統(tǒng)計特性已經(jīng)充分擴散到密文圖像中,算法可以抵抗統(tǒng)計分析攻擊。
表3 密文圖像相鄰像素的相關(guān)性系數(shù)
(3)信息熵測試
信息熵可以用來表征圖像像素分布隨機性的強弱。由于圖像像素值的取值有256種可能,所以圖像數(shù)據(jù)信息熵的最大理想值為8。表4給出了512×512的Lena彩色圖像的明文和幾種加密方案對其進行加密后的密文圖像的信息熵,對比表中數(shù)據(jù)可知本文算法能夠得到的密文圖像的信息熵更為接近理想值8。
表4 Lena圖像信息熵比較
差分攻擊是常用的已知明文攻擊的攻擊方法,圖像加密算法要做到能夠抵抗差分攻擊,就必須對明文足夠敏感。一般使用像素變化率(NPCR)和歸一化像素值平均改變強度(UACI)這兩個指標來衡量加密算法對明文的敏感性,其理想值分別為99.6094%和33.4635%[11]。
表5給出了本文算法和另外兩種不同加密方式的NPCR和UACI值。對比表中數(shù)據(jù)可知,本文設(shè)計的加密算法更能抵抗差分攻擊。
表5 明文敏感性分析比較
本文首先構(gòu)造了一種基于整數(shù)非線性耦合的時空混沌模型,通過仿真分析驗證了此模型能夠快速、并行地產(chǎn)生多維整數(shù)混沌偽隨機序列,且序列同時具備均勻性和獨立性,從而克服了混沌偽隨機序列發(fā)生器設(shè)計中存在的根本性缺陷。
基于此模型,設(shè)計了一種使用DNA編碼的彩色圖像加密算法,并利用多核處理器的優(yōu)點對算法進行了并行實現(xiàn)。算法主要包含3個部分:圖像數(shù)據(jù)與整數(shù)偽隨機序列按位異或混淆灰度值、中間密文按DNA編碼規(guī)則進行求補運算、RGB三分量兩兩做DNA加法運算。實驗結(jié)果表明本文提出的彩色圖像加密算法密鑰空間可變且足夠大,算法能夠有效地抵抗統(tǒng)計分析攻擊和差分攻擊,安全可靠,算法的并行實現(xiàn)使得算法的加密速度較串行實現(xiàn)提高了至少兩倍,在圖像信息的存儲和實時傳輸中具有極大的實用價值。