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