基于信道編碼和Henon映射的圖像加密方法

基于信道編碼和Henon映射的圖像加密方法就是利用Henon映射對圖像像素值擴(kuò)散、像素位置置亂以及將像素值擴(kuò)散和像素位置置亂相結(jié)合等方式實(shí)現(xiàn)對圖像的加密,可以達(dá)到較好的加密效果。然后將加密圖像經(jīng)糾錯(cuò)編碼使其具有糾錯(cuò)能力,如利用低密度奇偶校驗(yàn)碼的優(yōu)良性能,對隱藏信息和數(shù)字水印進(jìn)行保護(hù),實(shí)現(xiàn)了無差錯(cuò)傳輸。但是這種分兩步操作方法,增加了系統(tǒng)的復(fù)雜性和延時(shí),因而將兩步結(jié)合而同時(shí)實(shí)現(xiàn)加密和糾錯(cuò)會(huì)使效率更高。

一、加密算法描述

1、位平面分解

數(shù)字圖像的灰度值可以用8位比特序列表示,若將各像素值的第i個(gè)位取出來,得到一幅稱為位平面的二值圖像。高位位平面代表圖像輪廓信息,集中了圖像大部分信息,對像素值的影響較大,中間位位平面代表圖像的背景信息,低位位平面代表圖像的細(xì)節(jié)信息。

將一幅MXN的灰度圖像從高位到低位依次分解為8個(gè)MXN的二值位平面,用于編碼加密。

2、LDPC編碼加密

LDPC碼由Gallager博士于1962年提出,是一種性能接近Shannon限的好碼,與Turbo碼相比,編譯碼方法更簡單。

LDPC碼是線性分組糾錯(cuò)碼,可以由檢驗(yàn)矩陣H唯一定義。由于:

基于信道編碼和Henon映射的圖像加密方法

所以構(gòu)造校驗(yàn)矩陣日是編碼的關(guān)鍵,LDPC碼的校驗(yàn)矩陣H是一個(gè)幾乎都是由O組成的,稱為稀疏矩陣。Gallager定義的(n,j,k)LDPC碼是碼長為n,列重為j,行重為k的碼字,在有限域GF(2)中,每個(gè)校驗(yàn)式均為二元異或運(yùn)算。

(1)LDPC編碼加密原理

將大小為M×N的高兩位二值位平面沿行方向拼接成2M×N的二值矩陣K。

構(gòu)造大小為N×2N的LDPC碼的校驗(yàn)矩陣H并消去短環(huán),然后對H通過高斯消元轉(zhuǎn)換為:

基于信道編碼和Henon映射的圖像加密方法

從而得到生成矩陣:

基于信道編碼和Henon映射的圖像加密方法

針對2M×N大小的矩陣K,其LDPC編碼為:

基于信道編碼和Henon映射的圖像加密方法

K的每一行為一組信息節(jié)點(diǎn),Q的大小為2M×2N,其每—行為K對應(yīng)行的LDPC碼系統(tǒng)編碼,根據(jù)高斯消元的變換順序?qū)x進(jìn)行逆排序,變成非系統(tǒng)碼。

將CK分解為4個(gè)MXN的二值矩陣,與原圖像其他6個(gè)位平面進(jìn)行重構(gòu),得到10比特灰度圖像。

(2)LDPC譯碼原理

采用和積迭代譯碼算法,按照如下譯碼步驟對CK每一行進(jìn)行譯碼。

Step1初始化:對信息比特的先驗(yàn)概率賦初值并設(shè)置迭代次數(shù)。

Step2水平迭代:按置信傳播算法由信息節(jié)點(diǎn)的先驗(yàn)概率計(jì)算校驗(yàn)節(jié)點(diǎn)的后驗(yàn)概率。

Step3垂直迭代:由校驗(yàn)節(jié)點(diǎn)的后驗(yàn)概率計(jì)算出信息節(jié)點(diǎn)的后驗(yàn)概率。

Step4對信息節(jié)點(diǎn)的后驗(yàn)概率進(jìn)行硬判決,得到譯碼結(jié)果侖,如果c×Ht=0,則譯碼結(jié)束。否則跳至Step2,重復(fù)迭代,直到滿足條件或達(dá)到最大迭代次數(shù),得出最終譯碼結(jié)果K。

3、Henon映射加密

Henon映射在非線性動(dòng)力學(xué)系統(tǒng)中出現(xiàn)的確定性、偽隨機(jī)的過程,這種過程對初始條件的高度敏感性和高度隨機(jī)性,符合Kerck-hoffs準(zhǔn)則等特性,具有良好的密碼學(xué)特性。

Henon映射是二次方型非線性的二維映射,定義為:

基于信道編碼和Henon映射的圖像加密方法

為了適合本文預(yù)處理圖像的特點(diǎn),在算法中使用改進(jìn)的Henon映射,具體形式為:

基于信道編碼和Henon映射的圖像加密方法

其中參數(shù)a,b滿足1.1≤a≤1.5, 0.2≤b≤0.4,并與初值x0和y0構(gòu)成密鑰。

設(shè)定初值xo和y0,為了提高算法對明文的敏感度,計(jì)算經(jīng)LDPC編碼后的圖像矩陣的偏差,除以1024后作為內(nèi)部密鑰屜,并將其與Henon映射初值相加對初值進(jìn)行修正。根據(jù)改進(jìn)的henon映射迭代M×N次得到x1和y1,然后以劫和M作為初值生成長度為M×N的混沌序列xn和yn.從xn和yn中任選長度為M和N的序列分別進(jìn)行排序,根據(jù)排序值生成行/列置亂矩陣,用于圖像像素位置置亂。令:

基于信道編碼和Henon映射的圖像加密方法

并將其轉(zhuǎn)換為M×N的矩陣形式,與經(jīng)過預(yù)處理的像素值按位異或進(jìn)行擴(kuò)散加密。

二、加密和解密步驟

1、加密步驟

(1)將輸人圖像進(jìn)行位平面分割得到8個(gè)M×N的二值位平面。

(2)對高兩位位平面進(jìn)行LDPC碼編碼,得到4個(gè)M×N的二值矩陣。

(3)進(jìn)行位平面重構(gòu),得到10比特灰度圖像。

(4)計(jì)算圖像標(biāo)準(zhǔn)差對Henon映射初值進(jìn)行修正,然后利用Henon映射進(jìn)行置亂和擴(kuò)散加密。

(5)分離出高兩位位平面作為內(nèi)部密鑰輸出,剩余8位位平面構(gòu)成的密文圖像輸出。

2、解密步驟

(1)將內(nèi)部密鑰和密文圖像經(jīng)過位平面重構(gòu),得到10比特圖像。

(2)利用Henon映射得到的擴(kuò)散矩陣和置亂矩陣分別進(jìn)行解密。

(3)利用解密后圖像的高4位位平面,通過LDPC譯碼得到2個(gè)解碼后的位平面。

(4)將解碼得到的2個(gè)位平面與其他6個(gè)位平面重構(gòu)得到解密圖像。

三、仿真實(shí)驗(yàn)

以256×256像素的Cameraman和Cell圖像為例,如圖1(a)和(d)所示,取初值:

基于信道編碼和Henon映射的圖像加密方法
對其進(jìn)行加密,得到密文圖像分別如圖1(b)和(e)所示,密文圖像完全掩蓋了原圖像信息,達(dá)到了加密的目的;解密圖像分別如圖l(c)和(f)所示,說明選取正確的密鑰,本算法可以不失真的恢復(fù)原圖像。

基于信道編碼和Henon映射的圖像加密方法

四、加密效果分析

1、直方圖分析

以Cameraman和Cell圖像為例,原圖像直方圖分別如圖1(a)和(d)所示,密文圖像直方圖分別如圖l(b)和(e)所示,正確解密圖像直方圖分別如圖l(c)和(f)所示。

對比可知,密文圖像直方圖與明文圖像直方圖完全不同,不帶有明文圖像的統(tǒng)計(jì)信息,且密文圖像直方圖分布均勻,說明每個(gè)像素的擴(kuò)散到整幅圖中,從而能夠有效抵抗統(tǒng)計(jì)分析攻擊。

2、抗剪切和抗噪聲攻擊分析

為了測試該算法的抗剪切攻擊和抗噪聲攻擊能力,驗(yàn)證傳輸中的可靠性和抗主動(dòng)攻擊性,對Cam-eraman圖像的加密圖像(圖1(b))進(jìn)行不同情況的剪切和增加不同的噪聲,模擬主動(dòng)攻擊測試。

(1)剪切攻擊

對密文圖像進(jìn)行不同情況剪切,如圖2(a)(b)(c)所示,對應(yīng)的解密I到像如圖2(d)(e)(f)所示。

基于信道編碼和Henon映射的圖像加密方法

(2)噪聲攻擊

對密文圖像增加2%和20%的椒鹽噪聲,對應(yīng)的解密圖像如圖3(a)和(b)所示。

基于信道編碼和Henon映射的圖像加密方法

由實(shí)驗(yàn)結(jié)果得出,該加密算法具有良好的抗剪切和噪聲的能力,可稚性較高。

3、密鑰敏感性測試

以Cameraman圖像為例,選取3組錯(cuò)誤密鑰進(jìn)行解密測試密鑰的敏感性,圖4(a)為使用錯(cuò)誤初值:

xo =0.0999999,y0=0. 2000001

其他密鑰正確的解密圖像;圖4(b)為使用錯(cuò)誤控制參數(shù):

a=1. 399999g,b=0. 3140001

其他密鑰正確的解密圖像;圖4(c)為使用錯(cuò)誤校驗(yàn)矩陣H,對密鑰矩陣解密錯(cuò)誤,其他密鑰均正確的解密圖像。

由解密實(shí)驗(yàn)結(jié)果分析可知,任何一個(gè)密鑰有微小的改變(百萬分之一),都不能正確解密。只有加、解密密鑰完全相同的情況下,才能正確解密,因此該算法對密鑰敏感。

基于信道編碼和Henon映射的圖像加密方法

4、密鑰空間分析

為了防止窮舉攻擊,需要設(shè)計(jì)盡可能大的密鑰空間,本算法中,Henon映射的初值(xo,yo)和控制參數(shù)(a,b)的精度為10-16,其密鑰空間為10-16,而對于N×2N的校驗(yàn)矩陣或生成矩陣,如果窮舉攻擊,其密鑰空間為2N×2N,這對于常見圖像而言是非常困難的,從而該算法可以有效地抵抗窮舉攻擊。

5、相鄰像素間相關(guān)性分析

相鄰像素的相關(guān)性取值越小,說明圖像相鄰像素灰度值關(guān)聯(lián)程度越低,圖像越混亂,所以應(yīng)該讓加密后圖像相鄰像素的相關(guān)性系數(shù)盡可能地小。為驗(yàn)證原圖像和加密圖像桐鄰像素的相關(guān)性,在圖像中隨機(jī)選取了2000個(gè)像素對,分別測試其水平方向、垂直方向和對角方向的像素相關(guān)性,應(yīng)用公式:

基于信道編碼和Henon映射的圖像加密方法

進(jìn)行相關(guān)系數(shù)的計(jì)算,其中:

基于信道編碼和Henon映射的圖像加密方法

以Cameraman圖像為例,計(jì)算原圖像、密文圖像各方向相關(guān)系數(shù)如表1所示。

基于信道編碼和Henon映射的圖像加密方法

由表1可知,加密后圖像的栩鄰像素問相關(guān)性顯落減少。

圖5所示為對角方向原始圖像和加密后圖像相鄰像素的相關(guān)關(guān)系。可見,原始圖像像素間的相關(guān)性呈現(xiàn)明顯的線性結(jié)構(gòu),而加密圖像像素間的相關(guān)性呈現(xiàn)隨機(jī)的對應(yīng)關(guān)系,說明本算法具有較強(qiáng)的抗統(tǒng)計(jì)分析能力。

基于信道編碼和Henon映射的圖像加密方法

6、抵抗差分攻擊能力

為了抵抗差分攻擊,希望當(dāng)明文有很小的變化時(shí),密文則發(fā)生一半以上的變化。一般通過計(jì)算改變一個(gè)像素后,相應(yīng)的密文像素變化率NPCR和平均變化密度UACI來衡量。

令C1(i,j)和C2(i,j)表示兩個(gè)密文圖像在像素點(diǎn)(i,j)的像素值,且C1和C2所對應(yīng)的明文僅在一個(gè)像素有微小差異。若記:

基于信道編碼和Henon映射的圖像加密方法

則NPCR和UACI可定義為:

基于信道編碼和Henon映射的圖像加密方法

隨機(jī)將一個(gè)像素的灰度值改變1階,如將Cameraman圖像像素點(diǎn)(128,127)的值由13改為12,計(jì)算可得NPCR=99. 62%, UACI=33. 34%,說明有99. 62%的密文像素受影響,平均像素值改變33. 45%;將Cell圖像像素點(diǎn)(96,69)的值由101改為102,計(jì)算得NPCR=99. 60%, UACl=33. 4896,說明有99. 60%的密文像素受影響,平均像素值改變33. 48%。

由此可見,該加密算法對明文敏感,抵抗差分攻擊能力比較高。

目前,基于LDPC碼的加密算法研究主要集中在對數(shù)字水印的保護(hù)方面,本文采用LDPC碼和Henon映射相結(jié)合的加密方法對圖像進(jìn)行復(fù)合文件加密,同時(shí)解決了圖像傳輸?shù)陌踩院汪敯粜詥栴}。

針對數(shù)字圖像信息主要集中在高位位平面的特點(diǎn),利用LDPC碼對高位位平面數(shù)據(jù)進(jìn)行編碼加密,實(shí)現(xiàn)了高位位平面數(shù)據(jù)傳輸?shù)母呖煽啃?,同時(shí)由于截取者不知道密文和密鑰內(nèi)部的分離傳輸關(guān)系,不能準(zhǔn)確得到內(nèi)部密鑰的編碼,并且不知道加密者所采用的LDPC碼生成矩陣G和校驗(yàn)矩陣日,因而不能解密得到K,從而不能正確解密。實(shí)驗(yàn)結(jié)果表明,該方法中明文、密文、密鑰之間具有高度的非線性關(guān)系,密文對明文高度敏感,明文微小的變化將影響整幅密文圖像,能夠很好地抵抗差分攻擊,且具有較強(qiáng)的抗干擾能力和抗剪切、篡改等攻擊能力。

小知識(shí)之信道編碼

為了與信道的統(tǒng)計(jì)特性相匹配,并區(qū)分通路和提高通信的可靠性,而在信源編碼的基礎(chǔ)上,按一定規(guī)律加入一些新的監(jiān)督碼元,以實(shí)現(xiàn)糾錯(cuò)的編碼。