圖像文件加密方法之LDPC碼和Rao_Nam體制

為實(shí)現(xiàn)圖像的糾錯(cuò)碼加密,解決圖像傳輸中安全和可靠性問(wèn)題,提出一種基于LDPC碼的Rao-Nam體制的圖像文件加密方法。

一、加密算法描述

1、LDPC碼

LDPC碼是線性分組糾錯(cuò)碼,它的校驗(yàn)矩陣H是“稀疏”矩陣。一個(gè)二元(n,k)LDPC碼C是通過(guò)(n-k)*n的奇偶校驗(yàn)矩陣H來(lái)定義的。

其中n為碼長(zhǎng),k為信息位個(gè)數(shù),n-k為校驗(yàn)位個(gè)數(shù),碼率R=k/n。

碼長(zhǎng)為n的二元LDPC碼的校驗(yàn)矩陣H可以表示為(n,q,p)須滿足:

1)矩陣每行非零元素個(gè)數(shù)為p;

2)矩陣每列非零元素個(gè)數(shù)為q;

3)矩陣的任意兩行(或兩列)重疊非零元素的個(gè)數(shù)不超過(guò)1;

4)非零元素的位置按行(或列)隨機(jī)排列,且分布稀疏,即p和q相比行、列數(shù)很小。

2、混沌系統(tǒng)

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

(1)Henon映射

Henon映射是二次方型非線性的二維混沌映射,其中參數(shù)a,b滿足

1.1≤a≤1.5, 0.2≤b≤0.4,

與初值O<xo<l,O<Yo<l構(gòu)成密鑰。

(2)Logistic映射

Logistic映射是一種簡(jiǎn)單而廣泛應(yīng)用的一維混沌映射,其中3. 5699≤μ≤4,O< zN< 1構(gòu)成密鑰。

3、RatrNam私鑰加密體制

設(shè)c為二進(jìn)制[n,k]線性碼,G為生成矩陣,S為k×k階滿秩矩陣,P為n×n階置換矩陣。

設(shè)明文m為CF(2)上kbit向量,私鑰為G、S、P,則加密變換為:

c=(mSG+z)P,

其中,z為從伴隨式錯(cuò)誤表中隨機(jī)選取的錯(cuò)誤圖樣。

解密變換為:

(1)乘P-1:

cp-l =mSG+z;

(2)譯碼:得到mS,z;

(3)乘s-1,得到m。

二、圖像糾錯(cuò)加密方案

1、位平面分解

對(duì)于一幅數(shù)字圖像,可以分解為多個(gè)二進(jìn)制位平面,不同的位平面代表圖像不同的信息,高位位平面代表圖像輪廓信息,低位代表圖像細(xì)節(jié)信息,中間位代表圖像背景信息,對(duì)于不同位平面的處理相當(dāng)于對(duì)圖像不同信息位置的處理。將一幅JVXN的灰度圖像A從高位到低位依次分解為8個(gè)MXN的二值位平面,并沿行方向拼接成8MX8N的二值矩陣B。

2、LDPC碼設(shè)計(jì)

構(gòu)造(N,q,p)的二元LDPC碼校驗(yàn)矩陣上H,一般情況下,校驗(yàn)矩陣是隨機(jī)構(gòu)造的,因此是非系統(tǒng)化的,在編碼時(shí),將校驗(yàn)矩陣H進(jìn)行高斯消元,則生成矩陣,其中J為單位矩陣,H和G的大小為N×2N。

3、置換矩陣S、P和錯(cuò)誤圖樣E的設(shè)計(jì)

設(shè)定Henon映射初值x0,y0參數(shù)a,b根據(jù)式(1)迭代M×N次得到x1,y1,然后代入x1和y1作為初值生成長(zhǎng)度為MXN的混沌序列Xn和yn,從Xn和yn中任選長(zhǎng)度為8×M和2×N的序列分別進(jìn)行排序,根據(jù)排序值生成行/列置亂矩陣S和p,只需將原圖像的像素點(diǎn)移至置換矩陣對(duì)應(yīng)位置所表示的新位置處,即達(dá)到置亂目的。

設(shè)定初值z(mì)0,根據(jù)式(2)迭代MXN次得到z1,然后代入z1作為初值生成長(zhǎng)度為8MX 2N的混沌序列zn,將zn:定義在(0,1)上得到偽隨機(jī)序列,對(duì)其進(jìn)行非線性離散化得到0、1序列{Ek:k=l,2,…}:

當(dāng)k=1時(shí),Z1與0.5比較,當(dāng)小于0.5時(shí),E1=O,否則Ei =l;當(dāng)k>l時(shí),zk與Zk-l比較,小于Zk-l時(shí),Ek=0,否則E=1。將B轉(zhuǎn)換為8M×2N的二維矩陣生成錯(cuò)誤圖樣E。

4、加密

私鑰:S,P,E(由混沌系統(tǒng)控制),G;

加密運(yùn)算:C為大小8M×2N的二值矩陣,經(jīng)位平面重構(gòu)生成M×2N的密文圖像。

5、解密

當(dāng)接收者收到密文圖像C后,按照如下步驟計(jì)算得到明文圖像。

(l)將密文圖像經(jīng)位平面分解得到8M×2N的二值矩陣CT;

(2)根據(jù)已知的密鑰參數(shù)計(jì)算得到S,P,E,H;

(3)逆置換:

(4)LDPC碼譯碼得到B+E,減去錯(cuò)誤向量即得到B;

(5)將B位平面重構(gòu)得到解密圖像。

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

該算法加密圖像大小為原始圖像大小的一倍,如果原始圖像的大小為M×N,則密文圖像的大小為M×2N。

以256×256像素的Lena和Couple圖像取初值,及列重為3的校驗(yàn)矩陣H對(duì)其進(jìn)行加密,得到密文圖像。密文圖像大小為256×512,且完全掩蓋了原圖像信息,達(dá)到了加密的目的。解密結(jié)果顯示,選取正確的密鑰,本算法可以不失真的恢復(fù)原圖像。

四、實(shí)驗(yàn)結(jié)果分析

1、統(tǒng)計(jì)分析

(1)直方圖分析

以Lena和Couple圖像為例,如圖1原圖像和密文圖像直方圖所示,對(duì)比可知,密文圖像直方圖分布均勻,統(tǒng)計(jì)規(guī)律與明文完全不同,不帶有明文圖像的統(tǒng)計(jì)信息,從而非法截取者無(wú)法過(guò)直方圖統(tǒng)計(jì)分析解密出明文。

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

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

進(jìn)行相關(guān)系數(shù)的計(jì)算,以Lena圖像為例,計(jì)算原圖像、密文圖像各方向相關(guān)系數(shù),可見(jiàn)加密后圖像的相鄰像素間相關(guān)性顯著減少。

對(duì)角方向原圖像和加密后圖像相鄰像素的相關(guān)關(guān)系??梢?jiàn),經(jīng)過(guò)加密使得像素間的相關(guān)性呈現(xiàn)隨機(jī)的對(duì)應(yīng)關(guān)系,說(shuō)明本算法具有較強(qiáng)的抗統(tǒng)計(jì)分析能力。

2、密鑰分析

(1)密鑰空間分析

本算法通過(guò)混沌系統(tǒng)控制Rao-Nam私鑰的生成,以混沌系統(tǒng)參數(shù)和初值作為外部密鑰,混沌映射的初值(xo,yo,zo)和控制參數(shù)(a,b,μ)的精度為10-16,其密鑰空間為1096,N×2N的校驗(yàn)矩陣有9NX 2N種可能分布,因此該算法密鑰空間足夠大,可以有效地抵抗窮舉攻擊。

(2)密鑰敏感性分析

針對(duì)實(shí)驗(yàn)中Lena圖像的加密結(jié)果,分別選取4組錯(cuò)誤密鑰進(jìn)行解密測(cè)試,以驗(yàn)證算法對(duì)密鑰的敏感性。圖3(a)為使用:

zo=0.1000001,yo =0.1999999

而其他密鑰正確時(shí)的解密圖像;圖3(b)為使用:

zo=0.1000001,a=1.3999999

而其他密鑰正確時(shí)的解密圖像;圖3(c)為使用:

b=0.=3140001,p=3.9979999

而其他密鑰正確時(shí)的解密圖像;圖3(d)為使用H而其他密鑰正確時(shí)的解密圖像。

由解密實(shí)驗(yàn)結(jié)果分析可知,任何一個(gè)密鑰有微小的改變(百萬(wàn)分之一),很難獲得正確解密。只有加、解密密鑰完全相同,才能正確解密,這說(shuō)明本算法對(duì)密鑰具有很強(qiáng)的敏感性。

3、明文敏感性分析

為有效抵抗差分攻擊,要求密文對(duì)明文高度敏感。一般通過(guò)明文微小變化后,密文像素變化率NPCR和平均變化密度UACI來(lái)衡量。

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

則NPCR和UACI的定義如下,隨機(jī)將一個(gè)像素的灰度值改變1階,如將Lena圖像像素點(diǎn)(123,231)的值減1,計(jì)算可得:

NPCR=99. 6246%,UACI= 33. 5184%

說(shuō)明有99.6284%的密文像素改變,平均像素值改變33.5184%;將Couple圖像像素點(diǎn)(114,225)的值加1,計(jì)算得:

NPCR=99.6101%,UACI= 33.54670r4

說(shuō)明有99. 6101%的密文像素改變,平均像素值改變33. 5467%,說(shuō)明該算法對(duì)明文敏感,抵抗差分攻擊能力比較高。

4、對(duì)信道的抗干擾能力分析

將Lena的密文圖像采用BPSK調(diào)制,經(jīng)信噪比分另0為0. 5dB、ldB、2dB、3dB、5dB、7dB、9dB和lOdB的AWGN信道傳輸,解密后圖像如圖4所示。對(duì)應(yīng)的誤碼率(BER)分別為7.114×lo-l,6. 325×l0-2,4.866×10-2,3.471×10-3,1.896×10-3,2.971×10-4,3.757×l0-5和O,說(shuō)明該算法在信道信噪比0. 5dB時(shí)可以恢復(fù)出原圖像主要信息,大于3dB時(shí)可以清楚的恢復(fù)圖像,大于lOdB時(shí)可以準(zhǔn)確無(wú)誤的恢復(fù)原始圖像。

5、抗主動(dòng)攻擊分析

密文在傳輸過(guò)程中可能會(huì)遭到攻擊者擦除、修改或增加噪聲對(duì)密文進(jìn)行損壞,為了測(cè)試該算法的抗主動(dòng)攻擊能力,對(duì)Lena圖像的加密圖像(圖1(b))隨機(jī)擦除l/8、1/4、1/2、3/4,或?qū)ζ浼尤?%、15%、25%、5o%的椒鹽噪聲,其解密結(jié)果如圖5所示。實(shí)驗(yàn)結(jié)果表明,即使密文圖像被擦除掉5o%以下的內(nèi)容,或者加上強(qiáng)度5o%以下的椒鹽噪聲,該算法仍然能直接或通過(guò)后處理較好的恢復(fù)出原圖像,因此說(shuō)明該算法具有一定的抗主動(dòng)攻擊能力。

小知識(shí)之LDPC碼

LDPC碼是麻省理工學(xué)院Robert Gallager于1962年在博士論文中提出的一種具有稀疏校驗(yàn)矩陣的分組糾錯(cuò)碼。幾乎適用于所有的信道,因此成為編碼界近年來(lái)的研究熱點(diǎn)。它的性能逼近香農(nóng)限,且描述和實(shí)現(xiàn)簡(jiǎn)單,易于進(jìn)行理論分析和研究,譯碼簡(jiǎn)單且可實(shí)行并行操作,適合硬件實(shí)現(xiàn)。