本發(fā)明屬于圖像加密以及編碼領(lǐng)域,具體說是一種基于DNA編碼的圖像加密糾錯(cuò)方法。
背景技術(shù):
計(jì)算機(jī)網(wǎng)絡(luò)的出現(xiàn)改變了人們的通信方式,人們可以通過網(wǎng)絡(luò)便捷的傳輸各種多媒體信息。但是由于網(wǎng)絡(luò)的開放性,多媒體信息的安全受到了一定的威脅。數(shù)字圖像是多媒體通信中的重要信息載體,如何保護(hù)圖像信息成為目前普遍關(guān)注的問題。目前最為有效的保護(hù)圖像信息安全的手段是圖像加密。
混沌映射具有對(duì)初始值敏感、遍歷性、以及其內(nèi)在的偽隨機(jī)性等特點(diǎn),這些特點(diǎn)使得混沌映射被廣泛地用于圖像加密中。通過混沌映射產(chǎn)生混沌序列,利用置亂與擴(kuò)散操作完成對(duì)原始圖像的加密。通訊數(shù)據(jù)傳輸中,偶爾會(huì)發(fā)生數(shù)據(jù)的失真,現(xiàn)代糾錯(cuò)碼理論可以有效地糾正在通訊傳輸過程中的錯(cuò)誤。漢明碼是其中應(yīng)用廣泛的一類編碼方法,其通過在傳輸?shù)南⒘髦胁迦腧?yàn)證碼,以發(fā)現(xiàn)并糾正錯(cuò)誤。
針對(duì)上述背景,目前已有很多針對(duì)DNA編碼的圖像加密方法,但是這些方法并沒有考慮糾錯(cuò)問題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出了基于DNA編碼的圖像加密糾錯(cuò)方法,該方法有很好的加密效果,并且能夠?qū)崿F(xiàn)糾錯(cuò)功能。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了基于DNA編碼的圖像加密糾錯(cuò)方法,包括:
S1:將初始密鑰作為混沌映射的初始條件,生成加密所需的混沌序列;
S2:將生成的混沌序列進(jìn)行排列生成用于圖像加密的置亂序列,置亂原始圖像中的像素位置;
S3:對(duì)生成的混沌序列進(jìn)行整數(shù)化處理,得到用于圖像加密的擴(kuò)散序列,改變置亂后的圖像的像素值,完成對(duì)原始圖像的加密;
S4:構(gòu)建序列間漢明距離約束條件和逆補(bǔ)序列間的漢明距離約束條件,并結(jié)合GC含量約束條件,構(gòu)建DNA序列集合設(shè)計(jì)組合約束條件;
S5:用改進(jìn)的遺傳算法初始化種群,然后根據(jù)組合約束條件對(duì)種群中的個(gè)體進(jìn)行篩選,完成對(duì)DNA序列的優(yōu)化設(shè)計(jì),得到具有糾錯(cuò)功能的DNA編碼集合;
S6:在設(shè)計(jì)好的DNA編碼集合中隨機(jī)選出N個(gè)不同的DNA序列,與密文圖像中的像素值一一對(duì)應(yīng),最終將密文圖像完全編碼成DNA序列,生成可糾錯(cuò)的DNA編碼加密圖像。
進(jìn)一步地,初始密鑰分成兩份,分別作為兩個(gè)混沌映射的參數(shù)和初始值,混沌映射為:
xi+1=μxi(1-xi)
其中μ參數(shù),x1為初始值,μ∈[3.9,4],x1∈(0,1),迭代混沌映射,生成加密所需的混沌序列。
進(jìn)一步地,采用下述公式求取置亂后的圖像像素:
Mim(i)=permute(P(i),Order(i)),i=1,2,...,M*N
P(i)表示的是明文圖像的像素,Order(i)表示的是混沌順序,Min(i)表示的是置亂后的圖像像素。
進(jìn)一步地,加密后的圖像為:
Orbit(i)表示的是混沌軌道值,C(i)表示加密后的圖像。
更進(jìn)一步地,序列間漢明距離約束條件為:
其中H(u,v)表示序列u,v間的漢明距離。
更進(jìn)一步地,逆補(bǔ)序列間的漢明距離約束條件為:
其中vC表示序列v的逆補(bǔ)序列。
更進(jìn)一步地,GC含量約束條件為鳥嘌呤和胞嘧啶在DNA分子中的含量。
作為更進(jìn)一步地,組合約束條件為:先用GC含量約束條件對(duì)DNA序列進(jìn)行約束,然后再用序列間漢明距離約束條件和逆補(bǔ)序列間的漢明距離約束條件同時(shí)進(jìn)行約束。
作為更進(jìn)一步地,改進(jìn)的遺傳算法是:在選擇算子中采用最優(yōu)保存策略,在變異算子中采用動(dòng)態(tài)變異算子;即根據(jù)適應(yīng)度值的高低把種群中的個(gè)體分為3類,最小的變異概率為0.01,其次為0.03,最大的變異概率為0.3。
本發(fā)明由于采用以上技術(shù)方案,能夠取得如下的技術(shù)效果:不僅可以實(shí)現(xiàn)對(duì)加密圖像進(jìn)行DNA編碼,而且編碼后的數(shù)據(jù)具有糾錯(cuò)功能。且采用上述方法加密效果非常好;由于在編碼像素值時(shí)使用隨機(jī)的N個(gè)DNA序列,直接增加了秘鑰空間,因此增強(qiáng)了該方法的安全性。
附圖說明
圖1為明文圖像;
圖2為密文圖像;
圖3為DNA編碼后可糾錯(cuò)密文圖像;
圖4為包含1000個(gè)錯(cuò)誤的密文圖像;
圖5為圖3與圖4的差值圖像;
圖6糾錯(cuò)之后恢復(fù)的原始圖像;
圖7本發(fā)明的結(jié)構(gòu)簡(jiǎn)圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
實(shí)施例1
本實(shí)施例提供了一種基于DNA編碼的圖像加密糾錯(cuò)方法,包括:
S1:將初始密鑰作為混沌映射的初始條件,生成加密所需的混沌序列;
所述初始密鑰隨機(jī)生成,將初始密鑰分成兩份,分別作為兩個(gè)混沌映射的初始值,所述混沌映射為xi+1=μxi(1-xi),其中μ參數(shù),x1為初始值,μ∈[3.9,4],x1∈(0,1),迭代混沌映射,生成加密所需的混沌序列。
S2:將生成的混沌序列進(jìn)行排列生成用于圖像加密的置亂序列,置亂原始圖像中的像素位置;
S3:對(duì)生成的混沌序列進(jìn)行整數(shù)化處理,得到用于圖像加密的擴(kuò)散序列,并采用擴(kuò)散操作,改變置亂后的圖像的像素值,完成對(duì)原始圖像的加密;
S4:序列間漢明距離約束條件為:其中H(u,v)表示序列u,v間的漢明距離;
逆補(bǔ)序列間的漢明距離約束條件為:其中vC表示序列v的逆補(bǔ)序列;
GC含量約束條件為鳥嘌呤和胞嘧啶在DNA分子中的含量;
將上述三個(gè)條件順序的組合在一起,即先用GC含量對(duì)DNA序列進(jìn)行約束,然后再用另外兩個(gè)約束條件同時(shí)進(jìn)行約束,構(gòu)成DNA序列集合設(shè)計(jì)的約束條件。
S5:對(duì)遺傳算法進(jìn)行改進(jìn),在選擇算子中采用最優(yōu)保存策略,在變異算子中采用動(dòng)態(tài)變異算子,即根據(jù)適應(yīng)度值的高低把種群中的個(gè)體分為3類,最小的變異概率為0.01,其次為0.03,最大的變異概率為0.3。用改進(jìn)的遺傳算法初始化種群,然后根據(jù)組合約束條件對(duì)種群中的個(gè)體進(jìn)行篩選,最終完成對(duì)DNA序列的優(yōu)化設(shè)計(jì),得到具有糾錯(cuò)功能的DNA編碼集合。
S6:在設(shè)計(jì)好的DNA編碼集合中隨機(jī)選出256個(gè)不同的DNA序列,與密文圖像中的像素值一一對(duì)應(yīng),最終將密文圖像完全編碼成DNA序列,生成可糾錯(cuò)的DNA編碼加密圖像。
實(shí)施例2
該實(shí)施例是在以實(shí)施例1的技術(shù)方案為前提下進(jìn)行實(shí)施的,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述實(shí)施例。
步驟1:我們選取256×256大小的標(biāo)準(zhǔn)測(cè)試圖像Lena,由于密鑰長(zhǎng)度為2128bit,將真實(shí)加密密鑰分為大小為264的前后子密鑰,并用它們作為兩個(gè)混沌映射的初始值,生成混沌序列;
步驟2:利用如下公式
Mim(i)=permute(P(i),Order(i)),i=1,2,...,M*N置亂明文圖像,
然后利用該公式擴(kuò)散置亂后的圖像,每一組混沌映射產(chǎn)生的序列執(zhí)行一輪置亂-擴(kuò)散操作,
上述公式中P(i)表示的是明文圖像的像素,Order(i)表示的是混沌順序,Min(i)表示的是置亂后的圖像像素,Orbit(i)表示的是混沌軌道值,C(i)表示加密后的圖像;
步驟3:利用構(gòu)建好的組合約束條件,采用改進(jìn)的遺傳算法對(duì)DNA序列進(jìn)行集合設(shè)計(jì),選擇算子為最優(yōu)保存,交叉概率為0.6,動(dòng)態(tài)變異為0.01,0.03和0.3,進(jìn)化代數(shù)為500。其中DNA序列的長(zhǎng)度為8個(gè)堿基,漢明距離設(shè)為3;
步驟4:設(shè)計(jì)出336個(gè)DNA漢明碼序列,如表1所示。
表1 DNA序列集合
從中隨機(jī)選取256個(gè)DNA序列用于編碼密文圖像的像素值,表2為編碼像素值的DNA序列,0~255代表圖像的像素值,后面為一一對(duì)應(yīng)的DNA編碼;
表2編碼像素值的DNA序列
步驟5:最終將密文圖像完全編碼成DNA序列,生成可糾錯(cuò)的DNA編碼加密圖像。
從模擬結(jié)果和安全分析可以得出,該方法具有良好的加密效果,并能實(shí)現(xiàn)糾錯(cuò)功能。同時(shí)本發(fā)明不僅可以實(shí)現(xiàn)對(duì)加密圖像進(jìn)行DNA編碼,而且編碼后的數(shù)據(jù)具有糾錯(cuò)功能。由于在編碼像素值時(shí)使用隨機(jī)的256個(gè)DNA序列,直接增加了秘鑰空間,因此增強(qiáng)了本發(fā)明的安全性。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明披露的技術(shù)范圍內(nèi),根據(jù)本發(fā)明的技術(shù)方案及其發(fā)明構(gòu)思加以等同替換或改變,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。