尤晶晶,王韶霞
(煙臺(tái)職業(yè)學(xué)院 信息工程系,山東 煙臺(tái) 264000)
抗JPEG壓縮的半脆弱水印算法研究
尤晶晶,王韶霞
(煙臺(tái)職業(yè)學(xué)院 信息工程系,山東 煙臺(tái) 264000)
根據(jù)JPEG壓縮過程中的兩個(gè)不變性原理設(shè)計(jì)了一種半脆弱水印算法.該算法可以接受指定質(zhì)量因子的JPEG有損壓縮對水印圖像的處理,以滿足半脆弱水印的要求,同時(shí)不需要原始水印,而是以圖像自身的特征作為水印嵌入到圖像中,從而達(dá)到可盲檢測的目的.仿真實(shí)驗(yàn)表明,該算法能對水印圖像的被篡改位置進(jìn)行比較精確的定位,同時(shí)具有抗JEPG壓縮的特性.
半脆弱水?。淮鄹亩ㄎ?;JPEG壓縮;盲檢測
計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和數(shù)字多媒體技術(shù)的飛速發(fā)展,使得多媒體信息的交流達(dá)到前所未有的深度和廣度.然而,多媒體信息在傳輸過程中會(huì)遭受各類篡改攻擊,使得人們對數(shù)字媒體(數(shù)字圖像,數(shù)字音頻,數(shù)字視頻)的完整性、內(nèi)容的真實(shí)性產(chǎn)生質(zhì)疑.如何在網(wǎng)絡(luò)環(huán)境中,對數(shù)字媒體內(nèi)容的真實(shí)性、完整性實(shí)施有效保護(hù)已成為一個(gè)嚴(yán)峻的現(xiàn)實(shí)問題.為了解決此類多媒體信息安全問題,數(shù)字水?。―igital Watermark)技術(shù)應(yīng)運(yùn)而生并得到了廣泛關(guān)注,目前已成為國際學(xué)術(shù)界的一個(gè)研究熱點(diǎn)[1].本文基于JEPG壓縮前后的兩個(gè)不變性原理,提出一種半脆弱水印方案,該方案可以接受指定質(zhì)量因子的JPEG有損壓縮對水印圖像的處理,同時(shí)可以檢測惡意篡改.
1.1 不變性原理一
如果一個(gè)DCT系數(shù)是經(jīng)過某個(gè)預(yù)先選定的量化步長量化并取整得到的,只要后續(xù)的量化步長小于選定值,則這個(gè)DCT系數(shù)可以被精確重建[2].換句話說,如果某幅圖像預(yù)先經(jīng)過某個(gè)選定的質(zhì)量因子的JPEG有損壓縮,那么這幅圖像可以對任何大于該選定質(zhì)量因子的后續(xù)JPEG壓縮保持不變,因?yàn)樵剂炕瘓D像所有DCT系數(shù)都可以精確重建,而如果后續(xù)JPEG壓縮的質(zhì)量因子小于選定值,原始量化圖像的DCT系數(shù)則無法恢復(fù).
如原始圖像DCT系數(shù)為137,第一次JPEG壓縮的質(zhì)量因子為50,該系數(shù)對應(yīng)的量化步長為20,則其量化結(jié)果為[3]
其中v∈{1,…,64}及p∈{1,…k},k表示圖像總的分塊數(shù),v代表8×8圖像分塊中的某個(gè)DCT系數(shù)的位置.設(shè)第二次JPEG壓縮的質(zhì)量因子為75,該系數(shù)對應(yīng)的量化步長為15,則繼續(xù)量化的結(jié)果為
則該DCT系數(shù)可重構(gòu)如下
由于預(yù)量化步長大于質(zhì)量因子為50時(shí)的量化表量化步長,根據(jù)第一條不變特性,嵌入水印后的圖像在經(jīng)受質(zhì)量因子大于等于50的JPEG壓縮后,水印可以正確提取.
1.2 不變性原理二
兩個(gè)圖像塊中對應(yīng)位置的DCT系數(shù)的相對大小在JPEG壓縮前后不變[4].該性質(zhì)是圖像本身的特性,本算法正是利用這一特性,將圖像本身的特性作為水印嵌入到圖像中,用來檢測圖像的篡改情況,而非使用原始水印嵌入圖像中,體現(xiàn)了本算法的優(yōu)越性,這也正是下文中將要提到的盲檢測.
算法主要具有篡改檢測功能,而篡改檢測又可分為盲檢測和非盲檢測兩種.所謂盲檢測,是指檢測圖像篡改時(shí)不需要原始水印的參與,對圖像篡改的檢測是通過比較由原始圖像本身特征生成的某種水印與從篡改圖像中提取出的水印來實(shí)現(xiàn)的.具體說來,是將由原始圖像本身特征生成的某種水印反過來嵌入圖像本身,圖像遭受篡改后,我們從篡改圖像中由同樣的圖像特征生成新水印,并將其和由篡改圖像中提取出的舊水印(即原始圖像的特征)進(jìn)行比較,從而實(shí)現(xiàn)篡改定位[5].而非盲檢測是指檢測時(shí)通過比較原始水印和提取水印的差別來定位圖像被篡改的位置,原始水印與載體圖像無關(guān),通常可采用m序列或混沌序列來生成[6].
與非盲檢測相比,盲檢測更具實(shí)際應(yīng)用價(jià)值,它不需要圖像在傳遞過程中專門傳遞原始水印信息,減少了通信開銷,而且基于原始圖像特征的水印為篡改定位后的圖像恢復(fù)提供了依據(jù).但盲檢測也存在固有的缺陷,因?yàn)閳D像被篡改后,嵌入水印的區(qū)域也可能遭到破壞,導(dǎo)致從圖像中提取的水印發(fā)生變化,而篡改后圖像的特征也同時(shí)發(fā)生了變化,這樣有可能導(dǎo)致對篡改的錯(cuò)誤定位以及發(fā)生篡改的地方被認(rèn)為沒有遭受篡改,從而造成檢測出現(xiàn)失真.這也是可盲檢測的半脆弱水印設(shè)計(jì)的難點(diǎn)[7-8].
下面結(jié)合DCT系數(shù)在JPEG壓縮過程中的兩個(gè)不變特性,進(jìn)行可盲檢測的半脆弱水印設(shè)計(jì),通過DCT系數(shù)的相對大小在JPEG壓縮前后的不變特性作為圖像特征生成水印,利用DCT系數(shù)可重建的特性嵌入水印,具體算法如下.
2.1 水印嵌入算法
(1)原始圖像大小為256×256,按8×8分塊并進(jìn)行DCT變換,共得到32×32=1 024個(gè)分塊.
(2)對進(jìn)行過DCT變換的圖像塊按以下方法重新排列:先將每個(gè)8×8小塊按“之”字形掃描得到一個(gè)64×1的列向量,再將這1 024個(gè)列向量并排組成一個(gè)64×1 024的數(shù)組F(小塊的順序按原圖像列掃描得到).
(3)將數(shù)組F每兩列分成一組,根據(jù)每組兩列在第17個(gè)位置處的系數(shù)a17和b17的大小關(guān)系,按以下方法生成水印,共可生成512 bits水?。ㄋ鼈兘M成一個(gè)行向量w)[9]
(4)在生成水印后再按照下面方法進(jìn)一步調(diào)整a17和b17的大小關(guān)系:
上述做法的目的是為了把a(bǔ)17和b17間差值較小的情況調(diào)整成差值至少為Q50(17)+Δ,以使得經(jīng)過JPEG壓縮后的圖像的生成水印可以保持不變,閾值Δ根據(jù)實(shí)驗(yàn)中的交互觀察取8.
(5)將生成的512 bits水印用DCT系數(shù)重建法嵌入到一些特定選取列的第18個(gè)位置處的系數(shù)中,我們將w(1)嵌入第1列的第18個(gè)位置處的系數(shù),w(2)嵌入第2列的第18個(gè)位置處的系數(shù)……,w(512)嵌入第512列的第18個(gè)位置處的系數(shù).嵌入的具體方法如下[10]
(6)將已經(jīng)經(jīng)過系數(shù)調(diào)整和嵌入水印的64×1 024數(shù)組重新組合成DCT系數(shù)矩陣,再對各8×8分塊進(jìn)行DCT逆變換,得到嵌入水印后的圖像.
2.2 水印提取和檢測算法
(1)原始圖像大小為256×256,按8×8分塊并進(jìn)行DCT變換,共得到32×32=1 024個(gè)分塊;
(2)對進(jìn)行過DCT變換的圖像塊按以下方法重新排列:先將每個(gè)8×8小塊按“之”字形掃描得到一個(gè)64×1的列向量,再將這1024個(gè)列向量并排組成一個(gè)64×1 024的數(shù)組F;
(3)將數(shù)組F每兩列分成一組,根據(jù)每組兩列在第17個(gè)位置處的系數(shù)a17和b17的大小關(guān)系按以下方法生成水印,共可生成512 bits水?。ㄋ鼈兘M成一個(gè)行向量w):
將w按列的順序組織成一個(gè)32×16的水印w1;
(4)將步驟(2)提到的64×1 024的數(shù)組中的第i列(i=1,2,…,512)中的第18個(gè)位置處的系數(shù)F(18,i)除以Qm'中對應(yīng)的量化步長Qm'(18),并進(jìn)行四舍五入為fp'(18,i),按下式提取水印
將w按列的順序組織成一個(gè)32×16的水印w2;
(5)將w1和ww22做位異或處理,得到檢測水印w0,用公式表示為w0=w1⊕w2;
(6)找出w0中1的位置,它們對應(yīng)遭篡改圖像中被改動(dòng)的8×8塊的位置,有可能是提取水印對應(yīng)的塊發(fā)生了篡改,也有可能是生成水印對應(yīng)的塊發(fā)生了篡改,如32×16的檢測水印在(i,j)處為1,則對應(yīng)32×32個(gè)8×8小塊組成的檢測水印中,第(2i-1,2j-1)、(2i,2j-1)、(2(i-16)-1,2j)、(2(i-16),2j)個(gè)塊將被標(biāo)示;
(7)對用于標(biāo)示篡改位置的二值圖像進(jìn)行觀察,會(huì)發(fā)現(xiàn)在圖像的某些地方白塊比較集中,這是最可能遭到篡改的部分;而在圖像的另外一些地方白塊則呈現(xiàn)出零星分布狀態(tài),這些白塊通常是“虛警塊”,即本來沒有被篡改卻被標(biāo)示為受到篡改的圖像塊,可以采用形態(tài)學(xué)濾波(腐蝕,選用2×2的像素正方形模板)的方法去除這些稀疏塊從而更加精確對篡改進(jìn)行定位.
形態(tài)濾波屬于形態(tài)學(xué)圖像處理的范疇,它主要運(yùn)用于二值圖像.它包括圖像膨脹、圖像腐蝕、圖像的開運(yùn)算和閉運(yùn)算等.腐蝕的數(shù)學(xué)定義中,A被B腐蝕記為AΘB,定義為[11]
其中,φ為空集Ac表示A的補(bǔ)集,定義為
換言之,A被B腐蝕是所有結(jié)構(gòu)元素的原點(diǎn)位置的集合,其中平移的B與A的背景并不重疊.篡改矩陣在經(jīng)過上面的形態(tài)濾波方法處理以后,即得到最終的篡改定位矩陣.根據(jù)篡改定位矩陣可以找到圖像被修改的區(qū)域.
以圖像的剪切為例,選用的原始圖像為256×256的彩色圖像(圖1(a)),圖1(b)為嵌入水印圖像,PSNR值為24.065 4.
本實(shí)驗(yàn)重點(diǎn)是對水印圖像中的嵌入水印區(qū)域和非嵌入水印區(qū)域進(jìn)行篡改檢測,圖像左部為水印嵌入?yún)^(qū)域,右部是非嵌入水印區(qū)域,圖2(a)是對嵌入水印圖像的左下角進(jìn)行篡改,即是對水印的嵌入?yún)^(qū)域進(jìn)行篡改;圖3(a)是對是對水印圖像右上角進(jìn)行了篡改,即是對圖像的非嵌入水印區(qū)域進(jìn)行篡改;圖4(a)是對水印圖像的左上角和右下角進(jìn)行了篡改,即是對圖像的水印嵌入?yún)^(qū)域和非嵌入水印區(qū)域都進(jìn)行了篡改.
首先是對圖2(a)的篡改情況進(jìn)行檢測,圖2(b)為初次定位圖像,它所表示的就是上文中水印提取和檢測算法中的(5)過程,將和做位異或處理,得到檢測水印w0,用公式表示為.圖2(c)為第二次定位的結(jié)果,它較初次定位就更為精確,找出w0中1的位置,它們對應(yīng)遭篡改圖像中被改動(dòng)的8×8塊的位置,有可能是提取水印對應(yīng)的塊發(fā)生了篡改,也有可能是生成水印對應(yīng)的塊發(fā)生了篡改,所以圖2(c)中白方塊比較多而且散亂.圖2(d)是對篡改水印圖像進(jìn)行腐蝕操作后的定位圖像也是最終定位圖像,它對用于標(biāo)示篡改位置的二值圖像進(jìn)行觀察,圖像中白方塊最為密集的地方,也就是最可能遭到篡改的部分;而在圖像的另外一些地方白塊則呈現(xiàn)出零星分布狀態(tài),這些白塊通常是“虛警塊”,即本來沒有被篡改卻被標(biāo)示為受到篡改的圖像塊,可以采用形態(tài)學(xué)濾波中腐蝕的方法去除這些稀疏塊,從而對篡改的定位更加精確.
圖1 原始圖像及水印圖像Fig.1 The original image and the watermark image
圖2 對水印圖像的左下角進(jìn)行篡改及其檢測Fig.2 The watermark image on the lower left distortion and its detection
同理,圖3(a)是對是對水印圖像右上角進(jìn)行了篡改,也就是對圖像的非嵌入水印區(qū)域進(jìn)行篡改,圖3(b)、圖3(c)、圖3(d)分別為三次檢測圖像;圖4(a)是對水印圖像的左上角和右下角進(jìn)行了篡改,即是對圖像的嵌入水印區(qū)域和非嵌入水印區(qū)域都進(jìn)行了篡改,圖4(b)、圖4(c)、圖4(d)為三次檢測圖像.
圖3 對水印圖像的右上角進(jìn)行篡改及其檢測Fig.3 The watermark image on the top right distortion and its detection
圖4 對水印圖像的左上角和右下角進(jìn)行篡改及其檢測Fig.4 The watermark image in the upper left and lower right corner distortion and its detection
圖5(a)是對水印圖像進(jìn)行了JEPG壓縮后的圖像,圖5(b)、圖5(c)、圖5(d)為本算法對圖5(a)進(jìn)行檢測的三次檢測圖像,3幅檢測圖像中沒有檢測到任何顯示篡改標(biāo)記的白方塊.
圖5 對水印圖像進(jìn)行JEPG壓縮及其檢測Fig.5 The watermark image JEPG compression and its detection
實(shí)驗(yàn)表明,論文算法能對水印圖像的被篡改位置進(jìn)行比較精確的定位,并且證明了該算法的抗JEPG壓縮的特性.雖然該算法是基于前人的理論提出的,較前人的算法有所改進(jìn),但算法本身仍然有以下一些需要完善的地方:①圖5中許多虛警塊都是呈棒狀分布,這是因?yàn)閳D像提取特征水印時(shí)所有的8×8分塊都是上下進(jìn)行比較的,這就導(dǎo)致許多被標(biāo)示的虛警塊呈棒狀分布.如果在水印嵌入之前先將圖像置亂,即是對所有8×8分塊做打亂處理,那么虛警塊中的棒狀塊就會(huì)更加分散,腐蝕的效果就會(huì)更理想,篡改情況的定位也就更加準(zhǔn)確了.②仔細(xì)觀察對比原始圖像和嵌入水印的圖像后,就會(huì)發(fā)現(xiàn)嵌入水印的圖像與原始圖像有著較為明顯的差異,這就反映出本文算法嵌入水印的不可見性較低,對原始圖像的改動(dòng)較大,這在實(shí)際運(yùn)用中是應(yīng)當(dāng)盡量避免的.③本文算法的對篡改定位的精度也有待提高,因?yàn)樵撍惴ú皇且韵袼貫閱挝?而是以分塊為單位,這就導(dǎo)致算法對于圖像篡改的定位只能是一個(gè)范圍,而不能精確到一個(gè)像素點(diǎn).④本文算法只能檢測出“是否被篡改”和“何處被篡改”,對于是何種篡改方式卻無法判定.
[1] 史元春,徐光祐,高原.中國多媒體技術(shù)研究:2011[J].中國圖像圖形學(xué)報(bào),2012,17(7):741-747.
[2] 王娟.數(shù)字圖像脆弱水印現(xiàn)狀研究[J].計(jì)算機(jī)與數(shù)字工程,2009,37(10):112-115.
[3] 李劍,李生紅,孫錟鋒.基于Logistic混沌序列和奇異值分解的半脆弱水印算法[J].上海交通大學(xué)學(xué)報(bào),2009,43(7):1144-1148.
[4] 霍耀冉,和紅杰,陳帆.基于鄰域比較的JPEG脆弱水印算法及性能分析[J].軟件學(xué)報(bào),2012,23(9):2510-2521.
[5] 李春,黃繼武.一種抗JPEG壓縮的半脆弱圖像水印算法[J].軟件學(xué)報(bào),2006,17(2):315-324.
[6] 王國棟,劉粉林,劉媛,等.一種能區(qū)分水印或內(nèi)容篡改的脆弱水印算法[J].電子學(xué)報(bào),2008(7):86-91.
[7] 劉九芬,黃達(dá)人,胡軍全.數(shù)字水印中的正交小波基[J].電子與信息學(xué)報(bào),2003(4):56-60.
[8] 王向陽,楊紅穎,侯麗敏.一種新的半脆弱彩色圖像數(shù)字水印算法[J].自動(dòng)化學(xué)報(bào),2007(6):80-83.
[9] Lin C Y,Chang S F.Semi-fragile watermarking for authenticating JPEG visual content[C].San Jose,CA:Proc SPIE,Security and Watermarking of Multimedia Contents,2000:140-151.
[10] Che S B,Ma B.Semi-fragile image watermarking algorithmbased on visual features[C].Beijing:Proceedings of International Conference on Wavelet Analysis and Pattern Recognition,2008:382-387.
[11] Xiao J,Wang Y.Semi-Fragile watermarking based on image gradient[C].Suzhou:Proceedings of international Conference on Computation Intelligence and Security,2008:285-289.
(責(zé)任編輯:盧奇)
Semi-fragile watermarking algorithmresisting to JPEG
You Jingjing,Wang Shaoxia
(Info Engineering Department,Yantai Vocational College,Yantai 264000,China)
A algorithmof semi-fragile watermarking is designed based on the two invariance principles of JPEG compression.The algorithmcould accept a specified quality factor JPEG lossy compression on the watermark image processing,and could meet the requirements of semi-fragile watermarking.Also,the algorithmdoes not require original watermarking image because the character of watermark is embedded in the image,then attach to the purpose of blind detection.Simulation results showthat,the algorithmcould precise location to the tampering position of watermark image and resistant to JEPG compression characteristics.
Semi-fragile watermarking;tamper localization;JPEG compression;blind detection
TP309.7
A
1008-7516(2012)06-0082-06
10.3969/j.issn.1008-7516.2012.06.018
2012-09-22
尤晶晶(1981-),女,山東煙臺(tái)人,助教.主要從事多媒體應(yīng)用技術(shù)研究.