邵一丹,王中訓(xùn),李心宇,張夢雨
(煙臺大學(xué)物理與電子信息學(xué)院,山東煙臺 264005)
在當(dāng)今世界,網(wǎng)絡(luò)信息技術(shù)幾乎覆蓋到了每一個角落,生活中的很多方面都離不開計(jì)算機(jī)。人們享受著計(jì)算機(jī)帶來巨大便利的同時,隱私信息也面臨著被泄露的風(fēng)險(xiǎn)。
圖像包含的信息量較多,作為信息存儲和傳輸過程中的一種重要載體,被廣泛應(yīng)用[1]。圖像在人們的生活中發(fā)揮著越來越重要的作用,大量的圖片在社交網(wǎng)絡(luò)中傳輸,但也容易泄露個人的隱私。比如,有的人用他人的照片通過人臉識別取走當(dāng)事人的快遞,在網(wǎng)絡(luò)世界中,人們也可以通過圖像來獲得各種各樣的信息,如何保證圖像信息的安全傳輸和存儲,成為信息安全的一個及其重要的領(lǐng)域[2]。
為了提高數(shù)字圖像安全性,這里運(yùn)用了2D Logistic-Sine 混沌系統(tǒng)與LDPC 碼相結(jié)合的圖像加密方案,相比較一維的混沌系統(tǒng),有著更為優(yōu)良的特性,不易被破解,從而提高了密圖的安全性。最后通過Matlab 進(jìn)行仿真分析,得到了不錯的加密效果。
LDPC(Low Density Parity Check)碼概念首次出現(xiàn)是在1960年,由Gallager 教授在其博士論文中提出。由于相較于校驗(yàn)矩陣H的長度,它的行列中存在著特別小的非零數(shù)[3],即“1”的數(shù)目要遠(yuǎn)遠(yuǎn)比“0”的數(shù)目小得多。這也是LDPC 碼之所以會被稱作為低密度奇偶校驗(yàn)碼的原因。正是出于這個原因,使得LDPC 碼的復(fù)雜程度低,并且提高了其性能,使得LDPC 碼得到了較為廣泛的應(yīng)用。
H為校驗(yàn)矩陣,其大小設(shè)定為m×n,并用它來對LDPC 碼進(jìn)行定義。在校驗(yàn)矩陣H當(dāng)中,校驗(yàn)信息由每行來對應(yīng),碼字信息則由列與其對應(yīng)。校驗(yàn)矩陣H中每列非零元素的個數(shù)稱為列重[4],并用λ來表示;同理可得,行重則是每行非零元素的數(shù)目,這里用ρ來表示。
校驗(yàn)矩陣H有著如下幾個特點(diǎn):
1)每行的元素1數(shù)目是一致的?!?”的數(shù)目即為行重。在如式(1)所表示的校驗(yàn)矩陣H中,該行重為3。
2)每列的元素1 數(shù)目是相同的?!?”的數(shù)目即為列重。在如式(1)所表示的校驗(yàn)矩陣H中,該列重為2。
3)任何兩行或者兩列之間,非零元素重合的次數(shù)小于或等于1。不是零的元素分布較為稀疏。
當(dāng)HcT滿足等于零的條件時,也可以用方程的方式來表述LDPC碼,校驗(yàn)方程如式(2)所示:
除了校驗(yàn)矩陣和方程這兩種方式能表述LDPC碼之外,Tanner 圖也可用于表示LDPC 碼。Tanner 圖中運(yùn)用圖形來表示,更加清楚地展示了碼元節(jié)點(diǎn)跟校驗(yàn)節(jié)點(diǎn)之間的關(guān)系。利用碼字的校驗(yàn)方程來表現(xiàn)碼字就是Tanner 圖的本質(zhì)所在。
兩種頂點(diǎn)(比特節(jié)點(diǎn)以及校驗(yàn)節(jié)點(diǎn))出現(xiàn)在Tanner圖當(dāng)中。從某一個節(jié)點(diǎn),例如從C0開始,不經(jīng)歷重復(fù)的邊,最終又返回到這個節(jié)點(diǎn)的閉合回路稱為環(huán)。在閉合回路中走過的邊的數(shù)目是環(huán)長,最短環(huán)長也可以稱作圍場,指的是經(jīng)歷邊數(shù)最少的環(huán)。Tanner 圖如圖1 所示。
圖1 H(6,2,3)校驗(yàn)矩陣的Tanner圖
在Tanner 圖里存在著循環(huán),在譯碼的過程中有概率會出現(xiàn)校驗(yàn)信息重復(fù)反饋的情況,從而使得譯碼的準(zhǔn)確率降低,因此,構(gòu)造校驗(yàn)矩陣的過程中應(yīng)盡量避免圍長較短的循環(huán)產(chǎn)生[5]。
經(jīng)典的置信傳播(Belief Propagation,BP)算法,是一種軟判決算法[6]。BP 譯碼算法的原理:其譯碼思想和BF 類似,在信息傳輸過程中沿著Tanner 圖邊進(jìn)行傳遞,這種傳遞是雙向的[7]。
BP 譯碼方式第一步就是將變量節(jié)點(diǎn)進(jìn)行初始化,然后每個變量節(jié)點(diǎn)通過與校驗(yàn)節(jié)點(diǎn)相連的邊將概率信息傳遞給校驗(yàn)節(jié)點(diǎn)[8]。信息經(jīng)過校驗(yàn)節(jié)點(diǎn)計(jì)算更新之后再傳回到變量節(jié)點(diǎn)中,接著,變量節(jié)點(diǎn)依據(jù)更新以后的信息做判決,這便是一次迭代的過程。最終結(jié)束譯碼的條件是找到了允許使用的碼字或者是到達(dá)了最大的迭代次數(shù)。通過多次迭代計(jì)算使得譯碼結(jié)果更加精準(zhǔn),誤碼率更低[9]。
若xl表示變量節(jié)點(diǎn),sm代表的是校驗(yàn)節(jié)點(diǎn),那么表示的是xl向sm傳遞的信息,則sm傳遞給xl的信息就用來表示。不包含xl這個變量節(jié)點(diǎn)的L(m)集合記為L(m)l,不包括sm這個校驗(yàn)節(jié)點(diǎn)的M(l)集合記為M(l)m。
如果Hml滿足等于1的條件,則l執(zhí)行下面的步驟。
3)變量節(jié)點(diǎn)更新如下:
在上述公式中,aml是一個比較特殊的存在,它可以使得與兩者的和保持為1。
4)似后驗(yàn)概率更新如下:
其中,al與aml作用相類似,它的存在可以使得與兩者的和保持為1。
5)比特判決,當(dāng)?shù)娜≈荡笥?.5時,xl的數(shù)值就等于0;否則,判定的xl數(shù)值就等于1,l=1,2,…,N。當(dāng)HTx=0 或者到達(dá)了最大迭代次數(shù)時,結(jié)束譯碼,輸出譯碼結(jié)果x,如果還未滿足要求,則跳回到步驟2)循環(huán)執(zhí)行。
混沌系統(tǒng)有許多特性,如初值敏感性、隨機(jī)性、遍歷性和不可預(yù)測性等特點(diǎn),被廣泛應(yīng)用于圖像加密[10]。
Logistic 映射表現(xiàn)為一種迭代或映像過程[11]。Logistic 映射用數(shù)學(xué)公式可以描述為[12]:
經(jīng)過多次的實(shí)驗(yàn),如果想要映射處于混沌的狀態(tài),μ要滿足的條件是3.569 945<μ≤4。參數(shù)μ與數(shù)值4 越相近,x的取值范圍越是平均分布在0 和1 的整個區(qū)域[13]。其結(jié)果展現(xiàn)出了偽隨機(jī)分布狀態(tài)。μ=4時,Logistic 映射進(jìn)入滿映射狀態(tài)[14]。
Sine 映射公式為:
2D Logistic-Sine 公式為:
其中,α∈[0,1]。
2D Logistic-Sine 的加密流程如圖2 所示。
圖2 加密流程
首先,把待加密處理的圖像進(jìn)行位平面的分割,得到了8 個二值位平面,再對最高的兩位位平面進(jìn)行LDPC 編碼,重構(gòu)位平面,得到10 bit 灰度圖。設(shè)定初值x0=0.5,y0=0.8,a=0.99。利用混沌系統(tǒng)對圖像進(jìn)行置換以及行列擴(kuò)散操作。
原始圖像如圖3 所示。
圖3 原始圖像
首先,將圖像進(jìn)行置亂操作,結(jié)果如圖4 所示。
圖4 置亂后圖像
對圖像再進(jìn)行行擴(kuò)散與列擴(kuò)散操作,結(jié)果分別為圖5 與圖6 所示。
圖5 行擴(kuò)散后圖像
圖6 列擴(kuò)散后圖像
分離出高兩位位平面作為內(nèi)部密鑰輸出,剩余8位位平面構(gòu)成的密文圖像輸出。
最終加密圖像如圖7 所示。
圖7 最終加密圖像
解密就是取反的過程,依次進(jìn)行列解密、行解密、置亂恢復(fù)。分離出高四位位平面,經(jīng)過LDPC 譯碼最終得到解碼之后的位平面。將解碼之后的位平面與6個位平面重構(gòu),得到解密圖像如圖8所示。
圖8 解密圖像
直方圖是基本統(tǒng)計(jì)特征,它所表示的是灰度級函數(shù)。分布越均勻,越能掩藏明文圖像像素值的散布情況,使對抗人員難以破解,獲得相關(guān)的信息[15]。
直方圖的定義如下:
原圖像的直方圖如圖9 所示,加密后直方圖如圖10 所示。
圖9 原圖像直方圖
圖10 加密圖像直方圖
加密后的直方圖較為均勻,說明加密效果較好。
圖像相鄰像素相關(guān)性能夠真實(shí)反映圖像相鄰位置像素灰度值的相關(guān)程度[16]。
計(jì)算公式如下:
表1 為圖像的相關(guān)性。
表1 圖像的相關(guān)性
相鄰像素點(diǎn)的相關(guān)性取值越小,表明了圖像相鄰像素灰度值關(guān)聯(lián)程度就越低,圖像就更加的無序混亂,所以應(yīng)使加密后的圖像相鄰像素的相關(guān)性系數(shù)越小越好。
信息熵反映了灰度值的分布狀態(tài)。如果灰度值均勻分布,就有著更大的信息熵。
原始圖像信息熵為7.009 7;加密圖像信息熵為7.997 2,接近于8。越接近于8,經(jīng)過信息熵來獲取圖像的信息就越困難。
選擇不正確的初值進(jìn)行解密,如x0=0.499 99,y0=0.800 01,再進(jìn)行解密,錯誤解密圖如圖11 所示。
圖11 錯誤解密圖
解不出原始圖像,說明該系統(tǒng)較為敏感。
假設(shè)精度為10-16,那么該算法的密鑰空間為1048,密鑰空間大于Logistic 映射的1030,更能抵御窮舉攻擊。
該文采用LDPC 碼與2D Logistic-Sine 相結(jié)合的加密方法,對圖像進(jìn)行加密,加密后無法用肉眼獲得有用信息,加密效果較為理想。而且相對于一維的混沌系統(tǒng),有著更大的密鑰空間,也相對不容易被破解,提高了安全性,然而LDPC碼的編譯碼速率還有待進(jìn)一步提升。