陳小娥
(福建船政交通職業(yè)學(xué)院信息工程系,福州 350007)
數(shù)字水印技術(shù)是信息隱藏技術(shù)研究領(lǐng)域中的一個(gè)熱點(diǎn)問題,主要指將一些標(biāo)識(shí)信息作為水印嵌入到數(shù)字媒體(包括圖像、視頻、音頻、文檔和軟件等)中,且不影響原載體的正常使用,也不容易被探知和再次修改。數(shù)字水印技術(shù)具有廣闊的應(yīng)用前景,如可用于版權(quán)保護(hù)、多媒體圖像處理和文檔管理、隱匿通信等方面。
經(jīng)過相關(guān)領(lǐng)域?qū)W者們的辛勤研究,許多數(shù)字水印算法被相繼提出,大體可以分為空域水印算法和頻域水印算法??沼蛩∷惴ㄖ饕ㄟ^直接修改載體圖像中的某些像素值來嵌入水印,如最低有效位算法[1]就是數(shù)字水印發(fā)展前期比較典型的空域算法,該算法將信息嵌入到圖像點(diǎn)中最不重要的像素位上,算法比較簡單,但魯棒性較差。之后相繼出現(xiàn)比較有代表性的算法還有Patchwork算法[2]和Histogram shifting算法[3]等。頻域水印算法是另一主要水印算法,主要通過對(duì)變換系數(shù)做適當(dāng)調(diào)整將水印嵌入圖像中,比較常見的有離散傅里葉變換法、離散余弦變換法以及離散小波變換法等,該類算法擁有較強(qiáng)的魯棒特性[4-8]。如文獻(xiàn)[4]提出了一種基于PCA和DWT的新的數(shù)字水印算法,先對(duì)載體圖像進(jìn)行一級(jí)小波分解,然后用主成分分析提取其低頻子帶的主成分系數(shù),最后將水印嵌入到提取出的主成分系數(shù)中,該算法明顯提高了抗剪裁、旋轉(zhuǎn)等幾何攻擊能力;文獻(xiàn)[5]提出了一種彩色QR碼嵌入彩色圖像的數(shù)字水印技術(shù),主要通過Contourlet-離散余弦變換和奇異值水印技術(shù)完成對(duì)水印的嵌入和提出,該算法對(duì)高斯噪聲、椒鹽噪聲、剪切攻擊和JPEG壓縮攻擊具有較強(qiáng)的抵抗能力。
本文提出了一種基于DCT變換的數(shù)字水印算法。算法首先將水印信息轉(zhuǎn)換成對(duì)應(yīng)的QR碼,然后通過Arnold置亂技術(shù)將QR碼進(jìn)行預(yù)處理,接著對(duì)載體圖像實(shí)現(xiàn)8×8分塊,對(duì)每個(gè)分塊完成DCT變換,將預(yù)處理后的水印信息嵌入到各分塊中,從而完成水印信息的嵌入。實(shí)驗(yàn)結(jié)果表明,本文算法對(duì)噪聲疊加、剪切等常見攻擊具有較強(qiáng)的魯棒性,能在保證水印隱藏性的同時(shí)抵抗住一定程度的攻擊,滿足標(biāo)識(shí)圖像版權(quán)信息的需求。
離散余弦變換(DisereteCosine Transform)簡稱為DCT。在圖像處理中使用的是二維DCT,二維DCT變換就是將二維圖像從空間域轉(zhuǎn)換到頻率域。設(shè)f(x,y)表示一幅大小為M×N的圖像,其中x=0,1,2…M-1;y=0,1,2…N-1,則其二維DCT變換T(u,v)可表示為:
二維DCT反變換為:
水印在嵌入前先經(jīng)過一定的預(yù)處理,可進(jìn)一步提高水印嵌入過程中的魯棒性。圖像置亂技術(shù)是一種常見的信息隱藏技術(shù),其中Arnold變換就是一種經(jīng)典的置亂技術(shù)。它通過把圖像中的像素點(diǎn)的位置按照某種規(guī)則進(jìn)行置換,達(dá)到加密的目的。式(1)~(2)是Arnold變換的公式:
(1)
Arnold置亂反變換為:
(2)
其中,(x,y)為原圖像的像素點(diǎn)坐標(biāo),(x′,y′)是置換后的圖像的像素點(diǎn)坐標(biāo),N表示圖像矩陣的階數(shù)。原始水印圖像通過Arnold置換后,可以增強(qiáng)破譯的難度,還可以利用Arnold變換的周期性,設(shè)置迭代的次數(shù),讓創(chuàng)建者自由控制算法,增加水印本身的安全性。
QR碼是二維碼的一種,來自英文“Quick Response”的縮寫,即快速反應(yīng)的意思。QR碼能夠快速讀取,且存儲(chǔ)更多更豐富的信息,可以對(duì)文字、URL地址和其他類型的數(shù)據(jù)進(jìn)行加密。一般QR碼呈正方形,在正方形的3個(gè)邊角有3個(gè)“回”字的圖案用來幫助軟件定位,方便使用者掃描,無需對(duì)準(zhǔn)。
數(shù)字水印技術(shù)一般主要包括嵌入水印信息和提取水印信息兩大部分,圖1顯示了本文提出的數(shù)字水印算法的嵌入和提取的過程示意圖。
水印信息的嵌入步驟如下:
1)水印信息預(yù)處理。將待添加的水印信息轉(zhuǎn)換成對(duì)應(yīng)的QR碼,對(duì)該QR碼進(jìn)行Arnold置換,生成無法識(shí)別的水印信息。
圖1 水印的嵌入和提取過程
2)將載體圖像分成K個(gè)8×8的子塊,每個(gè)圖像子塊都進(jìn)行DCT變換,取得所有子塊DCT量化系數(shù)Ck(x,y),其中,k=1,2…K;x=1,2…,8;y=1,2…8。
3)實(shí)現(xiàn)水印信息的嵌入,按照一定規(guī)律選擇要嵌入的水印信息的系數(shù)Ck(x,y),調(diào)整其值,如式(3):
Ck′(x+i,y+8-i)=Ck(x+i,y+8-i)+αMk,
(3)
式中:i=1,2…8;α為尺度因子,用來控制添加水印的強(qiáng)度;Mk為根據(jù)分配給各子塊所對(duì)應(yīng)的水印信息的值而設(shè)定的一個(gè)序列。具體如式(4):
(4)
式中:k1k2為隨機(jī)序列;m(i,j)為初始水印信息轉(zhuǎn)換成的對(duì)應(yīng)的QR碼并經(jīng)過Arnold置換后生成的二值圖對(duì)應(yīng)位置的值。
4)系數(shù)修改完后,對(duì)每一圖像子塊再進(jìn)行二維DCT逆變換,從而生成添加了水印的水印圖像。
水印信息的提取步驟如下:
1)將含水印的圖像,分成大小為8×8的圖像子塊,對(duì)每個(gè)子塊進(jìn)行DCT變換。
2)將之前改變過系數(shù)值的像素點(diǎn)提取出來,通過對(duì)比提取序列與k1的相關(guān)系數(shù)和提取系列與k2的相關(guān)系數(shù),初步恢復(fù)中間的水印信息。
3)將上一步得到的中間水印信息,進(jìn)行Arnold逆變換,即得到恢復(fù)的QR碼形式的水印信息,進(jìn)而可獲得原始水印信息。
為進(jìn)一步評(píng)價(jià)提取出來的水印的質(zhì)量,通過計(jì)算所恢復(fù)的QR水印信號(hào)和原來QR水印信號(hào)的相關(guān)系數(shù)的值,來描述兩者之間相似度。設(shè)兩幅圖像f(m,n)和g(m,n),歸一化相關(guān)系數(shù)Nc如式(5):
(5)
實(shí)驗(yàn)中載體圖像大小為512像素×512像素,如圖2所示。原始水印信號(hào)為文字“數(shù)字水印”,將其轉(zhuǎn)換成對(duì)應(yīng)的QR碼圖像,QR碼大小為64像素×64像素,如圖3所示。
圖2 載體圖像
圖3 原始水印QR碼
將原始水印的QR碼進(jìn)行Arnold置亂,圖4為對(duì)圖3進(jìn)行不同迭代次數(shù)的Arnold置亂后的示意圖,置亂公式使用上文提到的式(1),且其中參數(shù)a取值1,b取值1;式(3)中α值取30。由變換結(jié)果可以看出,QR碼變?yōu)榱藷o法掃描識(shí)別的無意義圖像。將迭代5次后的水印信息加入到載體圖像后,得到加水印后的圖像,如圖5所示。
(a)迭代1次
(b)迭代3次
(c)迭代5次
圖5 加入水印后的圖像
利用水印嵌入逆過程從水印圖像中提取水印信號(hào),結(jié)果如圖6所示,圖6(a)為提取的水印圖,圖6(b)是將圖6(a)再經(jīng)過Arnold逆變換得到的QR碼,經(jīng)掃描可快速識(shí)別出文字“數(shù)字水印”。
(a)提取的水印
(b)對(duì)提取水印Arnold逆置換
對(duì)式(3)的尺度因子α設(shè)置不同的值,得到的結(jié)果見表1。
表1 不同α值的嵌入結(jié)果對(duì)比
對(duì)加入水印的圖像進(jìn)行噪聲攻擊實(shí)驗(yàn)和剪切攻擊實(shí)驗(yàn)來測(cè)試水印算法的抗攻擊能力。實(shí)驗(yàn)中,尺度因子設(shè)置為30。噪聲攻擊性能測(cè)試實(shí)驗(yàn)結(jié)果如表2的前3行,顯示了添加隨機(jī)白噪聲、方差為0.002的高斯噪聲1和方差為0.005的高斯噪聲2后的水印圖像測(cè)試結(jié)果。剪切攻擊性能測(cè)試實(shí)驗(yàn)如表2所示后2行,分別是圖片上方剪切掉1/8和剪切掉1/4后的水印圖像測(cè)試結(jié)果。
提出一種基于DCT變換的數(shù)字水印嵌入和提取算法。為了增加水印信號(hào)被破譯的難度,先將待嵌入水印轉(zhuǎn)換成對(duì)應(yīng)的QR碼并進(jìn)行置亂操作,接著對(duì)載體圖像進(jìn)行分塊,對(duì)每個(gè)分塊分別進(jìn)行DCT變換,并嵌入水印信息。實(shí)驗(yàn)結(jié)果表明,該算法對(duì)噪聲和剪切等各種攻擊具有較強(qiáng)的穩(wěn)健性,具有一定的實(shí)用價(jià)值。
表2 各種攻擊性能測(cè)試