石紅芹,呂方亮
(華東交通大學(xué) 軟件學(xué)院,江西 南昌 330013)
數(shù)字水印是信息安全的重要組成部分,作為數(shù)字產(chǎn)品認(rèn)證和版權(quán)保護(hù)的重要手段,已得到越來(lái)越多的關(guān)注和發(fā)展。數(shù)字水印應(yīng)具有以下幾個(gè)基本特性:(1)不易察覺(jué)性:數(shù)字產(chǎn)品引入數(shù)字水印后,應(yīng)不易被接收者察覺(jué),同時(shí)又不能影響原作品的質(zhì)量。(2)魯棒性:能在多種無(wú)意或有意的信號(hào)處理過(guò)程后產(chǎn)生一定的失真,但仍保持水印完整性和鑒別的準(zhǔn)確性。(3)水印容量:嵌入宿主圖像水印的多少,將直接影響圖像的不可見(jiàn)性。數(shù)字水印的不易察覺(jué)性與魯棒性是相互矛盾的,解決這矛盾的有效途徑是充分利用人類視覺(jué)系統(tǒng)的掩蔽特性。目前在灰度圖像中嵌入數(shù)字水印受到了廣泛深入的研究,并且形成了產(chǎn)品[1]。但在實(shí)際應(yīng)用中,彩色圖像和視頻占主導(dǎo)地位。因此,近年來(lái)人們的研究興趣逐漸轉(zhuǎn)向在彩色圖像和視頻中嵌入數(shù)字水印。文獻(xiàn)[2]提出了一種基于SVD的水印算法,雖然其對(duì)抗常規(guī)的信號(hào)處理攻擊魯棒性較高,但是利用偽造攻擊[3]對(duì)該算法進(jìn)行攻擊能使算法失去意義。本文利用水印和載體圖像雙雙置亂,進(jìn)一步消除了像素之間的相關(guān)性且提高了水印信息的安全性。水印嵌入到奇異值中能對(duì)原始圖像的剪切、旋轉(zhuǎn)、行列鏡像等幾何攻擊具有比較好的穩(wěn)健性。
根據(jù)HVS水印策略,人眼對(duì)YUV彩色空間中亮度分量Y的敏感性低于RGB彩色空間中各個(gè)顏色分量的敏感性,這樣將水印信息嵌入到Y(jié)分量中具有較高的魯棒性。因?yàn)橐话愕牟噬珗D像都是用RGB彩色空間來(lái)表示,所以首先要將彩色圖像由RGB模式轉(zhuǎn)換到Y(jié)UV模式以得到亮度Y分量。YUV彩色空間與RGB空間的轉(zhuǎn)換關(guān)系式(1)
Y表示亮度,U,V用來(lái)表示色差,R,G,B分別表示紅色、綠色、藍(lán)色分量值。
圖像置亂作為一種圖像加密技術(shù),成為數(shù)字圖像加密的重要手段之一。所謂圖像置亂技術(shù)是指將一幅圖像的像素的空間位置重新進(jìn)行排列,將原始圖像變換成雜亂無(wú)章的新圖像。如果不知道所使用的置亂方法和密鑰,就很難恢復(fù)出原始圖像。置亂變換有兩個(gè)重要特點(diǎn):(1)置亂變換一般都有周期性,先是越來(lái)越亂,而后當(dāng)?shù)揭欢ù螖?shù)之后就會(huì)恢復(fù)到原圖。(2)置亂變換只是令像素的空間位置發(fā)生了變換,而像素的值不變。
Fibonacci數(shù)列是數(shù)學(xué)中很重要的數(shù)列,由于它具有許多重要的應(yīng)用,所以一直受到人們的青睞。Fibonacci數(shù)列的定義如下
令:F1=1,F2=1,一般地公式(2)為Fibonacci數(shù)列
Fibonacci變換的公式見(jiàn)(3)
Fn、Fn+1是Fibonacci數(shù)列中的兩個(gè)相鄰數(shù),其中 k=0,1,2,3,…Fn+1-1;r=0,1,2,3,…Fn+1-1。這里r可作算法中密鑰的一部分。由定義可以看出,該變換可將數(shù)列{Q}=(0,1,2…,Fn+1-1)變換成另一個(gè)新數(shù)列{S}=(S0,S1,S2,…SFn+1-1)且可以證明{S}是{Q}的一個(gè)偽隨機(jī)置換[4]??紤]到Fibonacci變換置亂度計(jì)算量小,置亂的周期短,速度快。故而對(duì)彩色載體圖像用Fibonacci變換。圖1為載體圖像,圖2為經(jīng)過(guò)Fibonacci置亂變換的載體圖像。
Arnold變換是將圖像看作平面區(qū)域上的二元函數(shù)Z=F(x,y),(x,y)∈R,通常區(qū)域R是一個(gè)矩形。對(duì)R中的任意點(diǎn)相對(duì)應(yīng)的函數(shù)值代表圖像的信息(如灰度值等)。
圖像的離散Arnold變換即為式(4)
式中:(x,y)表示該圖像矩陣的某個(gè)元素未變換時(shí)的位置,(x′,y′)表示變換后新的位置。通過(guò)變換水印圖像由清晰到模糊,提取水印后,可以利用Arnold變換的周期性,重新得到原圖像.表1為部分不同尺寸的圖像經(jīng)Arnold變換的周期表:
因Arnold變換具有算法簡(jiǎn)單,運(yùn)算快和具有周期性等特點(diǎn)故對(duì)水印的加密采用二維Arnold變換。圖3為水印圖像,圖4為經(jīng)過(guò)Arnold置亂變換的水印圖像。
表1 Arnold變換的周期
圖1 載體圖像
圖2 置亂后的載體圖像
圖3 水印圖像圖
圖4 置亂后的水印圖像
奇異值分解是線性代數(shù)中一種重要的矩陣分解,在信號(hào)處理、統(tǒng)計(jì)學(xué)等領(lǐng)域有重要應(yīng)用。數(shù)字圖像可以被視為有許多非負(fù)標(biāo)量組成的矩陣,奇異值分解(singular value decomposition,SVD)是一種將矩陣進(jìn)行對(duì)角化的數(shù)值技術(shù),已被廣泛應(yīng)用與圖像編碼和其他信號(hào)處理技術(shù)中。從圖像處理的角度來(lái)看,奇異值分解有如下的特性:一幅圖像的奇異值具有相當(dāng)好的穩(wěn)定性,也就是說(shuō),當(dāng)圖像受到輕微的擾動(dòng)時(shí),它的奇異值不會(huì)發(fā)生劇烈的改變,從線性代數(shù)的角度來(lái)看,一幅數(shù)字圖像可以看成是由一個(gè)許多非負(fù)標(biāo)量項(xiàng)組成的矩陣。用X∈RN×N表示一個(gè)圖像矩陣,其中R表示實(shí)數(shù)域,則X的奇異值分解定義如式(5)
式中:U∈RN×N和V∈RN×N均為正交陣,S∈RN×N為對(duì)角陣。其對(duì)角線上的元素滿足式(6)
式中:r為X的秩,λi(1≤i≤N)由分解惟一確定,它稱之為X的奇異值。圖像SVD分解,其奇異值所表現(xiàn)的是圖像內(nèi)在的代數(shù)特性而非視覺(jué)特性,它可以作為圖像特征之一。奇異值的穩(wěn)定性非常好,當(dāng)圖像被施加小的擾動(dòng)時(shí),圖像的奇異值不會(huì)有大的變化。文獻(xiàn)[5]給出了SVD分解運(yùn)用于水印嵌入算法的理論分析。
本文選取的載體圖像為M×M的彩色圖像Baboon,水印為N×N的二值圖像Cameraman。因?yàn)楫?dāng)載體圖像較大的時(shí)候進(jìn)行奇異值分解的時(shí)間較長(zhǎng),故可先將其分塊后再分別對(duì)每塊進(jìn)行SVD分解。具體的水印嵌入過(guò)程描述如下:
步驟1:將原始水印圖像進(jìn)行二維Arnold置亂得待嵌入的水印圖像,迭代的次數(shù)k就是一個(gè)密鑰。應(yīng)用公式(7),對(duì)置亂水印圖像進(jìn)行奇異值分解。
其中T為共軛轉(zhuǎn)置。
步驟2:將彩色載體圖像由RGB模式轉(zhuǎn)換為YUV模式后對(duì)Y分量進(jìn)行Fibonacci置亂變換,置亂參數(shù)r可以作為密鑰。
步驟3:對(duì)置亂后的載體圖像進(jìn)行8×8分塊,對(duì)每一塊進(jìn)行奇異值分解,得到公式(8)
其中:j代表各個(gè)分塊,λji(i=1,2,…,N)為Sj的奇異值元素。
步驟4:利用公式(9)修改各個(gè)分塊的奇異值,嵌入水印圖像的奇異值到各個(gè)分塊中。
水印提取是水印嵌入的逆過(guò)程,在水印圖像的加密域進(jìn)行。具體提取過(guò)程如下:
步驟1:對(duì)含水印圖像進(jìn)行彩色空間模式變換,由RGB轉(zhuǎn)換為YUV模式后進(jìn)行Fibonacci置亂變換后,提取Y分量進(jìn)行8×8分塊。
步驟2:由公式(8)對(duì)各分塊進(jìn)行奇異值分解,再利用公式(11)從各分塊中提取水印圖像的奇異值。
其中 i=1,2,…,N,j=1,2,…,64,αj為嵌入因子。
步驟5:利用修改后的各分塊的奇異值集,由公式(10)進(jìn)行重構(gòu),逆Fibonacci變換,再由YUV模式轉(zhuǎn)換為RGB模式,得到嵌入水印后的載體圖像。
其中:i=1,2,…,n,j=1,2,…,64。
步驟3:利用公式(7),提取出置亂水印圖像,再經(jīng)利用Arnold反置亂技術(shù)和提供的密鑰(置亂次數(shù)k和加密者的密鑰)解密提取出來(lái)的信息,即得到可能已經(jīng)失真的圖像水印。
本實(shí)驗(yàn)采用512×512的彩色圖像Baboon,水印為128×128的二值圖像Cameraman,為了客觀地驗(yàn)證本算法的性能,這里引入兩個(gè)指標(biāo):歸一化相關(guān)系數(shù)NC:原始水印和提取出的水印之間的相似度可以通過(guò)相關(guān)性檢驗(yàn)來(lái)衡量;峰值信噪比PSNR:用來(lái)客觀反映圖像視覺(jué)特性的指標(biāo),嵌入水印的圖像可以用PSNR驗(yàn)證水印的不可見(jiàn)性。圖5為水印圖像受到攻擊時(shí)的部分測(cè)試結(jié)果圖。
圖5 水印圖像部分攻擊測(cè)試結(jié)果
本文算法與常用的魯棒性較好的小波域置亂水印算法[6]和基于改進(jìn)型的SVD算法[7]作比較,用水印圖像常常遇到的攻擊手段對(duì)無(wú)置亂、水印置亂、原圖置亂和本文采用的雙置亂算法進(jìn)行攻擊,觀察它們的NC值。實(shí)驗(yàn)結(jié)果的比較如表2。
表2 不同置亂方式下的抗攻擊實(shí)驗(yàn)NC值比較
由以上各個(gè)實(shí)驗(yàn)可以看出,本文采用的水印嵌入策略,很好地滿足了數(shù)字水印的不可見(jiàn)性,在人類視覺(jué)系統(tǒng)中圖像明顯改變的攻擊下,也表現(xiàn)了不錯(cuò)的魯棒性,本算法的創(chuàng)新之處就在于采用了水印和彩色載體圖像的雙置亂,不但較好地保證了算法的安全性,而且在抗幾何變換攻擊上也具有良好的性能。
[1]李斌,王新偉.關(guān)于SVD圖像水印算法的分析和改進(jìn)[J].華東師范大學(xué)學(xué)報(bào),2007,13(1):100-106.
[2]王淑琴,張金海,王衛(wèi)民.一種基于奇異值分解的自適應(yīng)水印算法[J].計(jì)算機(jī)仿真,2008,25(8):109-112.
[3]徐超漢,柯宗貴.計(jì)算機(jī)網(wǎng)絡(luò)安全實(shí)用技術(shù)[M].北京:電子工業(yè)出版社,2005.
[4]堪志鵬,鄒建成.一種基于Fibonacci變換的視頻置亂技術(shù)[J].北方工業(yè)大學(xué)學(xué)報(bào),2007,19(3):6-10.
[5]李學(xué)斌,俞登峰,程亮.基于奇異值分解的零水印算法[J].計(jì)算機(jī)工程,2009,35(11):163-165.
[6]楊衛(wèi)民,譚駿珊,金正.基于奇異值分解的彩色圖像水印算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(23):6 151-6 153.
[7]張遂生,袁正道.基于奇異值分解的數(shù)字水印改進(jìn)方案[J].南京師范大學(xué)學(xué)報(bào),2008,8(4):141-144.