本發(fā)明涉及一種數(shù)字圖像加密算法,尤其涉及一種基于分塊DNA編碼和均勻置亂的圖像加密算法。
背景技術:
:
隨著國家現(xiàn)代化建設的不斷完善,人們越來越重視圖像資料的保存、傳輸,應用的安全性,傳統(tǒng)的加密算法主要有:DES算法、AES算法以及橢圓加密算法等,但是傳統(tǒng)的加密算法是針對文本資料設計的,對于信息量龐大的圖像資料并不合適。
混沌加密技術作為近年來的主流加密技術,單一的使用并不安全,于是將混沌技術與其他技術結合的加密算法開始逐漸被開發(fā),由于混沌理論的特性,算法多將混沌技術應用于密鑰發(fā)生器方向。最近幾年,基于DNA計算思想的偽DNA加密技術逐漸成型,但并不成熟。DNA含有四個堿基,分別是腺嘌呤A(Adenine)、胞嘧啶C(Cytosine)、鳥嘌呤G(Guanine)與胸腺嘧啶T(Thymine),其中A與T互補,C與G互補。圖像像素值的二進制表示正好也是由0和1組成,即00與11互補,01與10互補。所以可以用這四個堿基表示每一像素像素值的某兩位二進制,從而可以對圖像像素值進行重新編碼,達到圖像加密的目的。
目前基于DNA編碼方式的圖像加密算法多采用固定的DNA編碼規(guī)則對圖像進行編碼,安全性不高。本文利用混沌與分塊的思想,先對圖像進行均勻置亂操作后,再將圖像分成8塊后,對每塊圖像采用不同的DNA編碼方式,提出一種基于分塊DNA編碼和均勻置亂的圖像加密算法,更大程度地提高了加密過程的安全性。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種基于分塊DNA編碼和均勻置亂的圖像加密算法。主要分為兩大部分:一部分是通過Logistic混沌映射產(chǎn)生的混沌序列與Arnold cat變換相結合對圖像進行像素位置的均勻置亂。另一部分是通過Lorenz混沌映射和DNA編碼對圖像進行像素值的置亂。最后通過以上兩部分的結合得到圖像的加密算法,該算法可以對方形圖像進行加密。
為了達到上述目的,本發(fā)明采用如下技術方案:
基于分塊DNA編碼和均勻置亂的圖像加密算法,包括以下步驟:
輸入:灰度圖像I,大小為M行M列,Logistic混沌映射的初值x,y,μ1,μ2,分塊數(shù)B,迭代數(shù)clp1,clp2,Lorenz混沌映射的初值x,y,z。
輸出:加密圖像I'。
(1)將灰度圖像I轉換成大小為M×M的二維矩陣I1。
(2)根據(jù)Logistic混沌理論的公式:x'=μ1x(1-x);y'=μ2y(1-y),其中x,y,μ1,μ2為初值,x,y的取值范圍是大于0的實數(shù),μ1,μ2的取值范圍是大于3.57小于等于4的實數(shù),x',y'是迭代后產(chǎn)生的值。通過給定四個初值,可產(chǎn)生任意長度的兩個序列。本發(fā)明產(chǎn)生兩個序列分別為x={x1,x2,...,xB×B}和y={y1,y2,...,yB×B},對這兩個序列分別進行如下操作:
x(i)=mod(fix(abs(x(i))×108),10)+1,i=1,2,…B×B,
y(i)=mod(fix(abs(x(i))×108),10)+1,i=1,2,…B×B。其中abs表示取數(shù)字絕對值操作,fix表示向下取整操作,mod表示取余。通過上述公式可將序列x、y變?yōu)閇1-10]的隨機數(shù)。根據(jù)Arnold cat變換,如公式1所示,結合均勻置亂的思想,可以得到新的公式,如公式2所示,利用序列x和y中的值對公式2中的ai,bi賦值,再根據(jù)公式2置亂圖像I1,從而產(chǎn)生新的置亂后的圖像I2。
(3)圖像的像素值范圍是[0,255],可以轉化成8位二進制[00000000-11111111]。因此,將圖像I2轉換成為M行M×8列的二進制二維矩陣I3,即每行是一個原始圖像像素值的二進制。
(4)根據(jù)Lorenz混沌映射公式,x'=a1(y-x);y'=a3x-xz-y;z'=xy-a2z,其中a1=10,a2=8/3,a3=28,x,y,z為初值,取值范圍是大于0的實數(shù),x',y',z'是迭代后產(chǎn)生的值。通過給定三個初值,可產(chǎn)生任意長度的三個序列,本發(fā)明產(chǎn)生的序列用A、B和C表示,序列A的長度為M×M,序列B的長度為M×M×8,序列C的長度為M×M×4。按照公式A=mod(fix((abs(A)-fix(abs(A)))×108),8)+1對序列A進行變化,其中fix表示向下取整操作,mod表示取余,abs表示絕對值。按照公式B=mod(fix((abs(B)-fix(abs(B)))×108),2)對序列B進行變化。按照公式C=mod(fix((abs(C)-fix(abs(C)))×108),8)+1對序列C進行變化。變化后,序列A和C的值范圍為[1-8],序列B的值范圍為[0-1]。根據(jù)序列A的值將矩陣I3的每個二進制元素進行左移位,如公式3所示,其中數(shù)字3表示左移3位,實際取值為1-8的隨機數(shù),從而產(chǎn)生新的二維矩陣I4。根據(jù)序列B的值產(chǎn)生自然DNA矩陣,在權利要求6中說明,序列C用來選擇DNA解碼規(guī)則,在權利要求8中說明。
(5)DNA的每個堿基A、C、G、T可以表示成兩個二進制。按照A與T互補,C與G互補的原則,DNA編碼規(guī)則如表1所示。將矩陣I4,以N/2;M/4;M/2;M×3/4為界,其中N/2將圖像以垂直方向分為兩塊,M/4;M/2;M×3/4將圖像以水平方向分為四塊,共將圖像分為8塊,用B1,B2…B8分別表示,根據(jù)B的下標對應地在表1中選擇1-8種規(guī)則,將I4的每一塊中的每一行二進制用該種規(guī)則進行編碼,I4轉化成M行M×4列的DNA編碼矩陣I5。例如,I4中B1塊中的第一行是10110110,其對應第一種編碼規(guī)則,按照編碼規(guī)則1,10110110就被編碼成GTCG。
表1
(6)將長度為M×M×8的序列B轉化成M行M×8列的二進制矩陣I6,按照權利要求5說明,將矩陣I6分為8塊,用B1',B'2…B8'分別表示,根據(jù)B'的下標對應地在表1中選擇1-8種規(guī)則,將I6的每一行用該種規(guī)則進行編碼,將I6轉化成M行M×4列的DNA編碼矩陣I7。
(7)針對表1中的DNA編碼規(guī)則,每一種規(guī)則對應一種DNA加法運算。如表2是DNA編碼規(guī)則1的加法運算規(guī)則。表3、表4、表5、表6、表7、表8、表9分別是DNA編碼規(guī)則2、3、4、5、6、7、8的加法運算規(guī)則。因為B1,B2…B8與B1',B'2…B8'是以表1中的1-8種規(guī)則編碼,根據(jù)B與B'的下標,選擇對應的加法運算規(guī)則,使矩陣I5、I7進行加法運算,得到矩陣I7。例如,I5中B1塊中的第一行是TGAT,I7中B1'塊中的第一行是GACT,那么,選擇規(guī)則1,即加法規(guī)則:表2,I7的第一行為CGCG。若I5中B2塊中的第一行是TGAT,I7中B'2塊中的第一行是GACT,那么,選擇規(guī)則2,即加法規(guī)則:表3,I7的第一行為AGAA。
(8)權利要求4中的序列C,取值范圍為[1-8],按照序列C的每一個值,對應地在表1中選擇1-8種規(guī)則中的一種,將I8每一行的DNA編碼用二進制表示,I8轉化成大小為M行M×8列的二進制矩陣I9。
(9)把二進制矩陣I9轉換成M行M列的十進制二維矩陣I10,最后再把二維矩陣I10轉換成加密圖像I′并保存輸出。
附圖說明
圖1(a)-圖1(c)是原始圖像、加密效果圖和解密效果圖;
圖2(a)-圖2(b)是圖像加密前和加密后的灰度直方圖;
圖3(a)-圖3(c)是原始圖像、加密后圖像加噪聲和解密的效果圖;
圖4(a)-圖4(c)是原始圖像、加密后圖像剪切后圖像和解密的效果圖。
具體實施方式
1、Logistic混沌映射的初值x=0.683、y=0.172、μ1=3.8和μ2=3.9,Lorenz混沌映射的初值a=0.533、b=0.221和c=0.898,分塊數(shù)B的初值16,迭代次數(shù)初值clp1=10,clp2=10。
2、圖1(a)-圖1(c)是針對256×256的肺部CT灰度圖像進行仿真實驗得到的加密解密效果圖。圖1(a)為灰度肺部CT原圖像,圖1(b)為加密圖像,圖1(c)為解密圖像。
3、圖2(a)-圖2(b)是對肺部CT圖像加密前、加密后的圖像進行灰度直方圖分析的效果圖。通過比較能夠發(fā)現(xiàn),加密前的灰度直方圖的像素值都集中在一些值上,但加密后圖像的灰度直方圖像素分布是相對均勻的,這樣說明了利用該加密算法得到的加密圖像很難被統(tǒng)計性的攻擊破解。
4、圖3(a)-圖3(c)是利用均值0,方差0.001的高斯白噪聲攻擊實驗圖,圖3(a)為肺部CT原圖像,對高斯白噪聲處理后的圖像如圖3(b)所示,其恢復情況如圖3(c)所示,從圖中顯示的效果可見被高斯白噪聲干擾后的解密圖像依然能夠被辨析,達到預期目的。
5、圖4(a)-圖4(c)是抗剪切攻擊實驗圖,圖4(a)為肺部CT原圖像,對加密圖片進行剪切后的圖像如圖4(b)所示,其恢復情況如圖4(c)所示,從圖中顯示的效果可見被剪切攻擊后的解密圖像依然能夠被辨析,達到預期目的。