楊志疆
(漳州職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程系,福建 漳州 363000)
音頻水印[1-2]是指先在數(shù)字音頻中嵌入水印信息,然后通過(guò)提取的水印信息來(lái)保護(hù)音頻的版權(quán)或判定音頻內(nèi)容的完整性與真實(shí)性。它在音樂(lè)作品的拷貝限制、使用跟蹤、盜版確認(rèn)及廣播分析等領(lǐng)域有著廣泛的應(yīng)用。根據(jù)音頻水印的特性可以劃分為魯棒性水印、脆弱性水印和半脆弱性水印,前兩種水印是目前研究最多的技術(shù),但通常只能實(shí)現(xiàn)單一功能,這使得它們漸漸不能滿足人們的實(shí)際應(yīng)用需求。而半脆弱水印兼具有魯棒性水印和脆弱性水印的特性,即水印對(duì)一般的音頻信號(hào)處理具有穩(wěn)定性,可實(shí)現(xiàn)版權(quán)保護(hù)功能,同時(shí)對(duì)音頻內(nèi)容的篡改操作具有脆弱性,可實(shí)現(xiàn)內(nèi)容認(rèn)證功能,因此引起學(xué)術(shù)界的關(guān)注。文獻(xiàn)[3]基于聽(tīng)覺(jué)掩蔽特性和音頻自身特性,自適應(yīng)劃分音頻數(shù)據(jù)段和調(diào)整嵌入強(qiáng)度,實(shí)現(xiàn)半脆弱水印的嵌入,但只能大致確定篡改發(fā)生區(qū)域。文獻(xiàn)[4]提取音頻的MFCC系數(shù)作為水印,然后在小波域中采用均值量化嵌入水印,但水印在音頻常規(guī)處理中的魯棒性不夠強(qiáng)。文獻(xiàn)[5]針對(duì)水印假同步率高的問(wèn)題,提出基于KMP半脆弱音頻水印,對(duì)篡改區(qū)域的定位較精確,但文中缺少水印的魯棒性檢測(cè)相關(guān)數(shù)據(jù)。針對(duì)以上問(wèn)題,本文提出一種半脆弱音頻水印新方案:首先,對(duì)二值水印圖降維,并進(jìn)行兩次混沌加密,根據(jù)循環(huán)碼的編碼原則進(jìn)行編碼,生成水印編碼信息;其次,根據(jù)原水印圖的行數(shù)分別對(duì)水印編碼信息和音頻載體分幀;利用提升小波變換對(duì)每一幀音頻進(jìn)行分解,并對(duì)低頻分量進(jìn)行DCT變換;最后,通過(guò)量化系數(shù)的方法把同幀的水印編碼信息嵌入到DCT中頻系數(shù)中。仿真實(shí)驗(yàn)證明,本方案的水印具有較好的不可聽(tīng)性,在加噪、重采樣、重量化等音頻信號(hào)處理中具有強(qiáng)魯棒性,而對(duì)替換、剪切等惡意篡改,水印能精確定位被篡改的位置。
數(shù)字音頻水印技術(shù)可視為信道抗干擾的通信過(guò)程[6],其中,音頻載體為信道,各種有意或無(wú)意的攻擊為干擾信號(hào),水印為信道中要傳遞的信息,水印的嵌入過(guò)程相當(dāng)于發(fā)送信息的過(guò)程,水印的提取過(guò)程相當(dāng)于接收信息的過(guò)程;而基于信道的糾錯(cuò)編碼方式很多,其中循環(huán)碼[7]的檢錯(cuò)糾錯(cuò)能力強(qiáng),碼率較高,易于用反饋式移位寄存器實(shí)現(xiàn)編碼,所以被廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通信等領(lǐng)域。循環(huán)碼是一種重要的線性分組碼,它把所保護(hù)的數(shù)據(jù)塊看作一個(gè)二進(jìn)制多項(xiàng)式,即多項(xiàng)式的所有系數(shù)都為0或1。由于本算法采用的水印是二值圖像,水印二進(jìn)制位串符合多項(xiàng)式系數(shù)的特征,因此,本文把水印看作循環(huán)碼要保護(hù)的信息,利用循環(huán)碼來(lái)提高水印的抗干擾能力和可靠性。循環(huán)碼的應(yīng)用原理主要遵循以下過(guò)程:
假設(shè)要保護(hù)的數(shù)據(jù)信息多項(xiàng)式為M(x),發(fā)送方和接收方預(yù)先約定的生成多項(xiàng)式G(x)的階為r,信息碼字為n位。
(1)編碼過(guò)程
步驟1將r個(gè)“0”附加在信息碼字的低端,即循環(huán)左移r位,相應(yīng)多項(xiàng)式變?yōu)閤rM(x),長(zhǎng)度為n+r位。
步驟3將xrM(x)的位串與余數(shù)R(x)的位串進(jìn)行異或運(yùn)算,得編碼信息T(x),即T(x)=xrM(x)⊕R(x),⊕為異或運(yùn)算。
(2)解碼過(guò)程
步驟1接收方收到發(fā)來(lái)的編碼信息T′(x)后,除以同一個(gè)生成多項(xiàng)式G(x),若余數(shù)R′(x)=0,則表示接收到信息正確,否則有錯(cuò)。
步驟2把收到的正確編碼信息T′(x)去掉尾部r位,即得數(shù)據(jù)信息M(x)。
(3)糾錯(cuò)過(guò)程
如果收到的信息T′(x)不能被G(x)整除,則T(x)≠T′(x),傳輸出錯(cuò)。假設(shè)T′(x)=T(x)⊕E(x),其中,E(x)是錯(cuò)誤矢量,則T′(x)/G(x)=(T(x)⊕E(x))/G(x)。由于T(x)%G(x)=0,所以(T(x)⊕E(x))/G(x)=E(x)/G(x)。若E(x)≠0,則傳輸出錯(cuò),因此通過(guò)在接收方檢測(cè)T′(x)HT是否為0來(lái)檢查是否出錯(cuò),H為一致校驗(yàn)矩陣。
定義:S=T′(x)HT為伴隨式。則有
S=T′(x)HT=(T(x)⊕E(x))HT
=T(x)HT⊕E(x)HT=E(x)HT
由此可見(jiàn)伴隨式只與錯(cuò)誤矢量有關(guān),與發(fā)送的碼字無(wú)關(guān)。若E(x)=0,則S=0,表明正確;否則S≠0,表明有誤。伴隨式與E(x)有一個(gè)對(duì)應(yīng)關(guān)系,通過(guò)這個(gè)對(duì)應(yīng)關(guān)系,由伴隨式S得到E(x),再將接收的碼字T′(x)與E(x)相加,就可得到糾錯(cuò)后的正確編碼信息。
提升小波變換[8]LWT是由Swelden提出的一種不依賴Fourier變換的新的小波構(gòu)造方法,稱為第二代小波變換。提升方法給出了雙正交小波簡(jiǎn)單而有效的構(gòu)造方法,使用了基本的多項(xiàng)式插補(bǔ)來(lái)獲取信號(hào)的高頻分量,通過(guò)構(gòu)建尺度函數(shù)來(lái)獲取信號(hào)的低頻分量,其復(fù)雜度只有原來(lái)卷積方法的一半左右,因此成為計(jì)算離散小波變換的主流方法,在信號(hào)處理領(lǐng)域有著廣泛的應(yīng)用。一般在Matlab中使用提升小波變換的主要步驟是:先用小波函數(shù)獲取相應(yīng)的提升小波方案;然后設(shè)置原始的提升步驟,并且把提升步驟添加到提升方案中;最后應(yīng)用提升方案對(duì)向量進(jìn)行提升小波分解。
提升小波變換同第一代小波變換類似,對(duì)原音頻信號(hào)進(jìn)行一級(jí)小波分解后,將得到一級(jí)的低頻分量cA1和一個(gè)高頻分量cD1,如果繼續(xù)對(duì)低頻分量cA1再次分解,將得到新的二級(jí)的低頻分量cA2和一個(gè)高頻分量cD2,因此,經(jīng)過(guò)多級(jí)提升小波分解得到的低頻分量cAn的能量最大,在信號(hào)處理中是最具有魯棒性的,是水印嵌入的理想選擇。由于DCT變換具有很強(qiáng)的聚能特性,信號(hào)經(jīng)過(guò)DCT變換后將把能量集中在低頻和中頻系數(shù)上,但低頻系數(shù)的改變?nèi)菀自斐尚盘?hào)的降質(zhì)。基于以上分析,本文選擇音頻信號(hào)多級(jí)LWT-DCT變換的中頻系數(shù)作為水印的嵌入對(duì)象,來(lái)保證水印的穩(wěn)定性。
混沌序列具有非周期性不收斂、強(qiáng)依賴于初始條件的特點(diǎn),即不同的μ和X0迭代得到的混沌序列一定不同,反之,給定一樣的μ和X0,將得到相同的混沌序列,因此本文利用混沌序列的特性來(lái)為水印加密,并且通過(guò)兩次不同初始條件的混沌序列來(lái)加密,確保了水印的安全性。
記原始音頻載體信號(hào)為A={a(i),i=1,2,…,L},L為音頻總采樣點(diǎn)數(shù),二值水印圖像為W={W(i,j),1≤i≤M,1≤j≤N},其中,W(i,j)∈(0,1)為水印第i行、第j列的像素值;M為像素點(diǎn)行數(shù);N為像素點(diǎn)列數(shù)。
嵌入過(guò)程為:
( 1 )
步驟3反復(fù)進(jìn)行步驟2的各項(xiàng)操作,直到所有幀的水印編碼信息嵌入結(jié)束,再重新組合各幀新的音頻信號(hào),最終得到含水印音頻。水印的整個(gè)嵌入過(guò)程如圖1所示。
圖1 水印的嵌入過(guò)程
步驟1將待測(cè)音頻載體分為M幀,對(duì)各幀音頻系數(shù)進(jìn)行以下操作:
( 2 )
步驟3由兩組密鑰產(chǎn)生與嵌入過(guò)程中同樣的兩個(gè)混沌序列,把步驟2得到的矩陣降為一維,并分別與混沌序列進(jìn)行異或運(yùn)算,解密后再將所得序列升維為[MN]矩陣,恢復(fù)出水印圖像W′。水印的提取過(guò)程如圖2所示。
圖2 水印的提取過(guò)程
步驟1定義一個(gè)矩陣V,用來(lái)保存受篡改水印信息。
V(i,j)=W(i,j)⊕W′(i,j)
( 3 )
式中:⊕為異或運(yùn)算;W′為提取的水印矩陣;W為原水印矩陣。
步驟2定義一個(gè)數(shù)組SS={ss(i),i=1,2,…,M},用來(lái)保存矩陣V中各幀的統(tǒng)計(jì)結(jié)果。設(shè)置適當(dāng)?shù)拈撝礔來(lái)消除一般音頻處理的虛警檢測(cè),當(dāng)ss(i)≤F,表示該幀未受損,否則遭受篡改,并可通過(guò)數(shù)組SS來(lái)確定音頻受篡改的幀號(hào)。
步驟3通過(guò)統(tǒng)計(jì)ss(i)>F的個(gè)數(shù)計(jì)算受篡改幀數(shù),并計(jì)算篡改比例。
( 4 )
為驗(yàn)證本算法的有效性,仿真實(shí)驗(yàn)在Windows 10操作系統(tǒng)下MATLAB軟件環(huán)境中進(jìn)行,音頻載體為PCM 44.100 kHz、16位、單聲道,長(zhǎng)度為 10.54 s;二值水印圖的大小為32×32;提升小波方案采用Haar小波函數(shù);提升步驟設(shè)置為{'p',[-0.125 0.125],0};LWT分解級(jí)數(shù)為2;閾值F為3。
圖3是水印編碼信息嵌入音頻載體前后的波形對(duì)比,兩個(gè)波形在直觀上幾乎一樣,誤差很小,求得音頻的信噪比SNR為30.300 6。而在聽(tīng)覺(jué)上,因?yàn)槿祟惵?tīng)覺(jué)系統(tǒng)的局限性,難以分辨出前后音頻載體的不同,說(shuō)明本音頻水印算法的不可聽(tīng)性較好。
圖3 原始音頻與含水印音頻的比較
水印的作用是對(duì)多媒體信息的保護(hù),如果水印缺少安全性,那么水印的作用將無(wú)從談起。圖4是水印經(jīng)過(guò)兩次加密和編碼后的結(jié)果,圖像已變的雜亂無(wú)章,無(wú)法直接獲得任何有用信息,同時(shí),混沌加密也降低水印中像素點(diǎn)之間原有相關(guān)性,有利于水印的嵌入操作。
圖4 水印加密及編碼結(jié)果
原水印與提取水印的歸一化互相關(guān)系數(shù)NC和誤碼率BER是評(píng)價(jià)水印提取效果的常用依據(jù),若測(cè)得NC=1、BER=0,則水印提取效果最好,反之,若測(cè)得NC=0、BER=1,則水印提取效果最差。水印圖像的提取效果可由人眼直接分辨。表1是待測(cè)音頻在各種常見(jiàn)攻擊后水印提取的效果,以及同文獻(xiàn)[10] 、文獻(xiàn)[11]提取結(jié)果的比較。可以看出水印在各種常見(jiàn)的信號(hào)攻擊后,提取效果仍然較好,說(shuō)明本水印算法在LWT-DCT域中利用循環(huán)碼進(jìn)行差錯(cuò)控制,提高了水印的魯棒性,而且通過(guò)比較可得出本水印算法在抵抗低通濾波、噪聲干擾、重新采樣等方面有明顯的優(yōu)勢(shì)。
表1 水印魯棒性的檢測(cè)與比較
表1(續(xù))
在半脆弱水印算法中,篡改定位是水印的一個(gè)重要功能。圖5是常規(guī)低通濾波的檢測(cè)結(jié)果,雖然音頻的SNR很低,但未檢測(cè)到惡意篡改。圖6是仿隨機(jī)替換三大段采樣點(diǎn)的定位結(jié)果,圖7和圖8為仿隨機(jī)剪切樣點(diǎn)的定位結(jié)果,可見(jiàn)本水印算法可準(zhǔn)確定位樣點(diǎn)替換或剪切等惡意篡改的位置,并能給出篡改幀數(shù)、幀號(hào)及篡改程度的提示。
圖5 常規(guī)低通濾波的檢測(cè)結(jié)果
圖6 仿隨機(jī)替換三大段采樣點(diǎn)的定位結(jié)果
圖7 仿隨機(jī)剪切樣點(diǎn)的定位結(jié)果(1)
圖8 仿隨機(jī)剪切樣點(diǎn)的定位結(jié)果(2)
為提升半脆弱音頻水印的性能,本算法在水印嵌入前,利用混沌加密的方法為水印信息進(jìn)行兩次加密,保證水印安全性和可靠性,同時(shí),采用循環(huán)碼對(duì)水印信息進(jìn)行編碼,抵抗各種信號(hào)干擾,保護(hù)水印信息。在嵌入時(shí),通過(guò)設(shè)置提升方案,獲取LWT最高級(jí)的低頻分量進(jìn)行DCT變換,選擇中頻系數(shù)進(jìn)行自適應(yīng)量化嵌入水印編碼信息,從而保證水印的魯棒性和盲檢測(cè)性。仿真實(shí)驗(yàn)表明,水印在疊加噪聲、重新采樣、重新量化、Mp3有損壓縮、低通濾波等常見(jiàn)攻擊處理中穩(wěn)定性強(qiáng),而且在遭受惡意篡改時(shí),能準(zhǔn)確定位,并統(tǒng)計(jì)與提示篡改信息。由于本文引入(7,4)循環(huán)碼對(duì)水印進(jìn)行嵌入前的編碼,使得信息嵌入量為原水印信息量的1.75倍,算法也為此多開(kāi)支了編碼時(shí)間和信息嵌入時(shí)間,嵌入信息的時(shí)間復(fù)雜度增加了將近一倍,這將影響到水印的不可聽(tīng)性及水印容量,因此,今后將進(jìn)一步研究算法效率與信道編碼的糾錯(cuò)能力,從而增強(qiáng)水印的實(shí)用性。