張 茂,虞曉慶
(1.武警工程大學(xué)研究生管理大隊(duì),陜西西安 710086;2.武警工程大學(xué)基礎(chǔ)部,陜西西安 710086)
眾所周知,數(shù)字水印(Digital Watermarking)的出現(xiàn),為網(wǎng)絡(luò)傳輸中信息安全和版權(quán)保護(hù)問(wèn)題提供了新的思路:即向待保護(hù)內(nèi)容中嵌入版權(quán)信息,而這些信息通常是不可見(jiàn)而且可以抵擋一定的攻擊,不影響原數(shù)據(jù)的視聽(tīng)效果,并且這些數(shù)字信息僅允許授權(quán)用戶(hù)可以部分或全部從混合數(shù)據(jù)中恢復(fù)出來(lái),以達(dá)到版權(quán)保護(hù)的作用[1-3]。到目前為止,大部分水印研究都集中在圖像研究上,其原因在于圖像是最基本的多媒體數(shù)據(jù),且互聯(lián)網(wǎng)的發(fā)展為圖像水印技術(shù)提供了大量的應(yīng)用需求。
近年來(lái),為提高水印信息在圖像傳輸中的抗干擾性,許多研究者引入了擴(kuò)頻技術(shù)。利用擴(kuò)頻原理有兩點(diǎn)優(yōu)勢(shì):一是可以將水印的能量譜擴(kuò)展并分布到一個(gè)較寬的頻段中,從而分配到每個(gè)頻率上的水印信號(hào)能量變得較小難以預(yù)測(cè);另一方面,只要水印信號(hào)的能量足夠小,加入到載體圖像中就不容易被察覺(jué)到。其中,Turbo 碼以其自身優(yōu)異糾錯(cuò)性能[4-5],引起了廣泛關(guān)注。
因此,文中使用混沌序列和m序列共同置亂水印,再將水印信息進(jìn)行Turbo擴(kuò)頻編碼,同時(shí)為兼顧水印的魯棒性和不可見(jiàn)性,在水印嵌入時(shí)應(yīng)用人眼視覺(jué)特性的紋理特征,將水印信息嵌入在紋理特征較好的圖像區(qū)域內(nèi)。該方法有效提高了水印的魯棒性,仿真實(shí)驗(yàn)表明其具有一定的可行性。
基于前面的介紹,可知文中算法結(jié)合混沌序列與m序列、Turbo編碼、人眼視覺(jué)特性等有關(guān)技術(shù)實(shí)現(xiàn),包括擴(kuò)頻水印生成、水印嵌入和水印提取與檢測(cè)3個(gè)部分。
生成擴(kuò)頻水印主要包含兩個(gè)步驟:(1)是將水印信息置亂;(2)是將置亂后的水印信息進(jìn)行Turbo編碼。置亂水印信息一般通過(guò)混沌序列實(shí)現(xiàn),但如果可以通過(guò)某種方式獲知混沌序列的密鑰,就可以解密有關(guān)內(nèi)容,算法的初始密鑰就失去了意義。鑒于此,在水印置亂過(guò)程中采用m序列和混沌序列相結(jié)合的方法,避免上述情況發(fā)生,提高水印的安全性[6]。如圖1所示,可具體分為
(1)選擇一維Logistic映射生成長(zhǎng)度為n'n的混沌序列,將其進(jìn)行二值處理后,轉(zhuǎn)換成只含0和1的序列ak(k=n'n),保存密鑰key1,包括初值x0和參數(shù)q。
(2)取2k級(jí)本原多項(xiàng)式f(x)作為m序列產(chǎn)生器的特征方程,其中 N滿(mǎn)足2k-1<N£2k,則水印信息I(x,y)的水平坐標(biāo)x和垂直坐標(biāo)y可分別用前k個(gè)和后k個(gè)移位寄存器的狀態(tài)來(lái)表示,其對(duì)應(yīng)關(guān)系如式(1)所示
式中,r表示m序列由第0時(shí)刻開(kāi)始的移位次數(shù);r?{0,1,…,2k-1};ak-i,r和 ak-j,r表示前 k 個(gè)和后 k 個(gè)移位寄存器在r的狀態(tài)。
(3)將 I(x,y)的第1個(gè)像素點(diǎn)映射到 I(x',y')的任意一點(diǎn)(x'0,y'0),其中,x'0,y'0?[0,1,…,N -1],x'0和y'0分別對(duì)應(yīng)前k個(gè)和后k個(gè)移位寄存器的狀態(tài),m序列移位一次,并由移位寄存器狀態(tài)用式(1)計(jì)算x1和y1,將 I(x,y)的第 2 個(gè)像素點(diǎn)映射到 I(x',y')的點(diǎn)(x'1,y'1),依次類(lèi)推,直至 I(x,y)的所有像素點(diǎn)都映射到I(x',y')的對(duì)應(yīng)點(diǎn),這里獲取密鑰key2;
(4)將I(x',y')降至為一維序列 Ik,與序列 ak進(jìn)行異或運(yùn)算生成序列bk。
(5)將序列bk作為輸入,進(jìn)行Turbo編碼得到二值序列 Cn,cn?{-1,1};相應(yīng)的進(jìn)行處理,得到擴(kuò)頻水印 wn,w?{0,1}。
圖1 擴(kuò)頻水印生成圖
水印嵌入過(guò)程如圖2所示,具體步驟如下:
(1)將載體圖像均勻的劃分成4'4個(gè)子塊,每一子塊從0開(kāi)始標(biāo)號(hào),根據(jù)式(2)和式(3)計(jì)算每一子塊的熵值和方差
式中,pi為像素出現(xiàn)的概率;q代表灰度的種類(lèi);n是圖像塊中像素的個(gè)數(shù);f(x,y)是圖像塊中像素點(diǎn)的灰度值;f是圖像塊的平均灰度。
(2)根據(jù)人眼視覺(jué)系統(tǒng)可知,熵值較小的圖像子塊是平滑塊,而熵值較大的圖像子塊是紋理塊或邊緣塊;紋理子塊對(duì)應(yīng)的方差較小,邊緣子塊對(duì)應(yīng)的方差較大。選取熵值較大且方差較小的6個(gè)紋理子塊Ul作為水印的待嵌區(qū)域。
(3)將6個(gè)紋理子塊依次進(jìn)行三級(jí)小波分解,為兼顧魯棒性和不可見(jiàn)性,選定各個(gè)子塊中頻區(qū)域的小波系數(shù)作為水印嵌入位置。
(5)通過(guò)小波重構(gòu)恢復(fù)為子塊圖像,即可得到含水印的載體圖像。
圖2 水印嵌入過(guò)程圖
水印提取是嵌入的逆過(guò)程,具體步驟如下:
(1)將載體圖像均勻分割4'4為個(gè)子圖像,按記錄的標(biāo)號(hào)選擇相應(yīng)的含水印的子圖像Ul。
(2)通過(guò)密鑰Key1和Key2獲取相關(guān)信息。
(3)對(duì)子圖像Ul進(jìn)行三級(jí)小波變換,選擇其中頻的小波系數(shù)Yij,根據(jù)記錄的均值恢復(fù)水印序列wn
(4)依據(jù)序列cn,應(yīng)用最大后驗(yàn)概率(MAP)的對(duì)數(shù)形式Log-MAP的軟輸出譯碼,獲取序列bk。
(5)先將序列bk與序列ak進(jìn)行逆異或運(yùn)算,再將上述結(jié)果轉(zhuǎn)換成二維,應(yīng)用密鑰Key2對(duì)其進(jìn)行m序列逆置亂,即可得到水印信息I(x,y)。
實(shí)驗(yàn)中使用Matlab7.6對(duì)文中算法進(jìn)行仿真,采用512×512像素的“wbrab”作為載體圖像,如圖3(a)所示,水印圖像選用32×32像素的二值圖像,如圖3(c)所示;混沌序列x0=0.65、u=3.9,m序列中初始狀態(tài)為1 000 000 000,k=5,r=1;Turbo編碼率為1/3,譯碼采用了最大后驗(yàn)概率(MAP)的對(duì)數(shù)形式Log-MAP的軟輸出譯碼,譯碼迭代次數(shù)為6次,嵌入水印后的圖像如圖3(b)所示,峰值信噪比PSNR=40.65,無(wú)攻擊情況下提取的水印圖像如圖3(d)所示,其N(xiāo)C值=1,與文獻(xiàn)[5]相比可知,文中算法具有較好的魯棒性和不可見(jiàn)性。
圖3 原始載體圖像、水印和嵌入水印的圖像、提取的水印
表1表示分別對(duì)圖3(b)進(jìn)行剪切攻擊、JPEG攻擊、噪聲攻擊、濾波攻擊操作后,提取相應(yīng)的水印信息,并將其與未使用Turbo編碼的算法和文獻(xiàn)[5]進(jìn)行對(duì)比。
?
從表1中可以看出,該算法可以提高水印信息的抗干擾能力。與文獻(xiàn)[5]相比,對(duì)常見(jiàn)的攻擊操作具有較好的抵抗性,同時(shí)也兼顧了不可見(jiàn)性。
?
文中依據(jù)糾錯(cuò)編碼原理、人眼視覺(jué)系統(tǒng)、m序列置亂等理論,提出了一種新的基于Turbo和HVS的擴(kuò)頻的數(shù)字圖像水印算法,該算法彌補(bǔ)了可混沌置亂的不足,提高了水印在傳輸過(guò)程中抗干擾能力,同時(shí)結(jié)合人眼視覺(jué)特性確定圖像的紋理區(qū),將水印信息嵌入在紋理區(qū)小波分解后的中頻系數(shù)中。實(shí)驗(yàn)仿真證明,該算法對(duì)常見(jiàn)攻擊具有較好的魯棒性和一定的可行性。
[1]TIRKEL A Z,RANKIN G A,VAN SCHYNDEL R M,et al.Electronic watermark[C].IEEE Communications,1993,140(1):66-72.
[2]TANAKA K,NAKAMURA Y,MATSUI K.Embedding secret information into a dithered multilevel image[J].Technology and Society Magazine,1990,9(1):216 -220.
[3]考克斯,王穎,黃志蓓.數(shù)字水印[M].北京:電子工業(yè)出版社,2003.
[4]肖揚(yáng).Turbo與LDPC編解碼及其應(yīng)用[M].北京:人民郵電出版社,2010.
[5]馬曉蕾,李宏昌.基于Logistic混沌序列和Turbo碼的多重圖像水?。跩].計(jì)算機(jī)工程與應(yīng)用,2009,45(31):172-174.