摘 要:針對傳統加密通信容易被攻擊者監聽和破譯的缺點,設計了一種新的基于視頻數字水印技術的隱密通信系統。該系統先將隱密數據加密,然后對加密后的數據進行BCH編碼并按密鑰置換,最后將隱密數據和重同步標識依次嵌入到DCT塊的中頻系數中。實驗表明:該系統具有良好的抗噪聲、視頻壓縮編碼的性能,并能實現隱密數據的可靠傳輸。
關鍵詞:視頻水印;隱密通信;重同步標識;噪聲攻擊
中圖分類號:TP391 文獻標識碼:B
文章編號:1004-373X(2008)11-078-03
Secret Communication System Based on the Video Watermarking
ZHANG Yiwu
(Hunan National Vocational College,Yueyang,414000,China)
Abstract:Traditional encryption communications easily be monitored and deciphered,a novel video-based digital watermarking technology secret communications system is designed.The secret data is encrypted and replaced according to BCH at first.And then,the coded data and resynchronization markers are embedded into the middle frequency coefficients in DCT domain.The experiment shows that:the system has performed well in anti-noise,video compression,and can achieve reliable data secret communication.
Keywords:video watermarking;secret communication;resynchronization marker;noise attracking
1 引 言
隨著網絡時代的到來,網絡信息安全日益突出,通信系統在網絡環境下的信息安全問題也日益顯露出來。因此,如何在網絡環境中實施有效的信息安全手段成為一個亟待解決的現實問題。傳統的通信安全是以密碼學為基礎的,即把相關數據加密成密文后進行傳輸,以使非法攻擊者無法從密文中獲得真實信息,從而達到有效保護信息的目的[1,2]。但該方法也存在著很大的局限性:一方面,加密后的數據因其不可理解性,從而不利于信息的傳播;另一方面,信息經過加密后容易引起攻擊者的好奇和注意,并有被破解的可能性,即使密碼的強度非常高而使破譯的成本非常高,但是攻擊者仍有足夠的手段進行破壞。這里,可利用生理學模型,通過適當的策略將隱密信息嵌入到視聽不敏感區域,則嵌入水印的宿主媒體便不會引起不良的視聽效果[3]。本文正是利用此特性,以實時傳輸的視頻流為平臺,將要隱密傳輸的信息以數字水印方式嵌入視頻流中傳輸,用以提高通信的安全性。實驗證明該系統的偽裝性是傳統加密通信無法比擬的,且攻擊者很難獲取隱藏信息。
2 系統基本架構
基于視頻水印的隱密通信系統的基本模型如圖1所示,其中隱密信息是以數字水印方式嵌入到實時視頻中并進行傳輸的。選擇視頻作為水印信息的載體是由于視頻可描述為時間的一維函數,在嵌入水印時可以減少運算量和時間復雜度。另外,視頻節目數據量很大,通常可以嵌入較多的水印信息。同時,人們日常使用的視頻通信軟件很大部分是雙向的,這使隱密信息的交互性成為可能。
圖1 視頻隱密通信系統的基本模型
3 水印的嵌入與提取算法
對于該隱密通信系統,其中隱藏的水印數據在通信過程中難免會遭到攻擊或破壞,而當傳輸的數據遭到攻擊或破壞時,則會導致同步丟失和字節的位漂移。這時,即使提取的水印信息從比特意義上來說是正確的,當將這些提取的比特組成字節時,則可能會是一串無意義的亂碼。對此,本文設計了一種快速的可隨機檢測的穩健視頻水印算法。
3.1 隱密數據的BCH編碼和置換
由于隱藏在視頻流中的水印數據在通信過程中會遭到有意和無意的攻擊,這里,在嵌入前,先將隱藏的信息進行信道編碼[4],以提高其穩健性。考慮到隱藏信息是可以字節的形式表示和存儲的[5],為此文中為待嵌入和檢測的水印信息設計了一種(24,9)形式的BCH 碼,該BCH的生成多項式可用式(1)來表示:
g(x)=x15+x14+x13+x12+x10+x8+
x7+x6+x5+x4+1
(1)
其中,該BCH碼共有29個碼字,其漢明距為8,其可糾正不大于3比特的隨機誤碼。
接下來,將需要嵌入的隱密通信數據按式(2)進行BCH編碼并置換:
Bj=f(key,Wi),0≤i<28,0≤j<29
(2)
其中,Wi表示待嵌入的水印數據,Bj表示BCH碼中的一個碼字,key為變換密鑰。
3.2 重同步標識的選取和檢測
為了在出現視頻跳轉或視頻丟幀等情況時,能快速地檢測到正確的隱密信息,本文將會在嵌入水印數據的過程中,同時定期地嵌入一些重同步標識(Resynchronization Marker,RM)。其中,重同步標識是一個惟一的碼字,且不會是前面所選用的BCH碼的任何一個碼字重復。同時,也是判別視頻中是否嵌入了隱密和進行重同步的標志碼。即當進行水印檢測時,需先檢測重同步標識以獲取水印嵌入的正確位置,才能正確地提取有意義的隱密信息。
為了提高重同步標識的搜索效率和隱密信息的不可感知性。本文根據實驗選取N(N=24)位的偽隨機序列作為重同步標識,該碼以十六進制表示為:“0xF65A50”。它與前面所選的BCH信號集中的所有碼字的碼距都不小于9,即該重同步標識發生不大于4比特的數據錯誤時,都不會與所選的BCH信號集中的任何一個碼字相混淆,從而具有較強的魯棒性。
同時,搜索重同步標識是正確提取隱密信息的前提,但重同步標識在傳輸過程中也可能會遭受攻擊而出錯。對此,本文使用相似函數(式(3),式(4))來判斷是否檢測到了重同步標識[5]。
MaxDiff(rm,rm′)=∑Ni=1|rm(i)-rm′(i)|
(3)
sync(rm,rm′)=1(檢測到重同步標識),
MaxDiff(rm,rm′)≤Trm
0(未檢測到重同步標碼),
MaxDiff(rm,rm′)>Trm
(4)
這里, rm′(i),0≤i 3.3 通信數據的嵌入與檢測算法 通信數據的嵌入可在視頻編碼時一并完成,在嵌入通信數據之前,先對通信數據進行加密,以提高通信數據的安全性。然后按圖2的方式嵌入加密的通信數據和重同步標識。 其中,本文根據水印的不可感知性和魯棒性要求,對于每一個DCT塊,僅對其中某一個特定的中頻DCT系數進行調整,以嵌入隱密信息[4,6]。具體嵌入方法如下式所示: DCTxy=sgn(DCTxy)×(|DCTxy|- |DCTxy|mod a+3a4),Bjk=1 sgn(DCTxy)×(|DCTxy|- |DCTxy|mod a+a4),Bjk=0 (5) sgn(t)=+1t≥0-1t<0 (6) 在式(5)中,a表示水印比特位的嵌入強度;mod表示取余運算;DCTxy表示第x個DCT塊按“之”字形順序掃描的第y個系數的值;Bjk表示需嵌入的比特位。 圖2 隱密信息的嵌入 同樣地,通信數據的提取可在視頻解碼時完成,其具體提取和數據組織過程如圖3所示。 圖3 隱密信息的檢測 其中,水印比特位的提取方法如式(7)所示: Bjk=1,當|DCTxy|moda≥a/2