方春城,譚忠明,林若波,邢南亮
(1.揭陽(yáng)職業(yè)技術(shù)學(xué)院機(jī)電工程系,廣東揭陽(yáng)522051;2.揭陽(yáng)職業(yè)技術(shù)學(xué)院圖書(shū)館,廣東揭陽(yáng)522051;3.揭陽(yáng)職業(yè)技術(shù)學(xué)院實(shí)訓(xùn)與計(jì)算機(jī)中心,廣東揭陽(yáng)522051)
隨著信息技術(shù)的發(fā)展和互聯(lián)網(wǎng)技術(shù)的廣泛應(yīng)用,數(shù)字媒體使用越來(lái)越廣泛,極易被拷貝、篡改,信息安全越來(lái)越顯示其重要性,數(shù)字媒體版權(quán)保護(hù)也越來(lái)越受到人們的重視;加密技術(shù)在一定程度上已經(jīng)不能夠滿足信息安全的需求;于是,數(shù)字水?。╠igital watermarking)技術(shù)應(yīng)運(yùn)而生[1].水印技術(shù)與加密技術(shù)不同,前者要求隱蔽載體的改動(dòng)在感官上是不能感知的,而后者載體的改動(dòng)在感官上是可以感知的.水印算法按不同嵌入域,可分為變換域和空域[1-2],變換域算法是當(dāng)前的研究熱點(diǎn).如根據(jù)人類視覺(jué)模型特性的DCT域水印算法等.DCT算法與國(guó)際數(shù)據(jù)壓縮標(biāo)準(zhǔn)JPEG(Joint Photographic Experts Group,聯(lián)合圖像專家組)兼容,便于實(shí)現(xiàn),應(yīng)用也較多[3].本文主要討論DCT(Discrete Cosine transformation,離散余弦變換)域的數(shù)字水印算法.
水印信息一般都是具有重要意義的信息,水印信息在嵌入數(shù)字媒體前通常都進(jìn)行加密預(yù)處理,以增強(qiáng)水印信息的安全性.這里主要采用Arnold變換對(duì)水印信息進(jìn)行預(yù)處理.該變換的原理是將水印圖像的像素進(jìn)行有規(guī)律的移動(dòng)[3-4],直到把水印圖像變換成視覺(jué)上無(wú)規(guī)則的圖像.Arnold變換的核心思想可以歸納為[3-5]
式(1)中,(X,Y),(X′,Y′)分別代表水印圖像進(jìn)行Arnold變換前后的像素,N為水印圖像的大?。疚乃捎玫乃D像為40*40的二值圖像,圖1的(a)、(b)、(c)、(d)、(e)、(f)圖分別代表原始水印圖像經(jīng)過(guò)1次、2次、3次、5次、20次Arnold變換的水印圖像.通過(guò)圖1各圖的比較可以看出,原始水印圖像經(jīng)過(guò)5次以上的Arnold變換置亂后開(kāi)始變得無(wú)規(guī)律,從圖中可以看出原始水印圖像像素之間的數(shù)值相關(guān)性隨著變換次數(shù)的增加開(kāi)始下降,在感官上逐漸混亂,從而達(dá)到加密的效果.
圖1 原始水印及變換圖
為增強(qiáng)水印的魯棒性和穩(wěn)健性,本算法將水印信息嵌入到載體圖像的DCT域里,選擇DCT系數(shù)的中頻段系數(shù).將載體圖像C進(jìn)行8*8的圖像分塊并進(jìn)行DCT變換,取每一塊圖像子塊DCT變換后的系數(shù)(k1(i)+3,k2(i)+2)作為具體的水印信息嵌入位.設(shè)定一個(gè)嵌入強(qiáng)度因子α,以增強(qiáng)水印信息在提取時(shí)的精確度.按照Z(yǔ)izag排列,選擇要嵌入水印信息的DCT系數(shù)L1:(k1(i)+3,k2(i)+2),及其前后的兩個(gè)DCT系數(shù)L0:(k1(i)+2,k2(i)+3);L2:(k1(i)+4,k2(i)+1),并計(jì)算這三個(gè)系數(shù)的均
值mid=,比較L1與mid的大小,以L1大于mid代表信息“1”,L1小于mid代表信息“0”.嵌入步驟如下:
(1)將二值水印圖像W進(jìn)行Arnold變換,得到置亂的水印信息,并轉(zhuǎn)換為一維序列M′.
(2)將載體圖像C進(jìn)行8*8分塊,并進(jìn)行DCT變換,得到一個(gè)二維的DCT變換系數(shù)矩陣.
(3)在每一塊圖像塊中嵌入一位水印信息,采用隨機(jī)控制方法選取圖像塊bi,表示第i個(gè)信息比特的編碼[2],而且用于控制隨機(jī)選取圖像塊的key可以當(dāng)作該算法的key.
(4)按照Z(yǔ)izag排列,選擇要嵌入水印信息的DCT系數(shù)L1及其前后的兩個(gè)DCT系數(shù)L0,L2,計(jì)算這三個(gè)系數(shù)的均值mid.
(5)選取水印信息比特位Wi,和要嵌入的DCT系數(shù)L1,比較L1和mid的大小,如果Wi=1且L1大于mid,則不用修改DCT系數(shù)L1,否則將L1修改為mid,并加上強(qiáng)度因子α,即L1=mid+a;如果Wi=0且L1小于mid,則不用修改DCT系數(shù)L1,否則將L1修改為mid,并減去強(qiáng)度因子α,即L1=mida.
(6)水印嵌入完畢后,將載體圖像進(jìn)行IDCT(Inverse Discrete Cosine transformation,離散余弦變換)變換,并得到隱蔽載體C′.
將隱蔽載體圖像C′進(jìn)行8*8的圖像分塊并進(jìn)行DCT變換,按照Z(yǔ)izag排列,計(jì)算相應(yīng)的L0、L1、L2三個(gè)DCT系數(shù)的均值mid,比較L1與mid的大小關(guān)系,以L1大于mid代表信息“1”,L1小于mid代表信息“0”,提取水印信息.提取步驟如下:
(1)將隱蔽載體圖像C′進(jìn)行8*8分塊,并進(jìn)行DCT變換,得到一個(gè)二維的DCT變換系數(shù)矩陣.
(2)采用隨機(jī)控制方法選取圖像塊bi.
(3)按照Z(yǔ)izag排列,求出mid的值,并與L1比較,如果mid大于L1表示信息“1”,反之為“0”,并存于一個(gè)一維序列S.
(4)按原始水印的大小,將一維序列S轉(zhuǎn)換為二維矩陣S′.
(5)對(duì)S′進(jìn)行Arnold反變換,恢復(fù)出水印圖像,并保存為二值圖像W′.
隱蔽載體圖像感官質(zhì)量和水印圖像的評(píng)價(jià)分別采用峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)和歸一化相關(guān)系數(shù)(Normalized Correlation Coefficient,NC)[5-8].峰值信噪比和歸一化相關(guān)系數(shù)(NC)的定義[5-8]分別如式(2)、(3).
PSNR=
式中M、N分別表示載體圖像的寬度和高度(以像素為單位);L′和L分別表示隱蔽載體圖像和原始載體圖像的像素.
式中M、N分別表示水印圖像的寬度和高度(以像素為單位);W′和W分別表示提取的水印圖像和原始水印圖像的像素.
本文采用標(biāo)準(zhǔn)圖庫(kù)的lena灰度圖像(512*512)作為原始載體C,其灰度級(jí)別為256級(jí);以帶“水印”字樣的二值圖像(40*40)作為水印圖像W,進(jìn)行實(shí)驗(yàn);將水印圖像進(jìn)行5次Arnold變換,嵌入強(qiáng)度依次采用α=0.05和α=0.08.α越大,穩(wěn)健性越好,但不可感知性就越差[6].圖2(a)中三個(gè)圖像分別表示α=0.05時(shí)的隱蔽載體、提取出來(lái)的(加密)水印信息及經(jīng)過(guò)Arnold反變換后的水印圖像;圖2(b)是α=0.08時(shí)的實(shí)驗(yàn)結(jié)果.通過(guò)實(shí)驗(yàn)可以看出,在保持隱蔽性的前提下,隨著α的增大,兩幅隱蔽載體圖像在感官上的變化不明顯,但PSNR值有所減小,NC值有所增大;從實(shí)驗(yàn)數(shù)據(jù)可以得出,雖然α的增大會(huì)降低圖像的質(zhì)量,但可以提高水印的相似度,即提取的精度.本算法在修改嵌入位DCT系數(shù)時(shí)通過(guò)比較該位與其鄰近兩個(gè)DCT系數(shù)的均值,再進(jìn)行修改,強(qiáng)度因子α不需要很大就能較好的提取出水印信息.
圖2 α=0.05和α=0.08時(shí)的隱蔽載體及提取出來(lái)的水印
將隱蔽載體進(jìn)行攻擊實(shí)驗(yàn).如加椒鹽噪聲(0.01)、旋轉(zhuǎn)(20°)、直方圖均衡化、剪切圖像正中間1/4、中值濾波、JPEG攻擊、任意涂改等攻擊.提取出來(lái)的水印如圖3所示.受到剪切正中間1/4攻擊和任意涂改攻擊后的隱蔽載體圖像分別如圖4(a)和4(b)所示.將受各種常見(jiàn)攻擊前的PSNR(=44.453 4)和NC(=0.993 1)值(強(qiáng)度因子α=0.08)與表1的PSNR和NC值相比較.當(dāng)隱蔽載體在受到椒鹽攻擊、旋轉(zhuǎn)(200)、剪切正中間1/4、任意涂改等四種攻擊時(shí),隱蔽載體的PSNR都小于30dB,其中剪切正中間1/4攻擊甚至小于10dB,但水印的NC值還是大于0.7,仍然能夠恢復(fù)出原水印圖像,由此可見(jiàn),該算法的魯棒性較強(qiáng).表1列出在不同攻擊方式作用下,水印的提取效果,嵌入強(qiáng)度α=0.08.
圖3 攻擊后提取出來(lái)的水印
表1 在不同攻擊方式作用下,水印提取效果,嵌入強(qiáng)度α=0.08
圖4 剪切攻擊與涂改攻擊的隱蔽載體
文獻(xiàn)[2] 給出的是經(jīng)典的DCT水印嵌入算法,該算法通過(guò)比較DCT變換中相鄰兩個(gè)DCT系數(shù)的大小,并根據(jù)水印信息確定是否交換它們的位置,從而實(shí)現(xiàn)水印的嵌入.圖5(a)、5(b)分別為α=0.14時(shí)用文獻(xiàn)[2] 算法與本文算法嵌入水印后的隱蔽載體,從兩個(gè)圖中可以看出,本文的隱蔽載體隱蔽性比文獻(xiàn)[2] 的隱蔽載體較好.表2為本文算法與文獻(xiàn)[2] 算法的比較,(嵌入強(qiáng)度α=0.14),表2是隱蔽載體的PSNR和水印的NC值,從表2的PSNR值也驗(yàn)證了這一點(diǎn).
圖5 分別用文獻(xiàn)[2] 算法與本文算法嵌入水印后的隱蔽載體α=0.14
進(jìn)一步比較本文算法與文獻(xiàn)[8] 的算法,驗(yàn)證本文算法的有效性.采用文獻(xiàn)[8] 的水印信息,進(jìn)行10次Arnold變換,嵌入強(qiáng)度α=0.14.從表3的PSNR值可以看出,在受到攻擊后,本文算法的隱蔽載體的圖像質(zhì)量差于文獻(xiàn)[8] 的情況.其中受到椒鹽攻擊、旋轉(zhuǎn)攻擊、中值濾波攻擊后,提取出來(lái)的水印歸一化相關(guān)系數(shù)都比文獻(xiàn)[8] 的結(jié)果明顯大,但抗剪切和壓縮攻擊就稍微差一點(diǎn);由此可以看出本文的算法在抗常見(jiàn)水印攻擊方法具有較好的魯棒性.文獻(xiàn)[8] 的算法通過(guò)計(jì)算圖像的灰度均值與方差,并將方差進(jìn)行排序,選出若干個(gè)方差值大的中頻系數(shù)進(jìn)行水印嵌入.該算法同樣具有較好的魯棒性,但該算法實(shí)現(xiàn)較為復(fù)雜,而本文算法在實(shí)現(xiàn)上比文獻(xiàn)[8] 的算法要簡(jiǎn)單得多.
通過(guò)以上比較可以看出,本文算法與文獻(xiàn)[2] 比較,其隱蔽性較好,但提取精度要弱一點(diǎn);與文獻(xiàn)[8] 比較,其魯棒性較好、精度較高.本算法存在的不足是在抗剪切攻擊和JPEG攻擊能力比文獻(xiàn)[8] 的算法要弱些.
本文所設(shè)計(jì)的算法根據(jù)各個(gè)子圖像塊(8*8)的DCT變換系數(shù)進(jìn)行動(dòng)態(tài)的調(diào)整,自適應(yīng)修改嵌入位的DCT系數(shù)大小實(shí)現(xiàn)水印信息嵌入.同時(shí),采用Arnold變換對(duì)水印圖像進(jìn)行預(yù)處理,降低水印信息之間的相關(guān)性;另外采用隨機(jī)控制方法選取圖像塊,用于控制隨機(jī)選取塊的key可以作為該算法的一個(gè)密鑰,因此該算法具有“雙重加密”功能,大大提高了算法的安全性.從實(shí)驗(yàn)結(jié)果分析可以看出該算法對(duì)常見(jiàn)水印攻擊方式具有較好的抗攻擊能力;采用自適應(yīng)方法,提高水印的魯棒性、穩(wěn)健性和提取效果.
表2 本文算法與文獻(xiàn)[2] 算法比較,α=0.14
表3 本文算法與文獻(xiàn)[8] 的算法比較,嵌入強(qiáng)度α=0.14
[1] 方春城.基于WEB的信息隱藏設(shè)計(jì)與應(yīng)用[D] .廣州:中山大學(xué),2010:6-11.
[2] 王麗娜,郭遲,李鵬.信息隱藏技術(shù)實(shí)驗(yàn)教程[M] .武漢:武漢大學(xué)出版社:2004:194-207.
[3] 丁镠,程顯毅,徐波.DCT域加密自適應(yīng)數(shù)字水印算法[J] .計(jì)算機(jī)應(yīng)用研究,2009,26(12):4768-4770.
[4] 丁瑋,閆偉齊,齊東旭.基于Arnold變換的數(shù)字圖像置亂技術(shù)[J] .計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2001,13(4):338-341.
[5] 趙峰,袁東風(fēng).基于DCT域的數(shù)字紋理圖像置亂評(píng)價(jià)方法[J] .吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2008,26(1):27-30.
[6] 黃武輝,劉海英,齊影虹.一種基于DCT的水印算法及其實(shí)現(xiàn)[J] .電腦知識(shí)與技術(shù),2009,5(10):2696-2698.
[7] 袁修貴,周振.一種新的基于DWT、DCT和SVD的魯棒水印算法[J] .計(jì)算機(jī)工程與科學(xué),2011,33(1):112-115.
[8] 閆麗君,康寶生,岳曉菊.改進(jìn)的基于DCT的自適應(yīng)水印算法[J] .計(jì)算機(jī)工程與應(yīng)用,2011,47(8):197-200.