摘 要:針對數(shù)字水印技術(shù)應(yīng)用廣泛但指標(biāo)計算及評價機制普遍不夠完善的現(xiàn)狀,本文在研究常用算法的基礎(chǔ)上建立了一個能夠滿足實際應(yīng)用的數(shù)字水印系統(tǒng)基本功能模型,完成了對數(shù)字水印的指標(biāo)計算及評價機制。該模型基于信息隱藏技術(shù),綜合運用了多種數(shù)字水印算法,結(jié)合相關(guān)的技術(shù)手段,完成了相對較為完善的數(shù)字水印生成、嵌入、檢測和提取功能。最后通過一個簡單的實例應(yīng)用驗證了本數(shù)字水印系統(tǒng)在多媒體版權(quán)保護(hù)及應(yīng)用上的良好特性。
關(guān)鍵詞:信息隱藏;數(shù)字水??;系統(tǒng)模型
中圖分類號:TP399 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
信息隱藏學(xué)是一門新興的交叉學(xué)科,在多個領(lǐng)域有著廣闊的應(yīng)用前景。而數(shù)字水印技術(shù)除了具備信息隱藏技術(shù)的一般特點外,還具有更加安全、透明的特征和較強的魯棒性質(zhì)[1,2]。因此數(shù)字水印技術(shù)已經(jīng)越來越多地應(yīng)用在各種領(lǐng)域,但是目前的應(yīng)用研究對于數(shù)字水印的指標(biāo)計算及評價機制普遍還不夠完善,本系統(tǒng)模型設(shè)計主要目的就是在研究比較各種數(shù)字水印算法的基礎(chǔ)上,完成了對數(shù)字水印的指標(biāo)計算及評價機制[3]。
本文目的在于通過對信息隱藏及數(shù)字水印技術(shù)領(lǐng)域的常用算法的研究,提出可行的改進(jìn)措施及方案,綜合相關(guān)的技術(shù)手段,建立能夠完成實際應(yīng)用的數(shù)字水印系統(tǒng)模型并實現(xiàn)數(shù)字水印系統(tǒng)的基本功能及應(yīng)用。
2 應(yīng)用需求分析(Analysis of application requirement)
一套完整的數(shù)字水印系統(tǒng)模型,都必須包含嵌入和檢測兩大部分。嵌入過程至少具有兩個輸入量:一個是水印信息,它一般是以圖像文字等形式適當(dāng)處理后作為待嵌入的水印信號(圖1);另一個就是載體數(shù)據(jù),主要指準(zhǔn)備嵌入水印的數(shù)字載體作品[4]。水印嵌入部分的輸出結(jié)果為含水印的載體作品,通常用于傳輸和轉(zhuǎn)錄。當(dāng)含有水印的載體通過信道傳輸?shù)浇邮辗胶?,而檢測部分的目的是試圖盡可能的判斷出水印是否存在,若存在則提取出水印信號用于版權(quán)的檢測(圖2)或授權(quán)的鑒別等進(jìn)一步的操作[5]。
由以上分析可知,本系統(tǒng)需要建立基于信息隱藏技術(shù)的一套數(shù)字水印系統(tǒng)模型,確定框架的主要功能及模塊內(nèi)容。在本系統(tǒng)模型中,首先將需要嵌入的數(shù)字水印進(jìn)行了簡單的粗處理,再將處理完的數(shù)字水印嵌入到相應(yīng)的載體中,等載體作品需要鑒定作品產(chǎn)權(quán)時候,再將嵌入的數(shù)字水印進(jìn)行相應(yīng)檢測并跟其分離提取,然后對數(shù)字水印的質(zhì)量和正確性進(jìn)行測試和評估[6]。
3 系統(tǒng)總體模型設(shè)計(Design of system general model)
3.1 系統(tǒng)模型的構(gòu)成
本數(shù)字水印系統(tǒng)主要由三個部分組成:水印生成、水印嵌入和水印的檢測及提取[7]。根據(jù)不同的應(yīng)用,這三個部分的設(shè)計要求各有側(cè)重,各有不同。
(1)水印生成階段:水印信息一般都包含了有意義的需要隱藏的信息如版權(quán)、發(fā)行者、產(chǎn)品的使用及標(biāo)識等信息。為了保護(hù)隱藏這些有意義的水印信息,在它們作為水印之前都進(jìn)行相應(yīng)的加密處理,以保證生成的水印信號唯一而有效性。因此水印的生成可以由生成函數(shù)來確定,而水印和生成函數(shù)通常都基于加密系統(tǒng)、混沌序列、偽隨機數(shù)生成函數(shù)、置亂算法等。設(shè)W1為有意義的需要隱藏的信息,G為水印生成的函數(shù),W為生成的水印,則有G=T.R。
為了得到基于數(shù)字產(chǎn)品的水印W,需要知道用于修改原始水印信息的算法T,而對于T的算法要求也會根據(jù)不同應(yīng)用的需求而改變[8]。有的應(yīng)用要求建立易損水印或用于版權(quán)爭議的穩(wěn)健水印,即當(dāng)數(shù)字產(chǎn)品的差別也能產(chǎn)生不同的水?。挥械膽?yīng)用則要求數(shù)字水印對數(shù)字產(chǎn)品及其相似的產(chǎn)品版本有依賴性,如半易損水印。在基于信息偽裝的應(yīng)用中,由于信息偽裝要求隱藏信息的不可檢測性,因此對于算法T通常不作要求。
算法R用于輸出基于密鑰K原始水印W。R可以是基于加密系統(tǒng)的、基于偽隨機函數(shù)的、基于混沌序列的、基于置亂算法的。當(dāng)R為加密系統(tǒng)服務(wù)時,K表示加密的密鑰信息。而為了生成偽隨機函數(shù),R為偽隨機函數(shù)服務(wù)時,K則表示偽隨機發(fā)生器的種子[9]。當(dāng)R為混沌序列服務(wù)時,K表示生成混沌序列初始參數(shù)值。當(dāng)R基于置亂算法時,K表示置亂的次數(shù)。算法R可以用于通常的數(shù)字水印系統(tǒng),同時由于算法R的存在即使攻擊者成功的提取出了水印,也無法解密隱藏信息。數(shù)字水印生成策略圖,如圖3所示。
(2)水印嵌入算法及策略:將預(yù)處理后生成的水印信息嵌入到原始的載體數(shù)字產(chǎn)品中,就是水印嵌入的過程,其中水印信息用W={w(i)}表示,載體數(shù)字產(chǎn)品用S={s0(i)}表示。因此通常的水印嵌入過程可以表示為:
sw(i)=s0(i)∪h(i)∪w(i)。其中∪表示疊加處理,H=h(i)表示水印的偽裝或加權(quán)處理,常用的兩種嵌入規(guī)則如下:
加法嵌入規(guī)則 sw=s0+h(i)*w(i)
乘法嵌入規(guī)則 sw= s0*(1+h(i)*w(i))
s0表示采樣強度/幅度(空域/時域)或者是變換域的系數(shù)值。
近年來,另一種融合嵌入規(guī)則得到了廣泛的關(guān)注,其嵌入規(guī)則是:
sw=(1-h(i))*s0+h(i)*w(i)),這種規(guī)則對原始數(shù)據(jù)s0和水印w進(jìn)行了綜合考慮,在不影響人類視覺的前提下,適當(dāng)?shù)膶0進(jìn)行一定程度的修改。
嵌入水印的強度一般用水印加權(quán)h來代表。水印的強度越大則魯棒性越好,但是會影響水印的透明性[10]。因此需要在水印的魯棒性和透明性之間進(jìn)行折中,兼顧兩方面的需求以取得最好的效果。數(shù)字水印嵌入策略圖,如圖4所示。
(3)水印檢測算法及策略
在已知載體數(shù)字產(chǎn)品中檢測是否存在目標(biāo)水印或者進(jìn)一步解密恢復(fù)目標(biāo)水印并把它從載體數(shù)字產(chǎn)品中分離提取出來的過程就是水印檢測。水印檢測根據(jù)檢測過程是否需要原始的載體數(shù)字產(chǎn)品可以分成非盲(nonblind)水印檢測和盲(blind)水印檢測兩種[11]。從檢測效果來分析,一般需要較好檢測率和較高穩(wěn)健可靠性時候,通常采用非盲水印檢測,而盲水印檢測應(yīng)用的范圍廣泛而且計算的效率更高。在水印的檢測過程中,可能會產(chǎn)生兩種誤報:
一種是數(shù)字產(chǎn)品中實際不存在水印而檢測出有水印存在(虛報)。
另一種是數(shù)字產(chǎn)品中實際存在有水印而檢測顯示水印不存在(漏報)。
這二種錯誤發(fā)生的概率稱為虛警率Pfa和漏警率Pmiss??偟腻e誤率Perror是兩者相加的和,即Perror=Pfa+Pmiss。在實際應(yīng)用中可以預(yù)先設(shè)定可以接受的錯誤率Perror、Pfa或者Pmiss。
對于水印檢測算法一般要求具有良好的可靠性和計算效率。在實際的應(yīng)用中可以根據(jù)其應(yīng)用的場合適當(dāng)?shù)慕档?。?shù)字水印檢測策略圖如圖5所示。
綜上所述基于信息隱藏的數(shù)字水印系統(tǒng)的基本框架模型圖,如圖6所示。
3.2 核心機制的設(shè)計
首先,本系統(tǒng)對數(shù)字水印及載體圖像的預(yù)處理主要運用置亂算法、混沌序列,以及已有的密碼技術(shù)來實現(xiàn)。在系統(tǒng)中實現(xiàn)的置亂算法包括Arnold及幻方置亂,實現(xiàn)的混沌序列包括Logistic映射函數(shù)及混合光學(xué)雙穩(wěn)模型生成混沌序列,能夠?qū)ι傻幕煦缧蛄羞M(jìn)行歸一化的處理和相應(yīng)的序列調(diào)制(如0,1序列;-1,1的雙極性序列)。能夠方便的應(yīng)用已經(jīng)成熟的密碼技術(shù)來實現(xiàn)相關(guān)的加密(如HASH函數(shù)、RSA等)。
其次,本系統(tǒng)設(shè)計實現(xiàn)數(shù)字水印嵌入的采用了多重算法,包括常見的LSB、DCT、DWT算法,以及基于HVS的自適應(yīng)算法。利用這些算法能完成雙重及多重水印的嵌入,也能夠完成對WAV音頻載體的數(shù)字水印嵌入。
在利用系統(tǒng)進(jìn)行數(shù)字水印的嵌入時,系統(tǒng)找到能嵌入數(shù)字水印的魯棒性最強的區(qū)域,在不影響載體透明性的情況下,嵌入標(biāo)志、算法、數(shù)字水印大小等的系統(tǒng)信息。在檢測時提取此系統(tǒng)信息,如果此信息不存在,可以選擇通過指定提取算法來進(jìn)行數(shù)字水印的提取,也可以選擇由系統(tǒng)調(diào)用所有的數(shù)字水印的提取函數(shù)對疑似含水印載體進(jìn)行數(shù)字水印提取,最后由人工判別是否提取成功。提取水印的算法和嵌入水印的算法一般是配套。
之外,由于本系統(tǒng)對數(shù)字水印算法的評估參考是基于數(shù)字水印抗攻擊能力的判斷,因此需要對數(shù)字水印的抗攻擊功能進(jìn)行各種攻擊,其中部分的攻擊方法也可以作為對數(shù)字水印或者載體預(yù)處理的一部分,如中值濾波、圖像的幾何處理等。同時還能計算出相應(yīng)的技術(shù)指標(biāo)值(如NC、PSNR等),并根據(jù)計算出的指標(biāo)值提示數(shù)字水印的透明性及魯棒性的特點[12]。
3.3 系統(tǒng)結(jié)構(gòu)圖
數(shù)字水印系統(tǒng)模型結(jié)構(gòu)圖,如圖7所示。
數(shù)字水印系統(tǒng)功能流程圖,如圖8所示。
3.4 系統(tǒng)的功能設(shè)計
數(shù)字水印系統(tǒng)主要按六個步驟來完成各個功能。
(1)對數(shù)字水印及原始載體進(jìn)行預(yù)處理
確認(rèn)需要嵌入的數(shù)字水印后,需要分析判定采用哪種嵌入及檢測的方式(盲水印還是非盲水?。?。利用相關(guān)的算法對數(shù)字水印進(jìn)行嵌入前的預(yù)處理,包括轉(zhuǎn)換成二進(jìn)制比特序列、加密、置亂等預(yù)處理的過程,一方面增強數(shù)字水印的安全性,另一方面通過處理使數(shù)字水印的數(shù)據(jù)信息分布更加合理,從而有利于數(shù)字水印嵌入和檢測。同時對原始的載體也進(jìn)行相應(yīng)的預(yù)處理,如載體的選擇,根據(jù)不同的原始載體及需要實現(xiàn)的功能需要選擇相應(yīng)的處理步驟(如載體摘要信息的提取、原始載體的圖像的圖像增強、聲頻視頻信息的濾波等處理)。數(shù)字水印及原始載體的預(yù)處理的目的在于增強數(shù)字水印的安全,使原始載體提供更大的嵌入容量,能更容易更方便的嵌入及檢測到數(shù)字水印,有利于數(shù)字嵌入及檢測恢復(fù),最終生成需要嵌入的數(shù)字水印及水印載體。
(2)將數(shù)字水印嵌入到原始載體中
將水印附加到對應(yīng)的原始載體上,需要選擇合適的算法。選擇嵌入算法一般要綜合考慮數(shù)字水印的透明性和魯棒性,既不能讓人輕易地發(fā)現(xiàn)數(shù)字水印的存在,又要保證水印載體的數(shù)字水印若被破壞或刪除將降低載體質(zhì)量甚至不可使用。所以根據(jù)完成數(shù)字水印功能的同時需要兼顧這兩方面的應(yīng)用需要,可以同時嵌入兩個或者多個數(shù)字水印,以完成不同應(yīng)用需求。數(shù)字水印嵌入流程圖,如圖9所示。
(3)檢測數(shù)字水印
接收到載體后,需要檢測載體中是否有數(shù)字水印的存在,一般都是預(yù)先確定相應(yīng)的算法和密鑰再對目標(biāo)載體進(jìn)行針對性的檢測。數(shù)字水印的檢測包括盲水印檢測及非盲水印檢測,非盲水印檢測的準(zhǔn)確率高但是使用范圍有限,不如盲水印檢測,在檢測過程中可能會出現(xiàn)有虛報和漏報的情況。
(4)提取數(shù)字水印
當(dāng)目標(biāo)載體經(jīng)過檢測確定有數(shù)字水印存在時,需要通過預(yù)先確定的算法及密鑰將載體中的數(shù)字水印分離提取和恢復(fù)出來。如果提取出來的數(shù)字水印符合版權(quán)要求、產(chǎn)品就能被合法使用,提取數(shù)字水印的流程圖,如圖10所示。
(5)測試數(shù)字水印的魯棒性
數(shù)字水印抗攻擊的能力主要以數(shù)字水印魯棒性測試結(jié)果來衡量。比如對圖像載體還包括JPEG圖像可壓縮、圖像旋轉(zhuǎn)、圖像幾何處理等濾波、加噪攻擊能力的測試。
(6)計算及評估數(shù)字水印相關(guān)指標(biāo)
數(shù)字水印的性能主要用數(shù)字水印及嵌入后的載體給予量化的數(shù)值來評估,包括峰值信噪比(PSNR)、信噪比(SNR)、相關(guān)系數(shù)(NC)、均方差(MSE)等。其實對于人類視覺系統(tǒng)(HSV)及聽覺系統(tǒng)(HAS)的閾值JND的確定也是一種評估的計算,其目的在于度量各個元素可修改的值的范圍[13]。
4 數(shù)字水印系統(tǒng)的實現(xiàn)(Implementation of digital watermarking system)
4.1 系統(tǒng)開發(fā)工具
在本系統(tǒng)的實現(xiàn)中,數(shù)字水印的嵌入、檢測、提取和恢復(fù)部分的處理、相關(guān)數(shù)據(jù)的分析和圖形圖像的生成等算法的實現(xiàn)主要由MATLAB工具來完成,對于系統(tǒng)界面的設(shè)計及實現(xiàn),以及一些MATLAB處理速度較慢的操作如數(shù)據(jù)的排序,大循環(huán)語句的處理等由.NET開發(fā)平臺來實現(xiàn)。通過MATLAB與.NET搭建的應(yīng)用程序的開發(fā)環(huán)境完成整個系統(tǒng)模型的實現(xiàn)。
4.2 界面及系統(tǒng)功能說明
圖11列出的是實現(xiàn)的數(shù)字水印系統(tǒng)模型程序的部分界面及功能。在實現(xiàn)的數(shù)字水印系統(tǒng)模型中可以對數(shù)字水印進(jìn)行預(yù)處理操作包括置亂、混沌映射、數(shù)字調(diào)制和加密等。
4.3 實例應(yīng)用
圖12是某數(shù)字載體作品在使用本數(shù)字水印系統(tǒng)進(jìn)行Arnold置亂預(yù)處理操作的界面,也列出的單數(shù)字水印嵌入操作的界面,程序?qū)⒏鶕?jù)選擇的操作執(zhí)行Arnold置亂或反置亂,執(zhí)行選定嵌入算法的(LSB、DWT、DCT、HSV等)數(shù)字水印嵌入,并計算出相關(guān)的技術(shù)參數(shù)指標(biāo)(PSNR、SNR、NC、MSE)。
在圖13實例應(yīng)用中,本文討論的數(shù)字水印系統(tǒng)模型程序功能都能在其中找到對應(yīng)的程序命令,包括數(shù)字水印預(yù)處理、嵌入、檢測、提取和恢復(fù)、攻擊及測試、相關(guān)技術(shù)指標(biāo)的計算和數(shù)字水印的評價[14],所有功能一目了然。
本系統(tǒng)中對于水印算法的分析及測試由StirMark來完成。StirMark是一個由劍橋大學(xué)開發(fā)的用于數(shù)字水印研究的測試工具。StirMark用于測試的攻擊手段包括線性濾波、非線性濾波、剪切/拼接攻擊、同步性破壞攻擊等,可以從多方面測試水印算法的魯棒性。目前數(shù)字水印技術(shù)方面公開發(fā)行的學(xué)術(shù)論文一般衡量水印算法好壞都以StirMark的攻擊結(jié)果作為標(biāo)準(zhǔn)[15]。
5 結(jié)論(Conclusion)
通過實例使用驗證,本文建立的數(shù)字水印系統(tǒng)可以較好地完成數(shù)字水印預(yù)處理、水印嵌入、水印的檢測、水印提取和功能執(zhí)行等流程,并且利用MATLAB和VS.NET作為開發(fā)工具實現(xiàn)了綜合運用基于人類視覺模型數(shù)字水印算法、雙重及多重數(shù)字水印算法、雙重自恢復(fù)數(shù)字水印算法、基于音頻載體的數(shù)字水印算法,以及常用的LSB、DCT、DWT等數(shù)字水印算法的數(shù)字水印技術(shù)應(yīng)用。利用本系統(tǒng)模型實現(xiàn)數(shù)字水印應(yīng)用時,能在有效提高水印算法魯棒性的同時,兼顧數(shù)字水印對透明性的要求,并且各種抗攻擊檢測下來,綜合指標(biāo)良好。
參考文獻(xiàn)(References)
[1] D.L.Shinfeng,C.F.Chen.A Robust DCT-Based Watermarking for Copyright Protection.IEEE Transactions on Consumer Electronics,2000(2):185-192.
[2] Suhail M A,Obaidat M S.Digital Watermarking-Based DCT and JPEG Model.IEEE Transactions on Instrumentation and Measurement,2003(3):255-263.
[3] Hernandez J R,AmadoM,Gonzalez P F.DCT-Domain Watermarking Techniques for Still Images:Detector Performance Analysis and a New Structure.IEEE Transactions on Image Processing,2000,9(1):55-68.
[4] 郭永.數(shù)字水印技術(shù)在電力文檔安全傳輸中的研究[J].信息技術(shù),2016(10):110-111.
[5] 劉巖,等.數(shù)字水印技術(shù)及其在電力系統(tǒng)中的應(yīng)用[J].電力信息化,2005,3(6):91-92.
[6] 王曉紅 ,等.一種彩色QR碼嵌入彩色圖像的數(shù)字水印技術(shù)[J].光電子激光,2016(10):136-138
[7] 穆國吉.數(shù)字水印及其在印刷行業(yè)中的應(yīng)用[J].印刷質(zhì)量與標(biāo)準(zhǔn)化,2014(3):17-20.
[8] 許冬凌.數(shù)字水印相關(guān)問題淺析[J].辦公室業(yè)務(wù),2013(05):225-226.
[9] 聶廷遠(yuǎn),等.多重加密的數(shù)字水印生成方法[J].計算機工程與設(shè)計,2013,34(9):3054-3057.
[10] 楊瑩.幾種常用的數(shù)字水印算法研究[J].計算機光盤軟件與應(yīng)用,2012(19):136.
[11] 古麗江·庫爾班.探討數(shù)字水印與數(shù)字密寫的差異[J].數(shù)字技術(shù)與應(yīng)用,2011(1):117.
[12] 王俠.數(shù)字水印技術(shù)的研究與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2011(3):88-89.
[13] 劉佳鳴,張鴻賓.基于數(shù)字水印和傳統(tǒng)加密技術(shù)的數(shù)字版權(quán)管理系統(tǒng)框架的研究[J].計算機科學(xué),2008,35(4):254-256;271.
[14] 陳旭輝.數(shù)字水印系統(tǒng)在高校數(shù)字圖書館中的應(yīng)用[J].機電技術(shù),2011,34(5):12-16.
[15] 張勇,賴惠成.圖像數(shù)字水印系統(tǒng)的框架模型及攻擊方法研究[J].新疆職業(yè)大學(xué)學(xué)報,2008,16(1):75-77.
作者簡介:
張?zhí)煨牵?977-),女,碩士,講師.研究領(lǐng)域:計算機應(yīng)用技術(shù).