基于低密度奇偶校驗(yàn)編碼和混沌系統(tǒng)的圖像文件加密
為提高圖像傳輸?shù)陌踩院涂煽啃?,提出一種結(jié)合LDPC編碼和混沌系統(tǒng)的圖像加密方法。首先,通過奇偶校驗(yàn)碼將像素值擴(kuò)展為10比特,并計(jì)算標(biāo)準(zhǔn)差作為混沌映射初值;其次,使用Arnold變換置亂像素位置,并利用Henon映射擴(kuò)散像素值;最后,從10比特像素值中分離高2比特經(jīng)LDPC編碼實(shí)現(xiàn)無差錯(cuò)傳輸,而其余8比特則為加密結(jié)果。
一、加密算法描述
1、預(yù)處理
將M×N的原圖像各像素灰度值轉(zhuǎn)換為二進(jìn)制表示并判斷奇偶性,針對偶數(shù)位的像素,在8b二進(jìn)制灰度值尾部加“01”,而對奇數(shù)位的像素,加“00”將其擴(kuò)展為10b二進(jìn)制奇校驗(yàn)碼,最后將其轉(zhuǎn)化為10進(jìn)制表示(0 -1023)。
為了提高加密算法對明文的敏感度,計(jì)算經(jīng)過奇偶校驗(yàn)擴(kuò)展的圖像矩陣的標(biāo)準(zhǔn)差,除以1024后作為內(nèi)部密鑰南,并將其與混沌初值相加。
2、混沌系統(tǒng)加密
混沌現(xiàn)象是在非線性動(dòng)力學(xué)系統(tǒng)中出現(xiàn)的確定性的、偽隨機(jī)的過程,這種過程對初始條件的高度敏感性和高度隨機(jī)性,符合Kerck-hoffs準(zhǔn)則等特性,具有良好的密碼學(xué)特性。
(1)Henon映射擴(kuò)散
Henon映射是二次方型非線性的二維映射,定義為:
![]()
為了適合本文預(yù)處理圖像的特點(diǎn),在加密算法中使用如下取模改造的Henon映射:
![]()
其中:1.1≤a≤1.5,0.2≤b≤0.4,與初值xo,yo構(gòu)成密鑰。
設(shè)定初值xo,yo根據(jù)式(2)迭代MxN次得到x1和y1,然后以x1和Y11作為初值生成長度為MxN的混沌序列,將其轉(zhuǎn)換為MxN的矩陣形式,與經(jīng)過預(yù)處理的像素值按位異或進(jìn)行擴(kuò)散加密。
(2)Arnold變換置亂
設(shè)原圖像A為MxN大小,假設(shè)像素位置為(x,y),經(jīng)幾何置亂變換后的像素位置為(x’,y’),本文采用不等長Arnold變換進(jìn)行置亂,以置亂輪數(shù)為密鑰,可表示為:
![]()
其中:a=1,b>0,c=n*q,q=N/gcd(M<N),d=1+b*c。
利用非等長Arnold變換的反算法可以直接快速恢復(fù)圖像。其具體公式為:
![]()
3、LDPC編碼加密
LDPC碼是一種性能接近Shannon限的好碼,且與Turbo碼相比,編譯碼方法更簡單。
LDPC是線性分組糾錯(cuò)碼,可以由檢驗(yàn)矩陣H唯—定義。由于G×Ht=0,所以構(gòu)造校驗(yàn)矩陣舊是編碼的關(guān)鍵,LDPC碼的校驗(yàn)矩陣H是一個(gè)幾乎都是由0組成的,稱為稀疏矩陣。Gallager定義的(n,j,k)LDPC碼是碼長為n,列重為j,行重為k的碼字,在有限域GF(2)中,每個(gè)校驗(yàn)式均為二元異或運(yùn)算。
(1)LDPC編碼加密原理
構(gòu)造大小為N×2N的LDPC碼的校驗(yàn)矩陣H并消去短環(huán),然后對日通過高斯消元轉(zhuǎn)換為H=[I|P],從而得到生成矩陣G= [pT|I],針對2M×N大小的密鑰矩陣K,其LDPC編碼為Ck=KxG;[K×PT|K],K的每一行為一組信息節(jié)點(diǎn),CK的每—行為密鑰矩陣K對應(yīng)行的LDPC編碼。
由于截取者不知道密文和密鑰矩陣的傳輸關(guān)系,從而不能準(zhǔn)確得到內(nèi)部密鑰的編碼,并且不知道加密者所采用的LDPC碼生成矩陣G和校驗(yàn)矩陣日,因而不能解密得到內(nèi)部密鑰,從而不能正確解密。
(2)LDPC譯碼原理
本文采用和積迭代譯碼算法。按照如下譯碼步驟對CK每一行進(jìn)行譯碼。
步驟1 初始化,對信息比特的先驗(yàn)概率賦初值并設(shè)置迭代次數(shù)。
步驟2 水平迭代。按置信傳播算法由信息節(jié)點(diǎn)的先驗(yàn)概率計(jì)算校驗(yàn)節(jié)點(diǎn)的后驗(yàn)概率。
步驟3 垂直迭代。由校驗(yàn)節(jié)點(diǎn)的后驗(yàn)概率計(jì)算出信息節(jié)點(diǎn)的后驗(yàn)概率。
步驟4 對信息節(jié)點(diǎn)的后驗(yàn)概率進(jìn)行硬判決,得到譯碼結(jié)果C,如果CxHT=O,則譯碼結(jié)束;否則跳至步驟2,重復(fù)迭代,直到滿足條件或達(dá)到最大迭代次數(shù),得出最終譯碼結(jié)果。
4、加密步驟
步驟1 對MxN大小的原圖像進(jìn)行預(yù)處理。
步驟2 對預(yù)處理過的圖像使用以L為密鑰的Arnold變換進(jìn)行置亂和以xo,y0,a和b為密鑰的Henon混沌擴(kuò)散加密。
步驟3 將混沌加密以后的圖像像素值轉(zhuǎn)換為二進(jìn)制表示,分離出最高2b并沿行方向進(jìn)行拼接成2M×N的二值矩陣,作為內(nèi)部密鑰,而低8b轉(zhuǎn)換成10進(jìn)制表示后作為密文圖像輸出。
步驟4 對密鑰矩陣進(jìn)行LDPC碼編碼后輸出。
5、解密步驟
步驟1 LDPC碼解碼得到2個(gè)M×N的內(nèi)部密鑰。
步驟2 將密鑰矩陣和密文進(jìn)行二進(jìn)制位拼接,然后進(jìn)行Henon和Arnold混沌解密。
步驟3 按照奇偶校驗(yàn)規(guī)則對各個(gè)像素值進(jìn)行奇校驗(yàn),滿足奇校驗(yàn)規(guī)則,則在校驗(yàn)矩陣相應(yīng)位置輸出0;否則輸出1。
步驟4 針對校驗(yàn)矩陣為l的位置,在解密圖像中相應(yīng)位置,根據(jù)8鄰域像素值對其進(jìn)行線性插值。
步驟5 消掉像素值二進(jìn)制位的末2位得到解密圖像。
二、仿真實(shí)驗(yàn)及結(jié)果分析
對目標(biāo)灰度圖像進(jìn)行加解密仿真驗(yàn)證,并通過分析密鑰敏感度、密鑰空間、相關(guān)性、直方圖、抗差分攻擊能力、抗剪切攻擊能力及抗噪聲能力,驗(yàn)證算法的安全性及可靠性。
1、仿真實(shí)驗(yàn)
以256×256的Lena和Cycle圖像為例,如圖1(a)和(d)所示,取初值xo;0.1,Yo=0.2,a=14,b=0.314,L=7對其進(jìn)行加密,得到密文圖像分別如圖l(b)和(e)所示,密文圖像完全掩蓋了原圖像信息,達(dá)到了加密的目的;解密圖像分別如圖1(d)和(f)所示,說明選取正確的密鑰,本加密算法可以不失真地恢復(fù)原圖像。

2、結(jié)果分析
(1)直方圖分析
以Lena和Cycle圖像為例,原圖像直方圖分別如圖2(a)和(d)所示,密文圖像直方圖分別如圖2(b)和(e)所示,正確解密圖像直方圖分別如圖2(c)和(f)所示。對比可知,密文圖像直方圖與明文圖像直方圖完全不同,不帶有明文圖像的統(tǒng)計(jì)信息,且密文圖像直方圖分布均勻,說明每個(gè)像素的擴(kuò)散到整幅圖中,從而能夠有效抵抗統(tǒng)計(jì)分析攻擊。

(2)密鑰敏感性測試
以Lena圖像為例,選取4組錯(cuò)誤密鑰進(jìn)行解密,測試密鑰的敏感性,圖3(a)為使用錯(cuò)誤初值xo=0.10001,yo=0.199 99,其他密鑰正確的解密圖像;圖3(b)為使用錯(cuò)誤控制參數(shù)a=1.40001,b=0.313 99,其他密鑰正確的解密圖像;圖3(e)為使用錯(cuò)誤置亂輪數(shù)L=6,其他密鑰正確的解密圖像;圖3(d)為使用錯(cuò)誤校驗(yàn)矩陣日,對密鑰矩陣解密錯(cuò)誤,其他密鑰均正確的解密圖像。

由解密實(shí)驗(yàn)結(jié)果分析可知,任何一個(gè)密鑰有輕微的改變(萬分之一),都不能正確解密,只有加密、解密密鑰完全相同的情況下,才能正確解密,因此該算法對密鑰敏感。
(3)密鑰空間分析
為了防止窮舉攻擊,需要設(shè)計(jì)盡可能大的密鑰空間,本加密算法中,Henon映射的初值(x0,y0)和控制參數(shù)(a,b)的精度為10-16,其密鑰空間為1064,加上Arnold的置亂輪數(shù)L,其密鑰空間遠(yuǎn)遠(yuǎn)大于1064,而對于N×2N的校驗(yàn)矩陣,則密鑰空間為2Nx2N,可以有效地抵抗窮舉攻擊。
(4)相鄰像素間相關(guān)性分析
原圖像相鄰像素間相關(guān)性通常很大。相鄰像素的相關(guān)性可以反映出像素的擴(kuò)散程度,所以應(yīng)該讓加密后圖像相鄰像素的相關(guān)性系數(shù)盡可能地小。為驗(yàn)鹺原圖像和加密圖像相鄰像素的相關(guān)性,在2個(gè)圖像中分別隨機(jī)選取了2000對像素對,測試其水平方向、垂直方向和對角方向的像素相關(guān)性,并應(yīng)用式(6)進(jìn)行相關(guān)系數(shù)的計(jì)算:

計(jì)算原圖像、密文圖像和僅密文解密圖像圖像個(gè)方向相關(guān)系數(shù)如表1所示。

由表1可知,加密后圖像的相鄰像素間相關(guān)性顯著減少。
圖4所示為對角方向原始圖像和加密后圖像相鄰像索的相關(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ì)分析能力。

(5)抵抗差分攻擊能力
差分攻擊思想是微小地改變明文,然后分析對應(yīng)密文的改變情況,以發(fā)現(xiàn)明文和密文之間的關(guān)系。為了抵抗該類攻擊,希望當(dāng)明文有很小的變化時(shí),密文則發(fā)生顯著的變化。一般通過計(jì)算改變一個(gè)像素后,相應(yīng)的密文像素變化率(Number of Pixels Change Rate,NPCR)和平均變化密度(Unified Average Changing IntensiLy,UACI)來衡量。
令C1(i,j)和C2(i,j)表示兩個(gè)密文圖像在像素點(diǎn)(i,j)的像素值,且C1和c2所對應(yīng)的明文僅在一個(gè)像素有微小差異,如果C1(i,j)=C2(i,j),則記D(i,j)=0;否則D(i,j)=1。則NPCR和UACI的定義如下:

隨機(jī)將一個(gè)像素的灰度值改變l階,如將Lena圖像像素點(diǎn)(128,127)的值由65改為64,計(jì)算可得NPCR;99.630-/0,UACI=33.45%,說明有99.63%的密文像素受影響,平均像素值改變33.45%;將Cycle圖像像素點(diǎn)(96,69)的值由O改為255。計(jì)算得99.65%的密文像素受影響,平均像素值改變33. 55tr/o,說明該加密算法對明文敏感,抵抗差分攻擊能力比較高。
(6)可靠性分析
為了測試該加密算法的可靠性,對加密圖像(圖1(b))進(jìn)行剪切和增加噪聲,實(shí)施主動(dòng)攻擊測試。
1)剪切攻擊。對密文圖像進(jìn)行不同情況剪切,如圖5(a)一(c)所示,對應(yīng)的解密圖像如圖5(d)一(f)所示。

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

由實(shí)驗(yàn)結(jié)果得出,該加密算法具有良好的抗剪切和噪聲的能力。
三、結(jié)論
通過實(shí)驗(yàn)也證明了這種方法有較高的安全性和可靠性,在圖像信息安全和多媒體通信方面有具有較好的應(yīng)用前景。
小知識之Turbo碼
Turbo碼。它巧妙地將兩個(gè)簡單分量碼通過偽隨機(jī)交織器并行級聯(lián)來構(gòu)造具有偽隨機(jī)特性的長碼,并通過在兩個(gè)軟入/軟出(SISO)譯碼器之間進(jìn)行多次迭代實(shí)現(xiàn)了偽隨機(jī)譯碼。他的性能遠(yuǎn)遠(yuǎn)超過了其他的編碼方式,得到了廣泛的關(guān)注和發(fā)展,并對當(dāng)今的編碼理論和研究方法產(chǎn)生了深遠(yuǎn)的影響,信道編碼學(xué)也隨之進(jìn)入了一個(gè)新的階段。









