蔣曉丹,范航宇,陸哲明
(1.衢州學(xué)院 電氣與信息工程學(xué)院,浙江 衢州 324000;2.浙江大學(xué) 航天航空學(xué)院,浙江 杭州 310027)
數(shù)字水印技術(shù)[1]能夠?qū)鏅?quán)信息經(jīng)過處理以可見或不可見的方式嵌入到數(shù)字媒體中,從而達到版權(quán)保護、內(nèi)容認證和保密通信等目的。
數(shù)字水印算法研究的一個關(guān)鍵問題是提高水印的魯棒性和不可見性。研究發(fā)現(xiàn)變換域水印算法可充分利用人類的感知特性,不可見性和魯棒性較好[2]。奇異值分解(singular value decomposition,SVD)是一種有效的矩陣分析工具,分解后的奇異值具有較好的抗攻擊能力[3,4]。因此,基于變換域和SVD的數(shù)字水印算法因其隱蔽性高、魯棒性強等優(yōu)點受到研究者的追捧,有關(guān)的各種算法[5~15]層出不窮。文獻[4]提出了將Tetrolet變換和SVD相結(jié)合的水印算法,主要解決水印信息的魯棒性和保密性,該算法對常規(guī)圖像處理、幾何攻擊等具有較好的穩(wěn)健性;文獻[5]提出了一種抗JPEG壓縮攻擊的離散小波變換(discrete wavelet transformation,DWT)域圖像量化水印算法,算法對JPEG壓縮攻擊具有很強的魯棒性,但文獻中的實驗結(jié)果表明在JPEG質(zhì)量因子為20時,提取的水印質(zhì)量明顯降低;文獻[10]提出了一種新的基于SVD和整數(shù)小波變換(integer wavelet transform,IWT)的數(shù)字水印算法,實驗結(jié)果表明,采用啟發(fā)式的遺傳算法獲得的量化步長使水印系統(tǒng)具有優(yōu)異的魯棒性。文獻[14]針對SVD水印算法存在過高的虛警率問題,提出了一種水印算法和數(shù)字簽名相結(jié)合的加密認證機制,載體圖像在嵌入水印后再進行數(shù)字簽名得到加密認證的含水印圖像,因此,提取水印前即可通過數(shù)字簽名技術(shù)避免虛警率過高的問題,但該算法在水印提取時需要原始載體圖像,無法實現(xiàn)水印盲提取。
此外,許多研究文獻為了確保水印信息的安全性,采用Arnold置換、Logistic混沌映射、Chebyshev映射等方法對水印信息進行預(yù)處理操作。文獻[4]針對二值水印圖像安全性的預(yù)處理操作結(jié)合了Arnold置換和Logistic混沌映射雙因子加密算法;文獻[13]利用Logistic混沌映射置亂變換水印圖像,得到一個加密的二進制混沌序列。
為確保水印信息加密的同時,考慮到水印嵌入位置的安全性,本文提出了一種基于Logistic混沌映射和IWT-SVD量化的盲魯棒水印算法。算法先對原始載體圖像進行8×8分塊,再利用混沌序列的遍歷性與隨機性特性,將生成的Logistic混沌序列用于選擇嵌入水印的圖像塊,充分保證了嵌入水印位置的保密性。仿真實驗結(jié)果證明,算法具有較好的穩(wěn)健性。
與DWT相比,IWT[16]提高了計算機的運算速度,而且能夠?qū)崿F(xiàn)圖像的無損重建,該特性可用于提高魯棒性并保持不可察覺性。圖1描述了任何提升小波變換過程的3個步驟:分裂、預(yù)測和更新。
圖1 提升小波變換的實施步驟
1)分裂:將圖像數(shù)據(jù)uj,k(x,y)分解成偶數(shù)部分uj-1,k(x,y)和奇數(shù)部分vj-1,k(x,y),即
S[uj,k(x,y)]:=[uj-1,k(x,y),vj-1,k(x,y)]
(1)
2)預(yù)測:假設(shè)預(yù)測操作為P[·],保持偶數(shù)部分不變并用偶數(shù)部分預(yù)測奇數(shù)部分,然后用奇數(shù)部分與預(yù)測值的差替代奇數(shù)部分
(2)
3)更新:構(gòu)造作用于細節(jié)函數(shù)的更新算子U[·],并疊加到偶數(shù)部分以獲得近似信號
(3)
對圖像進行IWT后,將圖像分成近似部分和細節(jié)部分。偶數(shù)部分作為近似部分,集中了原始圖像中絕大多數(shù)能量,嵌入水印能較好抵抗外部攻擊,魯棒性強,但水印透明性差;奇數(shù)部分作為細節(jié)部分,保留了原始圖像的細節(jié)特性,嵌入水印時透明性較好,但對噪聲、圖像操作等攻擊魯棒性較差。
SVD是一種數(shù)值分析技術(shù),目前被廣泛應(yīng)用于圖像水印、圖像隱藏、圖像壓縮和降噪等處理中。若將數(shù)字圖像看作是一個N×N的矩陣A,A的奇異值分解為
(4)
式中UA和VA分別為N×N的正交矩陣;SA為N×N對角矩陣,主對角線的值是以降序排列的奇異值,其他非對角線上的值均為0。SVD具有以下特性:1)具有良好的穩(wěn)定性[17],當對圖像添加微小的干擾時,奇異值不會產(chǎn)生顯著的變化,因此,將水印嵌入到圖像的奇異值中具有強魯棒性;2)圖像的奇異值S表示其代數(shù)屬性,正交矩陣U和V表示圖像的幾何屬性,將水印嵌入到圖像的奇異值中,保障了水印的不可見性。因此,選擇SVD提高水印魯棒性同時也保障了水印的不可見性。
Logistic混沌映射[18]具有良好的隨機性和遍歷性,水印的嵌入位置由混沌映射確定將提高水印位置的安全性。本文采用的Logistics混沌映射定義為
x(t+1)=1-μ·x2(t)
(5)
式中t為迭代次數(shù);u為可調(diào)參數(shù),對于任意t,保證映射得到的x(t)∈[0,1]。研究表明,Logistics混沌映射對初始值敏感,令u和初始值x0為密鑰產(chǎn)生混沌映射序列{xi},i=1,2,…;再由序列x產(chǎn)生的嵌入位置{ki},i=1,2,… 滿足
ki=[(M×N-1)×xi],i=1,2,…
(6)
式中 [·]為取整操作;M,N分別為嵌入水印區(qū)域的寬度和高度。
算法主要分為水印嵌入和水印提取兩個階段,圖2給出了水印算法的操作過程。文中對載體圖像進行兩級IWT,選擇能量集中的低頻子帶作為水印嵌入?yún)^(qū)域。為了提高水印嵌入的安全性,水印嵌入和檢測的位置選擇通過logistics混沌序列確定,混沌序列的遍歷性和隨機性可以保證水印隨機嵌入到低頻子帶的各個位置,從而提高水印序列的安全性。
圖2 水印算法的嵌入和提取框圖
為了提高水印算法的安全性和魯棒性,一般需要對數(shù)字水印進行預(yù)處理。本文載體圖像采用512×512的灰度圖像I,水印圖像為32×32的二值圖像W,先對水印二值圖像W進行Arnold置換[4],同時通過生成Logistics混沌序列來選擇水印的嵌入位置。
1)水印圖像Arnold置換。對水印二值圖像W進行t次Arnold置換,改變了水印圖像各像素的位置,得到置亂后的二值序列W′。
2)Logistics混沌序列生成?;煦缧蛄芯哂辛己玫碾S機性和遍歷性,水印的嵌入位置由混沌序列確定將提高水印的安全性。算法采用式(5)密鑰產(chǎn)生混沌序列{xi},i=1,2,…,1 024;通過式(6)產(chǎn)生嵌入位置{ki},i=1,2,…,1 024,取1 024個互不重合的位置。
水印嵌入的具體步驟為:
2)圖像分塊和嵌入位置選擇:對載體圖像I進行8×8大小分塊,得到64×64塊互不重合的圖像塊Blocki,i=1,2,…,4 096。根據(jù)預(yù)處理中產(chǎn)生的嵌入位置序列{ki},i=1,2,… ,1 024,選擇了水印嵌入?yún)^(qū)域塊Blockk(i),i=1,2,…,1 024。
3)二級IWT:對8×8大小的區(qū)域塊Blockk(i);i=1,2,…,1 024,進行Haar二級IWT,得到7個子帶:LL2,LH2,HL2,HH2,LH1,HL1,HH1,取2×2大小的LL2低頻子帶。
4)SVD:將LL2子帶根據(jù)式(4)進行SVD,得到奇異值Si,i=1,2。
(7)
采用數(shù)字水印的盲水印算法,從嵌入水印的載體圖像I′中提取原始水印時不需要原始的載體圖像,僅需要知道產(chǎn)生混沌序列的可調(diào)參數(shù)u和初始值x0,以及量化步長λ,具體提取步驟如下:
(8)
選用MATLAB 2012進行仿真實驗,實驗中的圖像選自西班牙格拉納達大學(xué)計算機視覺組的數(shù)據(jù)庫[19],選取如圖3所示的5幅灰度圖像(均為512×512)為載體圖像。圖4表示選擇Logistics混沌映射參數(shù)u=2,x0=0.66,嵌入水印的量化步長λ=20時本文水印算法的仿真結(jié)果,圖4(a)為baboon原始載體圖像,圖4(b)為含水印的載體圖像,圖4(c)為未攻擊時提取32×32二值水印圖像。
圖3 5幅原始灰度載體圖像
圖4 嵌入和提取水印的仿真實驗
實驗過程中,引入兩個客觀參數(shù)對結(jié)果進行評估:1)峰值信噪比(peak signal to noise ratio,PSNR)用來評估水印圖像的不可感知性,數(shù)值越大表明PSNR嵌入信息的透明度越好;2)歸一化系數(shù)(normalized correlation efficient,NC)用來衡量水印提取的質(zhì)量,NC值介于0~1,值越大說明提取的水印質(zhì)量越好,魯棒性更高。表1給出了5幅灰度原始載體圖像在不同量化值下的仿真測試實驗結(jié)果。
表1 不同量化值下的仿真測試實驗結(jié)果
由于量化步長λ的取值對本文算法的不可見性和抗攻擊能力有重要影響,因此,表1中列舉λ的3種不同取值情況下含水印圖像的PSNR值。λ越小,PSNR值越高,不可見性越好,但抗攻擊能力越弱;反之λ越大,PSNR值越低,不可見性越差,但抗攻擊能力越強。因此,為了兼顧不可見性和抗攻擊能力,本文在攻擊測試中選擇折中的量化步長λ=20。同時,表1仿真結(jié)果也表明:不同載體圖像在不同量化步長下,PSNR值均高于30,符合人眼視覺系統(tǒng),不易察覺水印的存在;NC值為1,嵌入水印圖像均可有效地進行提取。有效驗證了本文水印算法的實用性和通用性。
分別對含水印的載體圖像進行多種攻擊測試,包括:高斯噪聲、椒鹽噪聲、泊松噪聲、乘性噪聲、高斯低通濾波、JPEG壓縮,剪切、多種組合攻擊等,并采用NC系數(shù)下進行分析。表2是對5幅含水印的載體圖像在各種攻擊下的NC值進行匯總。
從表2實驗結(jié)果中看出,本文算法對噪聲攻擊、JPEG壓縮攻擊、剪切攻擊以及多種組合攻擊均表現(xiàn)出較強的魯棒性,尤其對JPEG壓縮攻擊和剪切攻擊表現(xiàn)尤為明顯,當JPEG壓縮的質(zhì)量因子達到20時,NC值仍取到1,而圖像剪切區(qū)域為1/4時,NC值也取到0.96以上。可見,雖然各類攻擊測試和參數(shù)取值不同,但本文水印算法仿真效果良好。
表2 不同攻擊仿真測試實驗結(jié)果
采用與文獻[4,5]的算法進行對比,不同算法面對各種攻擊后提取出來的水印NC值如表3所示。
從表3實驗對比結(jié)果中看出,文獻[4]對噪聲攻擊、JPEG壓縮攻擊以及多種組合攻擊同樣表現(xiàn)出色,具有較強的魯棒性,但在椒鹽噪聲和剪切攻擊中,隨著參數(shù)取值不同,NC值明顯降低,反映出算法的脆弱性。文獻[5]在噪聲攻擊、JPEG壓縮等中有不俗表現(xiàn),但對剪切攻擊和JPEG質(zhì)量因子為20時,NC值較低,算法顯示出脆弱性。因此,與其他2種算法對比比較,本文水印算法對表3中的大部分攻擊測試,性能均呈現(xiàn)一定的優(yōu)越性。
提出了一種基于Logistic混沌映射和IWT-SVD量化的盲魯棒水印算法。算法利用Logistic混沌映射來選擇嵌入水印的圖像塊,充分保證了嵌入水印位置保密性問題,對選中的圖像塊進行二級IWT,對二級低頻子帶系數(shù)進行SVD,并將Arnold置亂后的水印信息嵌入。水印提取時,算法不需要原始載體圖像,實現(xiàn)水印算法的盲提取。仿真實驗結(jié)果表明:算法對圖像操作攻擊、壓縮攻擊和剪切攻擊都具有較強的優(yōu)越性,是一種實用性很強的算法。但抵御幾何攻擊和實時性等問題還有待進一步研究。
[1] Macq B M,Quisquater J J.Cryptology for digital TV broadcas-ting[J].Proceedings of the IEEE,1995,83(6): 944-957.
[2] 張 利,呂建平,楊 龍.基于DCT和DWT變換域的雙功能水印方法[J].西安郵電大學(xué)學(xué)報,2013,18(1):50-53.
[3] Makbol N M,Khoo B E.Robust blind image watermarking scheme based on redundant discrete wavelet transform and singular value decomposition[J].International Journal of Electronics and Communications,2013,67(2):102-112.
[4] 黃剛勁,范玉剛,馮 早,等.基于SVD-形態(tài)降噪的TKEO故障診斷方法研究[J].傳感器與微系統(tǒng),2017,36(7):29-32.
[5] 李旭東.抗JPEG壓縮攻擊的DWT域圖像量化水印算法[J].光電子·激光,2012(2):342-348.
[6] 熊祥光,曾文權(quán).基于LWT-SVD的魯棒自適應(yīng)水印方案[J].計算機工程與設(shè)計,2015(6):1494-1497.
[7] 葉天語.DWT-SVD域全盲自嵌入魯棒量化水印算法[J].中國圖象圖形學(xué)報,2012,17(6):45-51.
[8] 雷 蕾,郭樹旭,王 雷.基于小波變換的SVD數(shù)字圖像水印算法研究[J].計算機仿真,2013,30(9):169-172.
[9] 湯永利,張亞萍,葉 青,等.基于DWT域?qū)?shù)量化索引調(diào)制的數(shù)字水印算法[J].計算機應(yīng)用與軟件,2017,34(8):206-212.
[10] 曹文梁.基于奇異值分解和整數(shù)小波變換的優(yōu)化圖像數(shù)字水印[J].計算機測量與控制,2013,21(8):2251-2254.
[11] 曾文權(quán),熊祥光.基于整數(shù)小波變換的魯棒零水印算法[J].微電子學(xué)與計算機,2016,33(4):97-101.
[12] 吳 捷,唐紅鎖.基于離散小波—奇異值分解的多水印嵌入算法[J].計算機系統(tǒng)應(yīng)用,2015,24(8):181-185.
[13] 馬 婷,高大鵬,王 欣.基于Logistic混沌加密的NSCT-SVD抖動調(diào)制盲水印算法[J].包裝工程,2016(5):156-160.
[14] Makbol N M,Khoo B E.A new robust and secure digital image watermarking scheme based on the integer wavelet transform and singular value decomposition[J].Digital Signal Processing,2014,33:134-147.
[15] 暴 琳,張貞凱,李垣江,等.Tetrolet變換和SVD結(jié)合的盲檢測穩(wěn)健數(shù)字水印嵌入策略[J].計算機工程與科學(xué),2017,39(3):492-499.
[16] Sweldens W.The lifting scheme: A construction of second gene-ration wavelets[J].Siam Journal on Mathematical Analysis,1997,29(2):511-546.
[17] 楊宗舉,黃國勇.改進的CKF算法及其在BDS/INS中的應(yīng)用[J].傳感器與微系統(tǒng),2016,35(12):156-160.
[18] 謝榮生,趙歡喜,陳玉明.基于QR碼的防偽電子票數(shù)字水印方法[J].廈門大學(xué)學(xué)報:自然科學(xué)版,2013,52(3):338-342.
[19] 西班牙格拉納達大學(xué)計算機視覺組.圖像測試的數(shù)據(jù)庫[DB/OL].http:∥decsai.ugr.es/cvg/dbimagenes/