徐 治
(安徽師范大學物理與電子信息學院,安徽蕪湖 241000)
信息隱藏是以某種方式在一段宿主信息中嵌入另一段信息,從而產(chǎn)生一種復合信息。由于嵌入的信息給宿主信息帶來的干擾被控制在不易察覺的程度,其可隱藏在復合信息中公開地傳輸或存儲,在收端再將隱藏的信息提取出來,從而實現(xiàn)信息的隱蔽存儲或保密通信。信息隱藏是信息安全的重要方法,例如將信息隱藏在視頻或音頻碼流中能起到良好的偽裝作用,因通常人工審查或軟件過濾會將其當成普通的影音信息忽略過去。將加密后的信息隱藏在以GB計的視頻或音頻信息中,其安全性比單純的加密更高,因此其在情報、軍事及安全領(lǐng)域有重要的意義,在民用領(lǐng)域的應(yīng)用包括數(shù)字水印版權(quán)保護、互聯(lián)網(wǎng)身份認證、報文纂改檢測等。
信息隱藏技術(shù)是在1994年的國際圖像處理會議(ICIP 94D)上首先提出的[1],早期用在靜態(tài)圖像中,后來擴展到音頻視頻信號[2]。本文研究以音頻信號作為宿主來隱藏信息,音頻的數(shù)據(jù)量較大,審查和過濾更困難,而可隱藏的信息卻更多。音頻信號是實時信號,若其中隱藏信息的密度足夠大,則隱藏信息也可作為實時信號傳輸,這可實現(xiàn)在一個宿主通信的掩護下同時進行另一個隱藏的保密通信。
目前在數(shù)字音頻信號中隱藏信息的方法主要分時域和變換域兩大類。時域隱藏主要是最低有效位算法和回聲隱藏法,但其魯棒性較差[3]。本文采用基于DCT譜的頻域變換方法,將信息嵌入到音頻信號的頻譜中去,其基本過程如圖1所示。
首先將音頻序列分段成一定長度的幀,并用DCT變換計算出該幀的頻譜。同時將隱藏信息置亂或交織后串行化為bit流,一個bit的隱藏信息通過改寫一個音頻幀的頻譜,使其符合相應(yīng)的特征而被嵌入其中,然后對改寫了的頻譜作IDCT反變換得到復合音頻序列。信息提取過程是計算出音頻幀的DCT頻譜,然后根據(jù)其頻譜特征決定該幀的隱藏bit是0還是1。
信息隱藏按提取方式分為盲檢測和非盲檢測兩類,盲檢測只需要復合信息即可提取出隱藏信息,而非盲檢測需要同時獲得原始的宿主信息,通過比對宿主信息和復合信息來提取[4]。盲檢測方案的應(yīng)用價值更高。本文的算法在信息提取時無需宿主信息,從而實現(xiàn)了盲檢測。
圖1 信息的隱藏和提取
本文設(shè)計的頻域信息隱藏的嵌入和提取算法如圖2所示。
圖2 隱藏信息的嵌入和提取
DCT變換是多媒體信息處理中求頻譜的常用算法[5]。本文選擇DCT而不是DFT有兩個原因:(1)DCT不涉及復數(shù)運算。由于作為多媒體信息的音頻序列可看成一個實偶序列,而實偶函數(shù)的傅里葉變換只包含余弦項,因此DFT的復數(shù)變換核 e-j2πNn就退化為DCT的實數(shù)變換核cos。(2)DCT更加有效。N點實序列的DFT譜是共軛對稱的,因此N點的DFT譜相當于只有條譜線,而N點DCT譜沒有這個性質(zhì)。因此同樣的幀長,DCT譜可操作的譜線數(shù)量是DFT譜的2倍,同時DCT譜的頻率分辨率也比DFT譜高2倍,因而在遭受攻擊時魯棒性更強。
本文通過一幀DCT譜中m個特定頻點的譜線的極性來表達1 bit的隱藏信息:如果隱藏信息位是1,則m個譜線的極性都必須為正,對其中原來是負極性的譜線,則改寫為正的,而絕對值大小保持不變;如果隱藏信息位是0,則m個譜線的極性均必須為負,改寫方法相同。改變DCT譜線的極性,相當于將對應(yīng)的諧波分量作了180°倒相處理,由于人耳對聲音的相位信息不敏感,因此其透明性應(yīng)該優(yōu)于改寫幅度的算法。從數(shù)值變化大小的角度看,極性翻轉(zhuǎn)的數(shù)值變化要遠大于幅度修正,因此抗攻擊的性能也應(yīng)優(yōu)于改寫幅度。
極性特征編碼在m個譜線上,這種重復冗余的方式是為了提高抗攻擊能力。在信息提取時采用等增益合并方式進行判決:即將特定的m個譜線直接累加,若和為正,則隱藏信息位判為1;反之為0。根據(jù)測試,m約取10即可,過小會降低魯棒性,但過大無意義。
為了兼顧透明性和魯棒性,m個頻點的位置是按幀動態(tài)選擇的。首先頻點選擇范圍限制于1 000 Hz~3 000 Hz的中頻段內(nèi)。因為除非對復合音頻進行破壞性處理,否則中頻段的譜線不受正常濾波的影響,也不會全部被壓縮算法刪除。接著對中頻段的譜線按其幅度絕對值的大小進行排序,然后回避最大的b個譜線,從第b+1的位置開始的m個譜線就是該幀的特征頻點。b的取值是平衡透明性和魯棒性的關(guān)鍵參數(shù):b過大,對宿主音頻的干擾比較大,但魯棒性會較好;b過小則效果相反。測試發(fā)現(xiàn)b約取20較為合適。
某些音頻序列中存在采樣值全部為0的幀,其DCT譜也全部為0,無法嵌入和提取。若某些幀能量較小,DCT譜線的抗噪能力會很差。算法會計算每幀的能量,若小于一定的門限,則隨機選取多個位置,將譜線幅度修正為適當大小的隨機值。
衡量聲音失真度的指標分主觀和客觀兩種[6]。本文使用MOS等級評分來衡量,因為客觀指標有時與聽覺感受并不一致。本算法的MOS測試結(jié)果為:多數(shù)聲音樣本評分為良(失真剛有察覺,但不討厭),少數(shù)評分為優(yōu)(失真無察覺),只有個別的樣本評分為中(有察覺,且有點討厭)。實際上,實驗對象均認為復合聲音無異常,只有通過復合聲音與宿主聲音的對比才能覺察到失真。圖3(a)的波形是漢語“北”的原始語音,圖3(b)是嵌入9 bit的隱藏信息后的波形。
圖3 嵌入隱藏信息前后聲音波形對比
由于有限字長效應(yīng),即使未受到攻擊,提取的信息也可能有誤差,可以用誤碼率來衡量。目前的音頻傳輸或存儲格式,字長多是16 bit或8 bit[7],這低于 DCT變換要求的計算精度。具體來說,發(fā)端IDCT的結(jié)果應(yīng)該是實數(shù)精度的,但實際傳輸或存儲時只有16 bit,這就帶來了一定的量化噪聲。本算法對此有良好的魯棒性,經(jīng)測試,有1/2的樣本誤碼率為零,其余樣本平均誤碼率在10-4以下。因此,只要加入糾錯編碼完全可實現(xiàn)無差錯提取。
由于每幀嵌入1 bit,則幀長越短,信息容量越大。但幀越短其DCT譜也越短,由于算法采用了中頻截取、大譜線回避和多頻點重復,幀長在技術(shù)上存在一個下限。通過對幀補0延長的辦法可以提高頻譜序列的長度,但由于頻域有效分辨率并沒有提高,該方法效果有限。經(jīng)測試,對于44 kHz宿主音頻,要保持誤碼率在10-4數(shù)量級,最小幀長在8~10 ms之間,即碼率約為125~100 bit·s-1。但若不考慮濾波攻擊,就可省略中頻截取步驟,只保留回避和多頻點重復,則最小幀長縮短約為1 ms,即隱藏信息的碼率約是1 kbit·s-1。這已經(jīng)接近目前語音壓縮編碼的極限碼率1.5 kbit·s-1了[7]。
表1所示是本算法經(jīng)受幾種常見攻擊后提取的圖像,實驗中的宿主音頻為44 kHz采樣,16 bit。
表1 部分魯棒性測試結(jié)果
由表可見算法對于ADPCM壓縮、MP3壓縮具有良好的魯棒性,對加性噪聲有較好的魯棒性。但對GSM壓縮比較敏感。其原因在于ADPCM和MP3并不改變中頻段主要譜線的結(jié)構(gòu),而GSM聲碼器在壓縮時主要記錄極點位置以及聲門波激勵等參數(shù)[8],解壓縮后還原的頻譜結(jié)構(gòu)有一定的偏差,從而誤碼率較大。對于重采樣攻擊,在2倍率重采樣時,本算法的魯棒性較好,但3倍率以上重采樣會使隱藏信息基本丟失。
表1也比較了置亂前后誤碼分布的變化,由于能量偏低的幀其抗噪性比較弱,不置亂時誤碼呈突發(fā)分布。若隱藏信息是實時的,則可使用交織編碼方式。雖然置亂或交織本身并不改變誤碼率,但如果以后加上糾錯編碼,則效果會有較大的不同。
本文所設(shè)計的隱藏算法基于常用的DCT變換,實現(xiàn)起來簡單快速,盲檢測的提取方式具有較高的實用性,性能方面透明性和魯棒性較好,結(jié)合簡單的糾錯編碼可以在多種攻擊下實現(xiàn)無差錯提取。不考慮濾波攻擊時信息容量可以達到比較高的水平,但不足之處在于對某些類型的攻擊比較敏感。
[1] Shyndel R G Van,Tirkel A Z,Osborne C F.A digital watermark[C].Austin:Proceeding of ICIP'94,1994.
[2] 陳昕.語音水印技術(shù)的研究與應(yīng)用[D].北京:北京郵電大學,2010.
[3] 項世軍.穩(wěn)健音頻水印研究[D].廣州:中山大學,2006.
[4] 陳亮,張雄偉.語音保密通信中的信息隱藏算法研究[J].解放軍理工大學學報:自然科學版,2002,3(6):1-5.
[5] 門愛東.數(shù)字信號處理[M].北京:科學出版社,2009.
[6] 王繼祥,劉貴忠,劉廣健,等.基于小波譜失真測度的語音質(zhì)量評估[J].兵工學報,2008,29(1):33 -36.
[7] 郭立,王妙鋒,劉璐,等.1.6Kb/s類MELP語音壓縮編碼器的FPGA實現(xiàn)[J].小型微型計算機系統(tǒng),2008,29(8):1553-1556.
[8] 韓紀慶,張磊,鄭鐵然.語音信號處理[M].北京:清華大學出版社,2005.