唐永軍
(湖南財經(jīng)工業(yè)職業(yè)技術(shù)學院,湖南 衡陽 421002)
隨著互聯(lián)網(wǎng)時代的到來,大量的數(shù)據(jù)都在網(wǎng)絡(luò)中進行通信,隨之引發(fā)的安全問題也越來越嚴重。數(shù)字水印作為一種有效的防偽手段,受到了學術(shù)界的高度重視,近年來很多學者都對此做出了不少研究,提升了數(shù)字水印的實際性能[1-3]。姚軍財?shù)萚4]提出了一種彩色圖像的盲水印算法。算法首先結(jié)合人眼對比敏感度視覺特性及其模型,在頻域中計算人眼感知原始圖像的對比敏感度閾值,保證了水印的透明性。陳善學等[5]利用最低有效位(LSB)方法,提出了一種數(shù)字水印在空間域進行信息隱藏的方案,該算法利用QDCT的低頻模值系數(shù)嵌入空域的最低有效位,在抗JPEG壓縮、噪聲、對比度調(diào)節(jié)都取得了較好的效果。王瑩等[6]提出了基于QR分解的Contourlet域算法,對各種網(wǎng)絡(luò)攻擊具有較好的魯棒性,但是在水印隱藏方面則效果較差??傮w來說,數(shù)字水印性能有兩大指標,即數(shù)字水印的隱蔽性以及魯棒性,而兩者又具有一定的矛盾,需要平衡。因此需要考慮一種能夠?qū)⑺⌒畔⒏与[蔽地隱藏到宿主圖像,同時利用圖像本身特征使水印方案對多種類型的攻擊具有更強魯棒性[7]。
本文提出一種基于小波變換的水印方案,在宿主圖像的基礎(chǔ)上進行水印信息提取,再根據(jù)提取出的水印,向覆蓋對象添加偽隨機噪聲序列(PN)。實驗基于(512×512)大小的圖像和大小為(8×8)的離散小波變換(DWT)塊,能更好地抵抗高斯濾波等攻擊。
本文提出改進的離散小波變換(DWT)的圖像偽隨機噪聲(PN)序列水印算法。在本文算法中,用小波變換對LH和HL子帶進行分解[8]。HAAR小波是一種正交歸一化小波,具有計算快速、完全可逆、沒邊緣效應(yīng)等優(yōu)勢[9]。Haar小波從水平和豎直兩個方向進行低通和高通濾波,因此本文的數(shù)字水印也從兩個方向分別生成。算法中使用的水印以數(shù)字簽名形式存在,該水印簽名采用偽隨機碼的方式嵌入到輸入圖像的變換系數(shù)中。
對于每個位圖信息,都生成兩個不同的偽隨機噪聲(PN)矩陣,與小波系數(shù)矩陣的大小相同[10]。將相應(yīng)的兩個PN序列值分別加到對應(yīng)的第一級LH和HL系數(shù)值中,如公式(1)所示:
W=V+kXifb=0,
(1)
其中:V是宿主圖像的小波系數(shù),W是水印嵌入后的小波系數(shù),k是增益因子,X是PN值,b是需要嵌入的水印位。此時嵌入每個像素的水印是利用了PN值的的偽隨機性,因此增強了水印算法的安全性。
假設(shè)大小為M×N的圖像I(M,N)用作輸入,整個水印的嵌入流程如下:
步驟1:讀取要隱藏的消息并將其轉(zhuǎn)換為二進制序列Dd(Dd= 1~n)。
步驟2:使用Haar小波變換對輸入圖像進行變換,并獲得第一級子帶系數(shù)cc A,ccH,ccV,ccD。
步驟4:對于Dd= 1~n,當添加位圖信息message為0時,PN序列為ccH和ccV。
ccH= ccH +k*PN_h,
(2)
ccV= ccV +k*PN_v,
(3)
其中:k是用于指定嵌入數(shù)據(jù)強度的增益因子。然后用逆Haar小波變換生成最終的水印圖像Iw(M,N)。整個流程如圖1所示。
圖1 水印嵌入過程
為了檢測水印,在水印插入過程中,使用相同的狀態(tài)密鑰生成并使用相同的偽隨機值,同時用兩個細節(jié)子帶的DWT系數(shù)確定其平均相關(guān)性。然后,對于IH和HI子帶,得到了對應(yīng)于每個PN值的N個相關(guān)系數(shù)的平均值,最后將相關(guān)值的均值作為消息提取的閾值t。在檢測過程中,如果特定序列的平均相關(guān)性超過t,則設(shè)置為“0”;否則設(shè)置為“1”。然后,恢復(fù)過程在整個PN序列中進行迭代,直到恢復(fù)水印的位圖信息。為了提取水印,對圖2所示的水印圖像應(yīng)用以下步驟:
步驟1:讀取水印圖像Iw(M,N),利用Haar小波變換對水印圖像進行變換,得到CCA1、CCH1、CCV1、CCD1系數(shù)。
步驟3:利用以上步驟生成的PN序列對,計算其相關(guān)系數(shù),并將這些值存儲在corr_h(i)和corr_v(i)中。
步驟4:計算相關(guān)平均值corr(i)=(corr_uh(i)+corr_v(i))/2。
步驟5.對計算結(jié)果進行水印信息的提取。
圖2 水印提取過程
本文采用宿主圖像為256×256像素的圖片進行實驗,水印圖像大小為32×32像素。Haar小波濾波器用于小波分解,將宿主圖像分解為4個子帶LL、LH、HL還有HH。水印圖像嵌入在LH和HL子帶。嵌入和提取的水印的流程如圖1和圖2所示。在隱蔽性方面的評價,實驗將峰值信噪比輸入和水印之間的比率(PSNR)作為隱蔽性性能的主要指標,PSNR以分貝作為單位。PSNR取決于平均值平方誤差(MSE),根據(jù)公式(4)、(5)計算出,公式中的Iv和Iw代表原始圖像和水印圖像,M和N為圖像大?。?/p>
(4)
(5)
在魯棒性的比較方面,本文用標準化的相關(guān)性來進行比較。在提取水印之后,用輸入水印和提取水印的歸一化相關(guān)系數(shù)(NCC)來判斷水印的存在性。在公式中,h和w分別是水印的高度和寬度,Wo(i,j)和We(i,j)是坐標軸(i,j)的原始值和加入水印后像素值,
(6)
圖3中表示PSNR值與高斯濾波不同窗口值大小下(0~10)的結(jié)果。本實驗采用經(jīng)典的水印算法進行對比,算法2是Hiratsuka提出的Patchwork算法[11],算法3是Chang等提出的DCT算法[12],算法4是是Maroua等提出的Fourier-Mellin算法[13],算法5是Etemad提出的加性Contourlet算法[14],可以看到本文提出的算法的PSNR值始終保持41 dB以上的值,在不同的窗口大小的表現(xiàn)平穩(wěn),明顯好于其他算法,平均PSNR有10%以上的改善。
圖3 高斯濾波下各算法PSNR值對比
圖4中的圖形是不同水印算法在SPHIT壓縮攻擊中不同壓縮比例的情況下NC值的比較??梢钥吹奖疚乃惴鼙3衷?.84以上的NC值,而其他算法的NC值明顯較低,其中Contourlet雙因子算法的NC值始終處于0.6以下,其他算法在穩(wěn)定性方面也不如本文算法,波形比較陡峭。
圖4 SPIHT壓縮下各算法NC值對比
對于幾種水印技術(shù),圖5顯示了在椒鹽噪聲攻擊下,不同噪聲密度(0~1)的PSNR值。在從密度為0~1的噪聲攻擊下,本文算法的PSNR值表現(xiàn)都優(yōu)于比對的經(jīng)典算法,以噪聲密度為0.6的情況為例,本文提出的算法的PSNR在39 db,同樣情況下PatchWork為31 db,傳統(tǒng)DCT為28 db,F(xiàn)ourier-Mellin為34.8 db,Contourlet雙因子算法為29.8 db。
圖5 椒鹽噪聲攻擊下不同算法的PSNR值
通常對水印圖像的攻擊有疊加噪聲,平滑濾波,JPEG壓縮等方式。本文對上述攻擊的抵抗能力進行測試,將結(jié)果用歸一化系數(shù)來表示,參數(shù)和結(jié)果如表1所示。
從表1可以看到,本文提出的算法在針對常見的攻擊,都能將歸一化系數(shù)保持在0.95以上,其中對10%隨機分布的疊加噪聲的抗攻擊能力最強為0.987,總體而言本文算法具有較高抗攻擊能力,魯棒性較強。
表1 水印攻擊參數(shù)和結(jié)果
本文提出并實現(xiàn)了一種基于PN序列的離散小波水印算法。該算法采用二進制圖像作為水印,即使在原始水印和提取水印之間的相關(guān)性較低的情況下,也可以通過恢復(fù)水印來增加魯棒性。在本文實現(xiàn)的算法中,通過對各種尺寸窗口1~10的高斯濾波攻擊,峰值信噪比值表現(xiàn)穩(wěn)定,與PatchWork、DCT等算法相比,隱蔽性和魯棒性具有較明顯的提高。在不同壓縮比例下的SPIHT攻擊中,本文算法能穩(wěn)定在0.8以上的NC值,特別在壓縮比為10~90的范圍內(nèi),算法的NC值明顯比對比算法更加穩(wěn)定。在所有噪聲密度為0~1的椒鹽噪聲攻擊下,本文算法具有很高的安全性,PSNR的值基本穩(wěn)定在35 dB以上。通過以上實驗證明,本文提出的算法具有很強的魯棒性,同時具有良好的穩(wěn)定性,能適用于版權(quán)保護、軍事、醫(yī)療和執(zhí)法等相關(guān)圖像處理領(lǐng)域,為企業(yè)級數(shù)據(jù)加密保護提供有益參考。