盧穎穎 郭英 蔣劉敏
(南陽(yáng)廣播電視大學(xué),河南南陽(yáng) 473066)
用于圖像篡改檢測(cè)和恢復(fù)的半脆弱水印研究
盧穎穎 郭英 蔣劉敏
(南陽(yáng)廣播電視大學(xué),河南南陽(yáng) 473066)
隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,數(shù)字圖像也得到了廣泛的應(yīng)用,然而人們?cè)讷@取便利的同時(shí),很多非法的篡改、復(fù)制圖像作品也變得極其簡(jiǎn)單。為了保證內(nèi)容的真實(shí)性,開(kāi)始嘗試研究半脆弱水印技術(shù)。主要研究半脆弱水印的生成、提取、嵌入,以及嵌在水印圖像中的置亂與恢復(fù),利用圖像像素點(diǎn)的變換來(lái)實(shí)現(xiàn)置亂。本文采用Arnold置亂函數(shù)對(duì)水印圖像進(jìn)行置亂操作,可以利用它的周期性取適當(dāng)?shù)腘值恢復(fù)出原始水印圖像。在MATLAB工具基礎(chǔ)上實(shí)現(xiàn),且具有良好的結(jié)果。Arnold置亂函數(shù)不僅邏輯簡(jiǎn)單,實(shí)現(xiàn)方面,還可以降低系統(tǒng)的復(fù)雜度。
半脆弱水印 置亂 恢復(fù) Arnold置亂
近年來(lái),網(wǎng)絡(luò)技術(shù)變得越來(lái)越成熟,然而網(wǎng)絡(luò)在方面人們生活的同時(shí)也給人們帶來(lái)了困擾。人們不僅可以通過(guò)多種網(wǎng)絡(luò)手段方便快捷的獲得各種信息,還可以得到與原始數(shù)據(jù)完全相同的復(fù)制品。這樣人們可以隨意的編輯、修改、復(fù)制和散布數(shù)字圖像數(shù)字音樂(lè)等[1]。這樣網(wǎng)絡(luò)中的信息安全問(wèn)題也面臨著極其嚴(yán)峻的考驗(yàn)。尤其是近些年來(lái)著作版權(quán)更是引起很大的爭(zhēng)執(zhí)。本文重點(diǎn)介紹半脆弱水印的研究方向和成果。
圖像的完整性、真實(shí)性認(rèn)證有其獨(dú)特性[2]。第一,它是基于語(yǔ)義的認(rèn)證。只要圖像中的場(chǎng)景、對(duì)象沒(méi)有被篡改,且保持其較好的視覺(jué)質(zhì)量,則認(rèn)為圖像內(nèi)容是完整的。第二,它是二維認(rèn)證。即,不但要判斷圖像是否被篡改而且還需要確定被篡改的位置,以便分析圖像哪部分是無(wú)效的,進(jìn)而推斷篡改者的意圖等。
數(shù)字水印可以有效地保護(hù)電子商務(wù)等行業(yè)的網(wǎng)絡(luò)和安全性,其中一個(gè)重要的應(yīng)用是用于圖像內(nèi)容認(rèn)證[3],而我們要研究的半脆弱水印就是主要應(yīng)用于圖像的內(nèi)容認(rèn)證,以確保圖像數(shù)據(jù)的完整性和真實(shí)性。它是目前國(guó)內(nèi)外研究的熱點(diǎn)之一??梢?jiàn),數(shù)字水印的研究具有研究和應(yīng)用的兩個(gè)方面價(jià)值,都值得我們?nèi)ヌ剿?。本文重點(diǎn)介紹的半脆弱水印技術(shù),正是認(rèn)證水印的主流因素,從目前的研究進(jìn)展來(lái)看,數(shù)字水印可以很好的保護(hù)電子商務(wù)等行業(yè)的安全性,上面已經(jīng)提到了,半脆弱性水印技術(shù)能有效地抵抗諸如JPEG壓縮、隨機(jī)Gauss噪聲等偶然攻擊等常規(guī)操作,因此應(yīng)用十分廣泛。
表1 Arnold 變換的周期TN
圖1 水印系統(tǒng)的檢測(cè)模型
半脆弱性數(shù)字水印算法通常包含下面幾個(gè)大體過(guò)程[4]:(1)水印生成的過(guò)程;(2)水印嵌入的過(guò)程;(3)水印提取的過(guò)程;(4)水印檢測(cè)的過(guò)程(或者說(shuō)是圖像鑒別過(guò)程)。圖1大致流程圖。
半脆弱水印的分類(lèi)方法與前面歸納的數(shù)字水印分類(lèi)方法類(lèi)似。目前的研究成果方法包括LSB方法、Patchwork方法等;其中第二種方法是將水印信息隱藏到數(shù)字圖像中經(jīng)仿射變換后生成的系數(shù)矩陣,再仿射變換分類(lèi),但是必須保證水印信息不可見(jiàn),能獲得較強(qiáng)抵抗偶然攻擊的能力。
已有的幾種變換:
(1)基于空間域的半脆弱水印算法:空間域算法是將信息嵌入到隨機(jī)選擇的圖像點(diǎn)中最低的像素位(LSB:Least Significant Bit)上;
(2)基于變換域的DCT半脆弱水印算法:又稱(chēng)離散余弦變換,由于DCT變換具有能量集中度高等特點(diǎn),所以該變換常常被用來(lái)提升數(shù)字水印算法的魯棒性;
(3)基于變換域的DWT半脆弱水印算法。
水印的置亂,實(shí)際上就是利用算法技術(shù)將一幅圖各像素的次序位置打亂,即越亂越好,但要求像素的總個(gè)數(shù)不能發(fā)生改變。
常用的置亂技術(shù)主要包括Arnold變換算法、仿射變換算法、幻方變換、分形Hilbert曲線(xiàn),IFS模型、Conway游戲和廣義Gray碼變換等方法。本設(shè)計(jì)使用的是Arnold變換算法,因?yàn)槠渌惴ê?jiǎn)單、置亂效果很好,且具有可以計(jì)算的周期性,在圖像信息隱藏方面得到了很好的應(yīng)用。
定義:Arnold變換是由V.J.Arnold提出的一種裁剪變換。Arnold變換如下:
式子(1)中:(mod 1)表示模1運(yùn)算。其中,(x,y)是指原圖像中的坐標(biāo),( x‘,y‘)是變換后的坐標(biāo)。這里的坐標(biāo)均是像素點(diǎn)所在的坐標(biāo)。此變換就是Arnold變換,經(jīng)過(guò)變換后,圖像就會(huì)變得模糊。一般實(shí)際生活中為了使圖片變得更加復(fù)雜,需要將式中的二維 Arnold變換改寫(xiě)為:
在公式(2)中,N是圖像矩陣的階數(shù),也即是圖像的大小,一般指的是方陣,在本設(shè)計(jì)中我們用到的是位圖。Arnold變換用到方陣中較多,也可以用到一般的矩陣中。
迭代過(guò)程呈周期性,只要不斷的變換N值,繼續(xù)使用Arnold變換就一定能恢復(fù)出初始狀態(tài)。Arnold變換可以看作是反復(fù)連續(xù)的過(guò)程,將數(shù)字圖像矩陣中的像素重新排列組合,以達(dá)到置亂的目的。但是數(shù)字圖像的像素點(diǎn)總是有限的,迭代到一定程度上時(shí),就會(huì)恢復(fù)原圖。表1是在不同N值下Arnold變換的周期表。
我們可以看出,Arnold變換的周期與N值的大小有關(guān),即與圖像大小有關(guān),但并不成線(xiàn)性關(guān)系。設(shè)T為Arnold變換的周期,那么要計(jì)算經(jīng)過(guò)t次變換的圖像如何恢復(fù)出原始圖像[5]。
我們可以這樣計(jì)算,假設(shè)要對(duì)一幅進(jìn)行過(guò)t(t∈[1,T])次 Arnold置亂變換的數(shù)字圖像進(jìn)行恢復(fù),我們可以利用公式(3)對(duì)其繼續(xù)進(jìn)行L次置亂即可恢復(fù)原圖。對(duì)于任意置亂次數(shù)n,則需要利用公式(4)對(duì)其繼續(xù)進(jìn)行L'次變換。這是我們計(jì)算置亂恢復(fù)的公式,根據(jù)不同的N值可以得到我們想要的結(jié)果。
例如,對(duì)于512*512的數(shù)字圖像,其置亂周期T=384,也就是說(shuō)原圖經(jīng)過(guò)384次Arnold變換后圖像就會(huì)變回原圖。假設(shè)對(duì)一幅圖像進(jìn)行了Arnold置亂50次,即t=50,只需代入公式(3)計(jì)算出再經(jīng)過(guò)334次Arnold變換,便可恢復(fù)出原圖。對(duì)于256*256的圖像,要經(jīng)過(guò)192次恢復(fù)原圖,假設(shè)對(duì)置亂300次后的圖像,則需要利用公式(4)再進(jìn)行置亂變換的次數(shù)為84次才可以恢復(fù)原圖。
一般來(lái)說(shuō)判斷圖像塊是否通過(guò)驗(yàn)證,相異則判斷為被篡改。定義篡改矩陣T以對(duì)圖像的篡改位置作出標(biāo)記[6,7]。
其中,公式(5)的矩陣T中為1的點(diǎn)就表示圖像中像素點(diǎn)被非法篡改,為0表示圖像中的像素點(diǎn)未被非法篡改。
我們這里提出的篡改定位[8]的方法是,假設(shè)從含水印圖像某一部分中某塊子圖像進(jìn)行編號(hào)為L(zhǎng)[nInd](0<=nInd<l,l為圖像每個(gè)部分中8*8像素塊數(shù))分塊中提取的水印信息比特序列為{wjnInd},j=0,1,2,3。統(tǒng)計(jì){WjnInd}中1的個(gè)數(shù),若大于等于2,則記從該塊中提取的水印比特 b1為1,否則b1為0。同理,記從編號(hào)為L(zhǎng)[nInd+l]、L[nInd+2l]的分塊中提取的水印比特分別為b2,b3,因此,如果圖像未遭到任何篡改,應(yīng)有:b1=b2=b3;如果圖像遭受諸如裁剪,替換等惡意的篡改操作時(shí),可以按下面方法確定篡改發(fā)生的位置:(1)如果b1=b2=b3,則未發(fā)生篡改;(2)如果b1=b2!=b3,則像素塊L[nInd+2l]發(fā)生了篡改;(3)如果b2= b3!=b1,則像素塊L[nInd]發(fā)生了篡改;(4)如果b1=b3!=b2,則像素塊 L[nInd+l]發(fā)生了篡改;(5)如果b1=b3!=b2,則像素塊L[nInd]、L[nInd+l]、L[nInd+2l]均被篡改。
圖2中的各個(gè)圖展示了所有過(guò)程。載體圖片如圖2(a)所示,利用原始圖像(如圖2(b)所示)生成了二值水印圖像(如圖2(c)所示),然后把二值水印圖像嵌入到載體圖像中(如圖2(d)所示)。對(duì)含水印的圖像進(jìn)行N=1的置亂效果如圖2(e)所示,對(duì)含水印的圖像進(jìn)行N=40的置亂效果如圖2(f)所示,在對(duì)置亂后的圖像使用Aronld逆變換恢復(fù)原始圖像,然后在提取出原來(lái)的二值水印信息。當(dāng)N=384時(shí)恢復(fù)出了原始的水印圖像,如圖2(g)所示。由此可見(jiàn)Arnold變換呈現(xiàn)周期性,即不同的N值對(duì)水印圖像的置亂效果也不一樣。當(dāng)遍歷了原圖像的所有點(diǎn)之后,便產(chǎn)生了一副新的混亂不堪的圖片。實(shí)驗(yàn)證明了Arnold變換具有很好的周期性,在Matlab工具中很好的恢復(fù)了原始的水印圖片(如圖2(h)所示)。
本文用于圖像篡改與恢復(fù)的半脆弱水印的研究,先是討論數(shù)字水印,緊接著詳細(xì)介紹半脆弱水印的性質(zhì)以及分類(lèi)。文中從水印的生成、水印的嵌入、水印的提取、水印的檢測(cè)以及置亂算法,詳細(xì)的介紹了含水印圖像的置亂與恢復(fù)。最終在Matlab工具上實(shí)現(xiàn),結(jié)合Arnold變換算法有效的恢復(fù)了原始的圖像信息和水印信息,文中提出的水印檢測(cè)是很復(fù)雜的運(yùn)算,目前都是在已知惡意破壞的情況下,盡量去完整的恢復(fù)原始圖像或水印信息。若要對(duì)檢測(cè)的篡改區(qū)域完整的恢復(fù)還需要我們進(jìn)一步的努力去探索。
[1]湯文明,李海華.用于圖像認(rèn)證的半脆弱數(shù)字水印技術(shù)綜述[J].機(jī)電學(xué)報(bào),2010,27(4):115-118.
[2]董剛,張良,張春田.一種半脆弱性數(shù)字圖像水印算法[J].通信學(xué)報(bào),2004,24(1):33-38.
[3]趙洋,孫燮華.HVS的DWT域半脆弱水印算法[J].中國(guó)計(jì)量學(xué)院學(xué)報(bào),2008,19(4):333-337.
[4]劉東彥,劉文波,張弓.圖像內(nèi)容可恢復(fù)的半脆弱水印技術(shù)研究[J].中國(guó)圖像圖形學(xué)報(bào),2010,15(1):20-25.
[5]石兆軍.基于半脆弱數(shù)字水印的圖像內(nèi)容認(rèn)證及恢復(fù)研究[D].電子郵件科技大學(xué),2010.
[6]陳自剛,朱海華.可信JPEG XR圖像采集研究與實(shí)現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版).2012,39(7):913-918.
[7]陳自剛,何金枝.基于JPEG XR的半脆弱數(shù)字水印技術(shù)研究[J].電視技術(shù),2012,36(15):25-27,39.
[8]藍(lán)炳偉.基于半脆弱數(shù)字水印的圖像篡改定位與恢復(fù)[J].計(jì)算機(jī)時(shí)代,2008,11:17-19.
With the rapid development of network technology, digital image has also been widely applied, however people get convenience, many illegal tampering,copy the image works have become extremely simple.In order to ensure the authenticity of the content,started to try Semi-fragile watermarking technology. Researched the semi-fragile watermark generation, extraction, embedding, and watermark scrambling and recovery embedded in the image, using the transformation of the image pixels to achieve scrambling. This paper uses Arnold scrambling function watermark image scrambling operation, it can take appropriate periodicity value of N to recover the original watermark image. The realization is on MATLAB tools, and has been a good result. Arnold scrambling function is not only simple logic to achieve respect, can also reduce the complexity of the system.
semi-fragile watermarking Scrambling Recovery Arnold scrambling