隨著數(shù)字技術、網(wǎng)絡及無線通信的發(fā)展,人們之間的信息交換越來越方便和快捷,但隨之而來的信息安全問題越來越重要。信息隱藏,機密信息的隱秘傳輸方法的研究成為信息安全研究領域的重要課題之一。
通??稍诙嗝襟w信息中,提取對人眼或人耳不敏感的比特,組成可修改矢量,將數(shù)據(jù)隱藏在人眼(耳)不易覺察的部位。2002年,Yu—Chee Tseng等人給出了一種最多只修改2比特,就可在長為n比特可修改宿主數(shù)據(jù)流中嵌入[log2(n+1)]比特數(shù)據(jù)的方法。
2003年,F(xiàn).Galand指出了最多只修改1比特,就可在n比特可修改數(shù)據(jù)中嵌入[log2(n+1)]比特數(shù)據(jù),但沒有給出具體的方法。2004年,田源等給出了一種最多只修改1比特,就可在n比特可修改數(shù)據(jù)中嵌入[log2(n+1)]比特數(shù)據(jù)的簡便快速方法。但這些方法,每嵌入m比特數(shù)據(jù),需(2m一1)比特宿主可修改數(shù)據(jù),數(shù)據(jù)嵌入率不夠高,常不能滿足流媒體信息隱藏的要求。
國內(nèi)陳亮等人給出了一種基于語音參數(shù)模型的語音隱藏算法。該方法主要通過修改對應的DFT系數(shù)來隱藏保密語音信息,但該方法在信息提取時需要宿主原始語音信息。
奇偶調(diào)制法是一種數(shù)據(jù)嵌入率較高的方法,可在n比特宿主可修改信息中嵌入n比特數(shù)據(jù),但該方法最多要修改n比特宿主數(shù)據(jù)。
本文描述了一種可將一路低碼率2.4kb/s混合激勵線性預測(MELP)編碼語音信息,隱藏在另一路13kb/s的GSM編碼語音中,通過公共信道隱秘傳輸?shù)姆椒?。文中給出了一種新的數(shù)據(jù)嵌入方法,該方法以一個單位增廣矩陣為基礎,可在(2L+1)比特可修改信息中嵌入2L比特數(shù)據(jù)信息,而最多只需修改£比特宿主信息,有較高的數(shù)據(jù)嵌入率,算法計算復雜度較低,較易于硬件實現(xiàn),且對宿主信息的影響也較少。
該方法已經(jīng)在計算機局域網(wǎng),及微型計算機上進行了模擬,獲得了較好的結果,可用于機密信息的隱秘傳輸。
2 系統(tǒng)概述
首先從GSM編碼的數(shù)字語音信息,提取對人耳不很敏感的比特,組成宿主可修改矢量,當其部分或全部改變時,人耳很難覺察。圖1給出了該系統(tǒng)信息處理的主要框圖。
為了保證隱秘傳輸?shù)痛a率語音信息的安全性,可先對低碼率語音信息加密,然后用密鑰2、宿主可修改矢量及需隱秘傳輸?shù)牡痛a率語音信息,計算出GSM語音編碼需修改(取反)比特的位置信息。
依據(jù)求得的須修改的位置信息,將GSM編碼的宿主語音信息中相對應的比特取反,即可獲得藏有另一路低碼率語音信息的GSM語音編碼,該編碼送到公共信道傳輸。
接收端的信息處理是發(fā)送端處理的逆過程,從公共信道接收到藏有低碼率語音信息的GSM編碼后,用密鑰2,求得隱藏在GSM編碼中的低碼率語音信息,經(jīng)密鑰l解密就可得到低碼率音頻信息,從而可實現(xiàn)一路低碼率語音信息,隱藏在另一路GSM編碼的語音信息中傳輸,嵌入前后對GSM編碼的宿主語音信息的影響很難察覺。
3 GSM語音編碼的碼流分析
GSM語音采用RPE-LTP編碼,每幀20ms語音信息由260比特組成。主要包括反射系數(shù)和4個子幀。8個反射系數(shù)共36比特,每一子幀由9比特LPT參數(shù)及47比特RPE參數(shù)組成。
歐洲電訊管理局對GSM編碼語音信息每幀260比特,對人聽覺影響程度進行了研究,并按對人類聽覺影響程度的大小將這260比特分成6類,其中第一類對人類聽覺影響最大。第六類影響最小,該類比特數(shù)據(jù)改變引起的失真,人耳很難分辨,可忽略。
表l給出了屬于第一、二類及第六類的比特。表l中,LAR是對數(shù)面積比,Blockamplitude是4個子幀中每子幀塊幅度,RPE pulses是子幀中的RPE脈沖。
由表l知,人耳不敏感的數(shù)位共有69比特,主要為各對數(shù)面積比的最低位,4個子幀中塊幅度的最低位及RPE脈沖的最低位。
對于2_4kb/s混合激勵線性預測(MELP)語音編碼,每20ms有48比特語音信息,從本文給出的嵌入算法可知,只需選上述第六類比特作為宿主可修改矢量,最多修改其中的24比特,就可嵌入48比特數(shù)據(jù)。對于更低碼率的語音信息,需選作為可修改矢量的比特位更少。采用該算法在第六類比特中嵌入低碼率語音,低碼率語音的最大碼率可達3.4kb/s。
4 單位增廣矩陣
n階單位矩陣,再增加一列全“l(fā)”列矢量,作為第(n+1)列,就可以生成一個單位增廣矩陣,可稱為n階二值單位增廣矩陣。如果把其列矢量所對應的十進制數(shù),稱為該列矢量的值,則n階單位增廣矩陣第一列到第(n+1)列的值依次為:2n-1,2n-2…,21,20,2n一l。
4.1 4階單位增廣矩陣
式(1)為一4階單位增廣矩陣,其每一列都不相同,且列矢量的值依次為:8,4,2,1,15。
從式(1)知,4階單位增廣矩陣,對任一l至(24一1)整數(shù)的值所對應的4維二值列矢量,都可由矩陣中不超過二個列矢量,通過異或運算產(chǎn)生。
4.2 2L階單位增廣矩陣
式(2)為一2L單位增廣矩陣,對于任一1至(22L一1)的整數(shù)值所對應的2£維二值列向量d。
1)若d中的“l(fā)”的個數(shù)為k,且l≤k≤L,由于式(2)前2L列的2L階單位陣中,每列有且只有一個“1”,所以只要用d中“l(fā)”所在行,在2L階單位陣中,找到對應行為“1”值的列矢量,最多可找到L個,列向量d則可由這些列矢量,通過異或運算產(chǎn)生。
2)若d中“1”的個數(shù)大于L,即L<k≤2L,這時d中零的個數(shù)J為J=2L一k<L,即0≤J≤L一1,只要用d中“0”所在行,在2L單位陣中找到對應行為“1”的列向量,不超過(L一1)個,連同最后一列全“l(fā)”列矢量,共不超過L個。列矢量d則可由這些矢量通過異或運算產(chǎn)生。
因此,對于任一1至22L一1的整數(shù)值所對應的2L維列矢量d,都可以在2L階單位增廣矩陣中,找到不超過L個列矢量,使得d可用這些列矢量通過異或運算產(chǎn)生:
其中hi1,…,hik是2L階單位增廣矩陣中滿足上述條件的列矢量。
5 嵌入/提取算法原理
若可修改矢量為a=(a1,a2,…,an)T,待嵌入數(shù)據(jù)為c=(c1,c2,…,c2L)T,H為2L階單位增廣矩陣,[式(2)],下面分兩種情況討論:
(1)n=2L+1
計算
其中hi,i=1,…,2L+1,是2L階單位增廣矩陣中第i列矢量,由式(4)可知s為2L維列矢量。
令
d為2L維列矢量。若d為“O”矢量,則s=c,a不必作任何修改;若d是不為“0”矢量,由4.2節(jié)知,可在2L階單位增廣矩陣中找到k列,k≤L,如hi1,hi2,…,hik使得
只要將可修改矢量a中與這k≤L個列矢量對應的數(shù)位取反,就可得到嵌入c后的矢量a’,不失一般性,a’可表示為:
這樣,最多修改Lbit,就可在a的(2L+1)bit中嵌入2Lbit數(shù)據(jù)。
提取數(shù)據(jù)時,只要計算
由式(4)、式(6)知,這時:
從上面討論知,只要在H矩陣中,找到k列(k≤L)使得式(6)成立即可,而與日矩陣中列矢量的排列順序無關,所以日矩陣可有(2L+1)!種選擇。
(2)n>2L+1
由本小節(jié)(1)知,當n>2L+1時,H矩陣應為2L×n矩陣,記為H,為了對任一值為l~22L一1的2L維列向量d使得(6)滿足,則H矩陣中,式(2)矩陣中的每一列向量至少出現(xiàn)一次,其余列可以是式(2)矩陣中的任一列向量。這樣,H矩陣就有種選擇。
當n很大時,這個值非常大,由于數(shù)值的嵌入和提取都要用相同的Ⅳ,因此,日也可用作密鑰。在本文所述的系統(tǒng)中,可作為密鑰2使用。
對于上述不同矩陣H,嵌入算法只需作一定的調(diào)整,而提取算法基本不變。
6 實驗及結果
6.1 嵌入/提取MELP語音的步驟
嵌入主要步驟:
1)對于每幀GSM語音信號,選取所有第六類n=69組成69比特宿主可修改矢量a,當L=24時,2L×69單位增廣矩陣共有種,取其中任一種作為單位增廣矩陣H。根據(jù)矩陣H(密鑰2)和宿主可修改矢量口計算向量s=Ha;
2)對MELP機密語音由密鑰1進行初始加密。加密算法采用簡單異或加密或DES加密。根據(jù)已加密分段的MELP語音c計算向量若d=0,則不需進行任何修改;否則,在2L×69單位增廣矩陣中必可找出滿足條件的k列(k≤L):hi1,hi2,…h(huán)ik。將可修改矢量a中與這K≤L個列矢量所對應的比特位分別取反即得到嵌入機密語音c后的GSM數(shù)據(jù)矢量a’(見式(7)。
提取主要步驟:
1)在接收端接收到a’后,采用與發(fā)送端相同的單位增廣矩陣H,計算c即為加密后的MELP語音;
2)得到c后,再用密鑰1解密,組合后就可得到所嵌入的一路2.4kb/s MELP機密語音。
6.2 實驗結果
為了驗證該算法,在局域網(wǎng)中進行了模擬實驗。工作平臺為Windows 2000,采集的音頻信號為16比特線性PCM音頻信號,采樣時間為8s,共64000個樣點。采用GSM編碼,每幀GSM語音(20ms)中的69比特宿主可修改矢量,最多修改其中的L=24比特,相應嵌入2L=48比特MELP編碼(20ms)的語音信息。
嵌入MELP語音后的語音與原宿主語音的對比采用峰值信噪比.PSNR(Peak SNR)進行衡量:
這里取K=64000。其中x(n)為原始PCM語音;y(n)為原始語音僅GSM編碼傳輸解碼后的PCM語音;y’(n)為相應的GSM語音嵌入MELP語音后傳輸、解碼后的PCM語音。
圖2給出了一組語音的實驗結果,圖2(b)相對于圖2(a)的PSNRl=31.65dB,圖2(c)相對于圖2(a)的PSNR2=25.9ldB。圖2(d)~(f)給出了所嵌入的MELP語音的波形。其中橫軸是樣點個數(shù),縱軸是幅值(單位為5V/216)。
模擬實驗表明,在GSM編碼語音中可實時嵌入一路2.4kb/s的MELP編碼的機密語音,嵌入后的GSM語音仍具有較好的音頻質(zhì)量。
在局域網(wǎng)傳輸?shù)那闆r下,由于基本上無噪聲影響,嵌入的2.4kb/s MELP編碼的機密語音在實驗室有100%的正確提取率,實驗表明圖2(e)與圖2(f)的MELP文件完全相同,波形也完全相同。表2給出了10組實驗的統(tǒng)計結果,實驗中MELP機密語音在不考慮噪聲影響的條件下正確提取率均為100%。
嵌入MELP語音后的GSM語音相對于原GSM語音,非專業(yè)人員難以分辯出二者的區(qū)別,在實驗室請10人分別對多段嵌入MELP語音后的GSM語音與原GSM語音進行分辯,均未覺察出二者的明顯區(qū)別。
另外還對加密的MELP語音進行了糾錯編碼和交織后,再嵌入的實驗,以增加系統(tǒng)的可靠性。采用線性分組Hamming糾錯編碼,可糾正單比特錯誤。若數(shù)據(jù)位為m,監(jiān)督位為k,則編碼長度為n=m+k,需滿足:2k一l≥n;n=m+k。這里取m=48,k=6,n=54。糾錯編碼后的數(shù)據(jù)交織后再進行嵌入。每幀GSM語音最多修改27比特,相應嵌入54比特數(shù)據(jù)。模擬表明當信道噪聲或其它因素導致GSM語音丟失1幀信息時(最小丟幀間隔不小于54幀時),丟失幀所嵌入的機密語音可以全部由糾錯碼糾回。
7 結論
通過對GSM語音碼流的分析,給出了一種將一路2.4kb/s的混合激勵線性預測(MELP)編碼的機密語音嵌入在另一路13kb/s的GSM語音碼流非敏感比特中的一種方法。在每2L+l可修改比特中,通過最多只修改其中的L比特,便可嵌入2L比特的數(shù)據(jù)。
該方法主要采用了一個二值矩陣及異或運算,運算復雜度不高,易于硬件實現(xiàn)。
實驗結果表明,該算法可隱藏的數(shù)據(jù)量較大,具有較好的安全性。進而可用于較大容量的流媒體信息的隱藏及隱秘傳輸,如隱形手機的研究等。
本文主要討論了2.4kb/s低碼率語音到GSM編碼語音的嵌入/提取方法,進一步提高系統(tǒng)的抗干擾能力尚需進一步研究。