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