李永寧,鐘小莉,謝旻旻
(青海民族大學(xué) 計(jì)算機(jī)學(xué)院,青海 西寧 810007)
隨著互聯(lián)網(wǎng)的迅速發(fā)展和普及,數(shù)字圖像、數(shù)字音頻、數(shù)字視頻等數(shù)字媒體的傳播變得越來(lái)越方便快捷。由于數(shù)字媒體具有易被復(fù)制、傳播、修改等特點(diǎn),使得產(chǎn)品的所有權(quán)問(wèn)題已經(jīng)成為嚴(yán)重的社會(huì)問(wèn)題。數(shù)字水印作為一種版權(quán)保護(hù)技術(shù)應(yīng)運(yùn)而生并迅速發(fā)展起來(lái),成為信息安全和多媒體信號(hào)處理領(lǐng)域的研究熱點(diǎn)。本文探討了一種應(yīng)用于圖像保護(hù)的基于DFT域的有意義水印算法。
離散傅立葉變換建立了離散空間域和頻域之間的聯(lián)系。數(shù)字圖像經(jīng) DFT變換后,圖像的空間域處理可轉(zhuǎn)變?yōu)轭l域處理,最明顯的優(yōu)點(diǎn)是算術(shù)運(yùn)算次數(shù)大大減少。
對(duì)于一幅M*N圖像f(x,y),F(xiàn)(u,v)是其頻率譜,則DFT正變換和逆變換定義如下:
正變換:
逆變換:
基于離散傅立葉變換的研究方向主要有兩大類:一類是基于 DFT域的平移、縮放和旋轉(zhuǎn)的幾何不變性,將載體圖像進(jìn)行Fouier-Millin變換實(shí)現(xiàn)水印的嵌入來(lái)抵抗幾何攻擊。另一類是利用傅立葉域的頻譜信息來(lái)嵌入水印[1],研究發(fā)現(xiàn)水印應(yīng)嵌入在最重要的分量以獲得較好的魯棒性,嵌入的方法主要有相位譜、幅度譜、相位和幅度譜結(jié)合幾種,本文采用的是幅度譜水印算法。
傅立葉變換是復(fù)數(shù)范圍內(nèi)的變換,如果在計(jì)算機(jī)上按照其定義式來(lái)計(jì)算的話,計(jì)算量將非常大。由此人們提出了快速傅立葉變換算法FFT[2]。它與原始算法的計(jì)算量之比為N/ log2N。當(dāng)N比較大時(shí),計(jì)算量的節(jié)省將相當(dāng)可觀。
1.2.1 定義
Arnold變換是Arnold在遍歷理論中提出的一種變換,俗稱貓臉變換。設(shè)想在單位正方形上的點(diǎn)(x,y),將其變到另一點(diǎn)(x′,y′)的變換為[3]:
此變換稱作Arnold變換。將Arnold變換應(yīng)用在數(shù)字圖像上,可以通過(guò)像素坐標(biāo)的改變而改變圖像灰度值的布局。經(jīng)過(guò)Arnold變換后的圖像會(huì)變得“混亂不堪”,但繼續(xù)使用Arnold變換,會(huì)出現(xiàn)一幅與原圖相同的圖像,說(shuō)明 Arnold變換具有周期性。
對(duì)于大小為N*N的圖像F,可進(jìn)行離散化Arnold變換:
其中,x ,y∈{0,1,2,…,N-1},(x,y)表示圖像矩陣的某個(gè)元素未變換時(shí)的位置,(x′,y′)表示變換后新的位置。對(duì)圖像F中所有的像素進(jìn)行Arnold變換就完成了一次Arnold變換。
1.2.2 Arnold變換周期
設(shè)有一幅2*2的圖像,其數(shù)字矩陣為
經(jīng)過(guò)幾次Arnold變換過(guò)程如下:
即該圖像經(jīng)過(guò)3次變換恢復(fù)了原圖,可見(jiàn)當(dāng)N=2時(shí),Arnold變換的周期為3。本算法采用的水印圖像尺寸為40*40,變換周期為30,即迭代進(jìn)行30次Arnold置亂后,水印圖像將恢復(fù)原來(lái)面目。對(duì)于不同的圖像矩陣階數(shù)N,Arnold變換有不同的周期,表1為不同階下二維Arnold變換的周期。
表1 Arnold變換周期
可以看出,矩陣階數(shù)N與Arnold變換的周期并不成正比。因此,在設(shè)計(jì)數(shù)字水印圖像大小的時(shí)候,如果從減少運(yùn)算量的角度出發(fā),盡量選擇變換周期較小階數(shù)的圖像。
Arnold變換具有算法簡(jiǎn)單、計(jì)算花費(fèi)少、置亂后的圖像總像素個(gè)數(shù)不變等特點(diǎn),因此加密效果較好。
本算法包括水印嵌入和提取過(guò)程,所使用的水印為二值圖像,載體是256*256的灰度級(jí)lena圖像。
設(shè)X為原始圖像,待隱藏的二值圖像為W,首先將原始圖像劃分子塊,對(duì)每一圖像塊進(jìn)行DFT變換,將二值水印圖像用 Arnold變換置亂。產(chǎn)生兩個(gè)偽隨機(jī)序列。置亂水印矩陣值為 0時(shí)用一個(gè)偽隨機(jī)序列與原始圖像的幅度譜進(jìn)行乘性疊加,矩陣值為1時(shí),用另一個(gè)偽隨機(jī)序列與原始圖像幅度譜進(jìn)行乘性疊加。
(1)子塊劃分,將原始圖像分成8*8的圖像子塊。
(2)對(duì)每一圖像塊進(jìn)行DFT變換。
(3)對(duì)二值水印圖像W進(jìn)行Arnold變換。
(4)產(chǎn)生兩個(gè)不相關(guān)的偽隨機(jī)序列。
(5)修改相應(yīng)幅度譜值。
由于 DFT域的幅度譜具有對(duì)稱性,為了保持水印嵌入后對(duì)稱性不變,嵌入水印時(shí)采用對(duì)稱嵌入。
(6)對(duì)每一圖像塊進(jìn)行DFT逆變換,得到含水印圖像。
(1)子塊劃分,將嵌入水印圖像分成8*8的圖像子塊。
(2)對(duì)每一圖像塊進(jìn)行DFT變換。
(3)產(chǎn)生兩個(gè)不相關(guān)的偽隨機(jī)序列。
(4)計(jì)算嵌入水印幅度譜與偽隨機(jī)序列的相關(guān)性,并按照嵌入時(shí)的規(guī)則產(chǎn)生水印矩陣。
(5)將水印矩陣用Arnold變換進(jìn)行置亂得到提取水印。
在matlab7.0環(huán)境下對(duì)提出的算法進(jìn)行仿真。仿真實(shí)驗(yàn)采用 256*256的灰度級(jí) lena圖像作為載體圖像,用一幅40*40大小、“青海民大”字樣的二值圖像作為水印圖像,如圖1所示。添加水印后的圖像質(zhì)量、水印信息的失真程度分別用峰值信噪比(PSNR)和相似比(NC)來(lái)衡量。
圖1 仿真實(shí)驗(yàn)對(duì)象
按照嵌入算法,取嵌入強(qiáng)度k=1.0進(jìn)行信息隱藏得到隱藏后的圖像如圖2所示。水印的不可見(jiàn)性是數(shù)字水印必備的特性之一,不可見(jiàn)性通常使用PSNR指標(biāo)進(jìn)行衡量,一般情況下,如果 PSNR指標(biāo)大于 30dB,則認(rèn)為水印不可見(jiàn)[4]。實(shí)驗(yàn)表明嵌入信息后的圖像相對(duì)于原圖像有較高的峰值信噪比PSNR=41.6484dB。從嵌入水印的圖像及相應(yīng)指標(biāo)可以看出,嵌入水印圖像與原載體圖像幾乎沒(méi)有差別,人眼無(wú)法區(qū)分其差異,所得到的PSNR大于40dB,這說(shuō)明該算法嵌入水印的不可見(jiàn)性很好。
根據(jù)水印提取算法,對(duì)圖2進(jìn)行算法提取。得到圖3所示的提取水印信息,相似比NC=0.99305。NC指標(biāo)接近于1,說(shuō)明算法所嵌入的水印能夠被很好地提取,實(shí)際的水印提取結(jié)果也說(shuō)明了這一點(diǎn)。進(jìn)一步測(cè)試表明水印嵌入強(qiáng)度越大,提取的水印效果會(huì)越好,但相應(yīng)的嵌入水印圖像的失真會(huì)比較明顯。在實(shí)際應(yīng)用中可按不同的情況均衡嵌入強(qiáng)度與水印不可感知性之間的矛盾。
圖2 嵌入水印圖像
圖3 提取的水印
3.2.1 JPEG壓縮測(cè)試
將含有水印的圖像以質(zhì)量因子Q進(jìn)行JPEG壓縮。質(zhì)量因子Q表示壓縮比,Q的取值范圍是0~100之間,取值越大,圖像壓縮失真越小,圖像效果越好,但圖像文件就越大。Q越小表示壓縮比越高,攻擊強(qiáng)度也越大。圖4是Q=90時(shí)Lena的壓縮圖像和為其提取的水印,NC=0.84824。從檢測(cè)出的水印以及實(shí)驗(yàn)數(shù)據(jù)可看出,該算法對(duì)JPEG壓縮有比較強(qiáng)的魯棒性,表現(xiàn)出了一定的抗JPEG壓縮攻擊的能力。
圖4 Q=90的JPEG有損壓縮攻擊
3.2.2 旋轉(zhuǎn)攻擊測(cè)試
對(duì)含水印圖像進(jìn)行旋轉(zhuǎn),提取出的水印圖像和相應(yīng)的實(shí)驗(yàn)檢測(cè)結(jié)果如圖5所示。
圖5 旋轉(zhuǎn)15度的含水印圖像及提取的水印圖像
由實(shí)驗(yàn)結(jié)果可知,通過(guò)對(duì)含水印圖像旋轉(zhuǎn),提取的水印圖像質(zhì)量受到嚴(yán)重影響NC值只有0.78118,說(shuō)明該算法抵抗旋轉(zhuǎn)的能力較弱。
3.2.3 抗噪聲攻擊
對(duì)含水印圖像添加噪聲密度為 0.01的椒鹽噪聲后提取的水印如圖6所示。
圖7 加噪后(0.01)含水印圖像及提取的水印圖像
從實(shí)驗(yàn)結(jié)果可以看出,隨著噪聲強(qiáng)度的加大,含水印圖像以及提取的水印的失真變大,抗攻擊能力降低。
文中把置亂算法和 DFT相結(jié)合能夠進(jìn)一步提高對(duì)數(shù)字信息的保護(hù),Arnold變換中的參數(shù)k和水印圖像的置亂次數(shù)可以作為提取水印的密鑰,提高了水印的安全性。仿真結(jié)果證明該算法復(fù)雜度較低,能抵抗常見(jiàn)的對(duì)圖像的惡意攻擊,實(shí)用性較強(qiáng),且具有較好的魯棒性和透明性。算法不足之處在于當(dāng)攻擊強(qiáng)度加大時(shí),提取的水印效果不理想,因此還可做更進(jìn)一步的研究。