基于哈希函數(shù)和插入-刪除模型的圖像加密方法
【技術領域】
[0001] 本發(fā)明涉及哈希函數(shù)和插入-刪除模型,具體講的是用哈希函數(shù)和插入-刪除模型 對原始圖像進行加密,其屬于圖像加密領域。
【背景技術】
[0002] 如今,隨著多媒體技術的發(fā)展,我們可以方便的享受電子信息。同時,圖像在網(wǎng)絡 的傳輸中受到廣泛的應用,但是保護圖像信息在傳輸中的安全性成為一個亟待解決的問 題。因此,研究者們針對這個問題提出了許多基于混沌系統(tǒng)和DNA計算的圖像加密技術,這 些技術不同于傳統(tǒng)的加密技術,因為圖像具有高冗余、很強的相關性以及計算復雜性等特 點,因此傳統(tǒng)的加密技術不適用于圖像的加密。
[0003] 由于混沌映射具有遍歷性、混合性以及對初始條件的敏感性,所以基于混沌系統(tǒng) 的圖像加密技術受到研究者們的青睞。這些技術滿足了置亂和擴散的要求并且在一定程度 上可以抵抗攻擊者的入侵,但是加密的效率不是很高。幸運的是,DNA計算的出現(xiàn)解決的這 一問題,DNA計算具有高度并行性、高度的信息密度以及高能量效率等特性?;贒NA計算的 圖像加密技術作為最新以及最成功的圖像加密技術的基本原理是:DNA作為信息的載體,現(xiàn) 代生物技術作為實現(xiàn)工具。然而,基于DNA計算的圖像加密技術只將DNA作為操作對象,并且 這種技術的實現(xiàn)需要良好的實驗室環(huán)境,但是現(xiàn)實的條件并不能滿足這一條件,因此研究 者們將混沌系統(tǒng)與DNA計算相結(jié)合對圖像進行加密。依照這種原理,研究者們提出了一種新 的加密系統(tǒng),這種加密系統(tǒng)除了將混沌系統(tǒng)與DNA計算引入外,同時也引入了別的方法,比 如遺傳算法。
[0004] 哈希函數(shù)在密碼檢驗、數(shù)字簽名以及認證領域有廣泛的應用。哈希函數(shù)可以將任 意長度的明文轉(zhuǎn)換成固定長度的密文,同時,只有在哈希函數(shù)和密文同時存在時,才可以得 到明文,所以基于哈希函數(shù)的圖像加密技術一定程度上可以抵抗攻擊者的入侵。本文,我們 提出基于哈希函數(shù)和插入-刪除模型的圖像加密技術,該技術不僅應用了插入-刪除模型以 及混沌系統(tǒng)的特性,并且還將哈希函數(shù)引入到加密的過程中。該方法利用哈希函數(shù)得到哈 希表,然后根據(jù)哈希表置亂圖像的像素值。此方法具有較高的安全性并且能夠抵抗窮舉攻 擊,統(tǒng)計攻擊以及差分攻擊等。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提出一種基于哈希函數(shù)和插入-刪除模型的圖像加密方法,將 哈希函數(shù)和插入-刪除模型結(jié)合置亂圖像的像素位置,使得加密效果良好,從而加密方法可 以有效地抵抗入侵者的攻擊。
[0006] 本發(fā)明采用的技術方案為:該方法將哈希函數(shù)和插入-刪除模型相結(jié)合對原始圖 像進行操作;該方法大體可以分成五個步驟:(1)利用哈希函數(shù)對原始圖像的像素值進行操 作得到哈希表,然后根據(jù)哈希表置亂圖像的像素值;(2)根據(jù)編碼規(guī)則對置亂后的矩陣進行 DNA編碼;(3)用異或操作和混沌序列擴散圖像的像素值;(4)將插入-刪除模型與混沌序列 相結(jié)合擴散圖像的像素值;(5)根據(jù)解碼規(guī)則解碼得到的DNA序列矩陣。其具體步驟如下: [0007] S1、將原始圖像轉(zhuǎn)換成矩陣A(m,n),然后通過哈希函數(shù)H(key) =keymod3得到哈希 表B和哈希矩陣C(m,η),其中key是原始圖像的像素值,哈希表的大小是由key決定的。
[0008] S2、利用哈希表B和哈希矩陣C置亂圖像的像素值
[0009] countl = count2 = count3 = size(C, 2),
[0010] 當 C(i,j) = 0 時,如果B(l,countl)關0,則D(i,j)=B(l,countl),countl = countl-1;
[0011] 當C( i,j) = 1時,如果B( 2,count2)關0,則D=(i,j)=B(2, count2),count2 = count2_l;
[0012] 當 C(i,j) = 2 時,如果B(3,count3)關0,則D(i,j)=B(3,count3),count3 = count3_l;
[0013]其中D(m,n)是置亂后的矩陣。
[0014] S3、用DNA編碼規(guī)則將矩陣D編碼成DNA序列矩陣ED(m,4n);所述的編碼解碼規(guī)則, 圖2中是指1-8列指8種編碼解碼規(guī)則,每一列對應一種編碼解碼規(guī)則,編碼解碼時可任意選 擇。
[0015] S4、利用2D Logistic混純映射產(chǎn)生混純序列(x,y)
[0016] 給定任意的初始密鑰,并且計算原始圖像的所有像素值之和;將初始密鑰和所有 像素值之和相加作為加密密鑰;將加密密鑰平均分成兩部分作為混沌映射的初始值;在初 始值和混沌映射的系統(tǒng)參數(shù)的條件下產(chǎn)生兩條混沌序列(X,y)。
[0017] S5、根據(jù)步驟S4中的混沌序列和DNA序列異或操作擴散圖像的像素值 [0018]首先將DNA序列矩陣ED劃分成4 X 4的分塊矩陣bR;
[0019] 然后對混沌序列(x,y)進行預操作:
[0020]
[0021] 最后根據(jù)以下規(guī)則進行操作:
[0022] bR(iJ) = bR(i, y{j%
[0023] 由bR得到序列矩陣RD(m,4n)。
[0024] S6、根據(jù)步驟S4中的混沌序列和插入-刪除模型擴散圖像的像素值
[0025] 首先將RD劃分成兩部分R1,R2,每一部分的大小為m/2X4n;
[0026] 然后將R1,R2的每一列作為一個子序列,由這些子序列分別構(gòu)成數(shù)組T1,T2;
[0027] 利用混沌序列(x,y)和插入-刪除模型擴散圖像的像素值:
[0028]如果x(i)<0.5,則刪除Tl(i),并將其插入到T2(i)所在的位置;如果y(i)<0.5, 則刪除T2( i),并將其插入到T1 (i)所在的位置;
[0029] 合并T1,T2得到序列矩陣TD(m,4n)。
[0030] S7、利用DNA解碼規(guī)則解碼TD即可得到加密圖像。
[0031 ]本發(fā)明與現(xiàn)有技術相比具有以下優(yōu)點:
[0032] 1、將哈希函數(shù)引入到本文的圖像加密系統(tǒng)中。哈希函數(shù)可以將任意長度的明文轉(zhuǎn) 化成固定長度的密文,并且明文只有在哈希函數(shù)和密文的共同作用下才可以得到。因此在 加密系統(tǒng)中加入哈希函數(shù)可以提高算法的穩(wěn)定性,從而更好地抵御攻擊者的入侵。
[0033] 2、將生化反應中的插入-刪除模型的基本思想應用到加密系統(tǒng)中。插入-刪除模型 具有巨大的并行計算能力和高存儲密度,從而使用此模型實現(xiàn)圖像加密可以提高加密效 率。
【附圖說明】
[0034]圖1 DNA序列的8種編碼、解碼映射規(guī)則;
[0035]圖2對應第2種編碼規(guī)則的DNA序列的異或操作;
[0036]圖3原始圖像;
[0037]圖4加密圖像;
[0038]圖5解密圖像;
[0039] 圖6原始圖像的灰度直方圖;
[0040] 圖7加密圖像的灰度直方圖;
[0041] 圖8原始圖像水平方向的相關性;
[0042] 圖9加密圖像水平方向的相關性;
[0043]圖10本發(fā)明的結(jié)構(gòu)簡圖。
【具體實施方式】
[0044] 實施例1
[0045] 為了進一步了解該基于哈希函數(shù)和插入-刪除模型的圖像加密方法,下面結(jié)合附 圖對本發(fā)明作進一步說明。
[0046] 詳細步驟如下所示:
[0047] S1、將原始圖像(見附圖3)轉(zhuǎn)換成矩陣A(m,n),然后通過哈希函數(shù)H(key) = keymod3得到哈希表B和哈希矩陣C(m,n),其中key是原始圖像的像素值,哈希表的大小是由 key決定的。
[0048] S2、利用哈希表B和哈希矩陣C置亂圖像的像素值
[0049] countl = count2 = count3 = size(C, 2),
[0050] 當 C(i,j) = 0 時,如果B(l,countl)關0,則D(i,j)=B(l,countl),countl = countl-1;
[0051 ]當 C(i,j) = l 時,如果B(2, count2)關0,則D(i,j)=B(2, count2),count2 = count2_l;
[0052] 當 C(i,j) = 2時,如果B(3, count3)關0,則D(i,j)=B(3, count3),count3 = count3_l;
[0053] 其中D(m,n)是置亂后的矩陣。
[0054] S3、用DNA編碼規(guī)則2(見附圖1)將矩陣D編碼成DNA序列矩陣ED(m,4n)。
[0055] S4、利用2D Logistic混沌映射產(chǎn)生混沌序列(x,y)
[0056] 給定任意的初始密鑰,并且計算原始圖像的所有像素值之和;將初始密鑰和所有 像素值之和相加作為加密密鑰;將加密密鑰平均分成兩部分作為混沌映射的初始值;在初 始值和混沌映射的系統(tǒng)參數(shù)的條件下產(chǎn)生兩條混沌序列(x,y)。
[0057] S5、根據(jù)步驟S4中的混沌序列和DNA序列異或操作規(guī)則(見附圖2)擴散圖像的像素 值
[0058]首先將DNA序列矩陣ED劃分成4 X 4的分塊矩陣bR;
[0059 ]然后對混沌序列(X,y)進行預操作:
[0060]
[0061] 最后根據(jù)以下規(guī)則進行操作:
[0062] bR(J,./) = bR('\./) ? bR(x(i), v(,/)):
[0063] 由bR得到序列矩陣RD(m,4n)。
[0064] S6、根據(jù)步驟S4中的混沌序列和插入-刪除模型擴散圖像的像素值 [0065] 首先將RD劃分成兩部分R1,R2,每一部分的大小為m/2X4n;
[0066] 然后將R1,R2的每一列作為一個子序列,由這些子序列分別構(gòu)成數(shù)組T1,T2;
[0067] 利用混沌序列(x,y)和插入-刪除模型擴散圖像的像素值:
[0068]如果x(i)<0.5,則刪除Tl(i),并將其插入到T2(i)所在的位置;如果y(i)<0.5, 則刪除T2( i),并將其插入到T1