王景中,張哲銘
(北方工業大學 信息工程學院,北京 100144)
計算機和網絡技術迅猛發展,信息媒體的數字化使得信息的使用和傳播更加便利和快捷,但是另一方面數字產品的不安全性也變得越來越嚴重,如:非法復制,篡改等。所以利用數字水印來保護多媒體產品已經成為信息安全保護技術的一個重要的分支。此項技術的研究的目的是在原創作者的作品中添加不可見的標記,用來對作品所有者的所有權益進行保護。
根據嵌入域不同,水印算法大體分為空域和變換域兩種,變換域水印算法嵌入的水印信息較空間域大,并且具有良好的魯棒性,因此成為水印算法研究的主流方向。近些年來,有關奇異值分解SVD(singular value decomposition)的數字水印的方案引起了人們的關注。
在國內Liu和Tan最早提出基于奇異值分解的數字水印的方案,之后又有許多專家和學者在這些理論的基礎上改進了SVD奇異值分解算法,比如:DCT-SVD域、DFTSVD域等。大部分文獻中提出了保留了與水印相關的矩陣U和V,但是左右矩陣與提取的水印之間存在很大的相關性,即使能提出來水印,也存在相當大的虛警率,文獻[1]提出了利用SVD在小波分解中的應用,基于分塊自適應技術實現數字水印嵌入和提取,有比較好的魯棒性,文獻[2]提出了利用載體圖像SVD正交分解的U矩陣和嵌入圖像的U矩陣的相似性作為判斷條件。文獻[3]還提出一種結合人類視覺技術計算嵌入強度,實現水印信息嵌入。有些算法沒有對數字水印做預處理,同時也沒考慮到HVS,所以存在缺陷[4],在文獻[5]中著重研究了水印信息預處理過程,提出了一種圖像分塊后像素值方差和像素點與4鄰域灰度差值相結合的最佳置亂度計算方法,實驗證明置亂程度與主觀視覺效果一直,文獻[6]創新的提出了對原始載體圖像分塊做DCT變換處理,將每個分塊的AC(直流分量)將組成一個新的矩陣SVD分解后,將水印信息嵌入其中。
考慮到水印圖像各像素點之間存在緊密的相關性,為了避免圖像線性密碼攻擊,將圖像按照一定規律將圖像進行置亂。
本文首先對水印進行置亂預處理來增加水印的安全性,這里采用了著名的數學家Arnold在研究遍歷理論是提出的Arnold變換。
Arnold變換如下方法:

實現圖像中任意給定位置(x y)1≤x,y≤N,這里的N指的是圖像的高或者寬,該變換表達式滿足,其目的是加密后的圖像通過變換后可恢復出原圖像。其中(x y)和(x′y′)滿足:

選取合適的參數是為了提高圖像置亂加密的安全性,可以避免線性密碼攻擊。
假設C=M*N矩陣,U是M*M矩陣,其中U的列為CCT的正交特征向量,V為N*N的矩陣,其中V是CCT的特征向量,再假設r為C矩陣的秩,則存在奇異值分解:

其中CCT和CTC的特征值相同,為λ1…λr
其余的元素為0,如圖1所示:

圖1 SVD奇異值公式分解Fig.1 SVD singular value formula decomposition
式中,U∈RM*M,V∈RN*N是正交陣,S是 ∈RM*N是非對角線上的元素都為 0 的矩陣,S=diag(l1,l2,l3,…lr),其元素滿足l1>l2>l3>,…lr。
從數學的角度分析:CCT和CTC的特征值相同,說明特征值在矩陣變換過程保持穩定。
從圖像的角度分析:奇異值具有較強的穩定性,圖像奇異值體現圖像信息的內蘊特性,圖像發生較小變化時,圖像奇異值不會發生較大變化而且圖像的視覺效果依然很好,旋轉、縮放、平移等幾何攻擊不會使圖像的奇異值有太大的影響。這樣利用圖像的奇異值分解嵌入水印信息可以減少圖像失真和提高圖像的不可見性和魯棒性。
JPEG對圖像壓縮的核心算法是DCT變換編碼,為了適應用于單色圖像或者彩色圖像,JPEG對每一個圖像分量單獨編碼。對于JPEG壓縮前和壓縮后的圖像的比值,我們稱之為JPEG壓縮比,利用JPEG壓縮比可以對圖像一小塊圖形進行分析和處理。JPEG提供了4種工作模式:
1)順序編碼。每一個圖像分量按從左到右,從上到下掃描,一次掃描完成編碼。
2)累進編碼。圖像編碼需多次掃描完成,圖像有粗糙到清晰。
3)無失真編碼。保證解碼后完全精確地恢復源圖像的采樣值。
4)分層采樣。圖像在多個空間分辨率進行編碼。
因此不同的工作模式,不同的壓縮比也不一樣,針對不同的壓縮比,在數字水印嵌入過程中采用不同的嵌入調節因子,使嵌入水印后的圖像產生良好的視覺效果。
首先對圖像進行預處理,將圖像區域劃分為L*L個互不重疊的子塊,然后通過JPEG壓縮比計算嵌入強度。
由于JPEG對圖像的壓縮有很大的伸縮性,圖像質量與比特率的關系如下:
1)1.5~ 2.0 比特/像素:
與原始圖像基本無區別,仿真調節因子為1.3
2)0.75 ~ 1.5比特/像素:
圖像質量很好,仿真調節因子為1.2
3)0.5 ~ 0.75比特/像素:
圖像質量比較好,仿真調節因子為1.0
4)0.25~0.5比特/像素:
圖像質量一般,仿真調節因子為0.8
1)將水印圖像置亂,經過兩次小波分解后獲取二階低頻分量,并將其進行cdma編碼調制。
2)將原始載體圖像,分解成互不重疊的8×8的圖像塊,并對圖像塊進行DCT變換,然后在做SVD奇異值分解,選取分解的S矩陣,同時通過JPEG壓縮特性計算分塊的調節因子。
3)將水印調制后的 CDMA 序列按照公式(5)、公式(6)加入到載體圖像的每個分塊的分解后的S矩陣中去。

S′為嵌入水印后圖像的S矩陣,S為原始圖像的S矩陣,cdma為水印信息cdma調制的信息。
1)將嵌入水印后的圖像分塊提取,每個8*8的圖像塊做DCT變換、SVD分解選取S_em矩陣 。
2)S_em與原始圖像DCT變換,SVD分解的S矩陣按照公式(7)、公式(8),提取 cdma 序列。

圖2 水印嵌入算法流程圖Fig.2 Watermark embedding algorithm flow diagram
3)將cdma序列還原成比特流序列,然后反DWT重構提取的水印圖像。

按照水印置亂的計算出水印圖像W’。用歸一化相關系數NC檢查水印的相似度


圖3 水印提取算法流程圖Fig.3 Watermark extraction algorithm flow diagram
為了檢驗本算法的可行性,采用在Matlab 2011a版本平臺上做仿真實驗。本算法使用的圖片是512*512的lena.bmp灰度圖像(如圖4所示)和64*64的水印圖像(如圖5所示)。

圖4 載體圖像Fig.4 Carrier image

圖5 嵌入水印后圖像Fig.5 Watermarked image

圖6 水印圖像Fig.6 Watermarking images

圖7 原始圖像提取Fig.7 Extracted watermark

圖8 放縮30%攻擊Fig.8 Scaling attack(30%)

圖9 旋轉90度Fig.9 Rotation(90°)
嵌入水印后圖像的PSNR=35.03 dB。在為受到攻擊的情況下,能夠完全正確的提取水印的NC=0.937 7。
為了檢測算法的魯棒性,本算法使用StirMarkBenchnark對嵌入水印的后的圖像分別進行了JPEG壓縮、PSNR加噪、Rescale放縮、Rotation旋轉、中值濾波等。采用峰值性噪比(PSNR)來衡量提取水印圖像和原始水印的相關性。用歸一化互相關系數(NC)來衡量提取水印和原始水印的相關性。

圖10 JPEG壓縮Fig.10 JPEG compression

圖11 中值濾波攻擊Fig.11 Median filtering attack

圖12 剪切75%Fig.12 Cutting(75%)

圖13 加噪90%Fig.13 Add Noising(90%)

圖14 旋轉剪切Fig.14 Rotating cutting
實驗結果見表1.

圖15 PSNR攻擊Fig.15 PSNR attack

表1 圖像水印的相關攻擊測試結果Tab.1 image watermark attack test results
對嵌入水印的圖像加各種攻擊:PSNR (如圖15所示)、JPEG壓縮(如圖 10)、添加噪聲(如圖 13所示)、濾波(如圖11所示)、縮放(如圖 8所示),旋轉(如圖 9所示),剪切(如圖12所示),旋轉剪切(如圖14所示)等,從表1可以看出本算法對JPEG壓縮、添加噪聲、濾波、放縮、旋轉等具有較高的魯棒性。盡管在攻擊下提取水印信息有一定的干擾,但是人眼還能較好的分辨出水印信息,從而說明本算法保持水印信息具有較好的魯棒性。
本文算法借鑒了以往論文利用圖像奇異值分解特征值強穩定性在圖像經過離散小波變換后的圖像中完成了水印的嵌入和提取過程。本算法的優點是在水印圖像二階小波分解基礎上,將低頻子帶區域信息嵌入到原始載體圖像經過奇異值分解后的S矩陣中,同時根據圖像的源圖像的壓縮比等圖像的相關特性選擇最佳的調節因子,對水印圖像小波變換的低頻分量進行cdma編碼調制,提取水印時采用cdma解調解碼使之增加圖像的魯棒性和安全性,此外,本算法屬于非盲提取。
[1]趙敏,王慧琴,盧麟.基于分塊SVD自適應數字水印算法[J].計算機工程與設計,2011,32(4):84-86.ZHAO Xia,WANG Hui-qin,LU Ling.Adaptive digital watermarking algorithm based on block and SVD[J].Computer Engineering and Design,2011,32(4):84-86.
[2]錢華明,于鴻越.基于SVD-DWT域數字圖像水印算法[J].計算機仿真,2009,26(8):457-459.QIAN Hua-ming,YU Hong-ji.Digital image watermarking algorithm based on the SVD-DCT[J].Computer simulation,2009,26(8):457-459.
[3]徐慕容,樊鎖海.一種新的基于奇異值分解的圖像數字水印算法[J].計算機仿真,2011,28(5):291-341.XU Mu-rong,FAN Suo-hai.A new image watermarking algorithm based on[J].Computer simulation,2011,28 (5):457-459
[4]肖俊,王穎.基于塊奇異值分解的水印算法研究[J].中國科學院研究生院學報,2006,23(3):207-209.XIAO Jun,WANG Yin. Block-based SVD of the watermarking algorithm[J].Graduate School Journal of the Chinese Academy of Sciences,2006,23(3):207-209.
[5]黃永良.二值圖像Arnold變換的最佳置亂[J].計算機應用,2009,40(2):66-69.HUANG Yong-liang.The best image scrambling degree of binary on Arnold transform.Journal of Computer Application,2006,23(3):207-209.
[6]王奔.基于DWT-DCT-SVD的圖像數字水印算法 [D].北京:北京郵電大學,2010:203-205.