陸詩依, 高 勇
(四川大學(xué) 電子信息學(xué)院,四川 成都 610065)
隱蔽信息嵌入到數(shù)字音頻信號中的算法主要分為兩種:時(shí)域嵌入和變換域嵌入。時(shí)域是將隱蔽信息嵌入到音頻采樣信號中。變換域嵌入是先將采樣的音頻信號在變換域處理,然后將隱蔽信息嵌入到處理后的音頻信號中。在變換域算法中,文獻(xiàn)[1]給出了離散傅里葉變換(discrete Fourier transform,DFT)的信息隱藏算法,主要用于版權(quán)保護(hù)。文獻(xiàn)[2]提出了一種結(jié)合奇異值分解(singular value decomposition,SVD)和離散小波變換(discrete wavelet transform,DWT)的隱藏算法,主要是在小波包系數(shù)中修改特征矩陣的值。文獻(xiàn)[3]給出了擴(kuò)頻信息隱藏算法,主要對擴(kuò)頻后的性能進(jìn)行一些描述。文獻(xiàn)[4]提出了離散傅里葉變換和離散小波變換相結(jié)合的隱藏算法。文獻(xiàn)[5~10]提出了提升小波變換(lifting wavelet transform,LWT)-SVD算法,這些文章算法的共同點(diǎn)都是把秘密信息轉(zhuǎn)換為二進(jìn)制比特,通過改變奇異矩陣的某些值進(jìn)行嵌入。以往的LWT-SVD算法,都存在隱藏容量不夠大、嵌入點(diǎn)固定等問題。其中隱藏容量不夠大一直是語音隱藏算法中較難解決的問題,本文的算法可以進(jìn)一步地提高隱藏容量,并且能靈活決定嵌入秘密語音的位置。
首先把隱藏信息進(jìn)行Logistic一維變換,再將輸出的數(shù)據(jù)流經(jīng)過里所(Reed-Solomon,RS)編碼,得到兩層加密的秘密語音。同時(shí)載體語音經(jīng)過提升小波變換,得到兩個(gè)系數(shù),即近似系數(shù)和細(xì)節(jié)系數(shù)。本文在近似系數(shù)中藏入秘密語音,在細(xì)節(jié)系數(shù)中藏入嵌入點(diǎn)的位置,經(jīng)過SVD的變換來更新近似系數(shù),用更新后的近似系數(shù)和細(xì)節(jié)系數(shù)形成含密語音。
通過實(shí)驗(yàn)測試,本文算法顯著地提升了語音的透明度,隱藏容量和抗干擾能力,可以實(shí)現(xiàn)嵌入語音位置的動(dòng)態(tài)化。
在文獻(xiàn)[10]中,Islam M提出了一種不依賴于傅里葉變換的新的小波構(gòu)造的方法,即提升小波變換法。提升小波變換可以實(shí)現(xiàn)系數(shù)的整數(shù)化,使其在運(yùn)算中減小了計(jì)算冗余度。提升小波變換即Harr,其具有如下特性:1)任一函數(shù)均可由其位移函數(shù)組成;2)任意函數(shù)都可以由常函數(shù),以及其位移函數(shù)組成;3)具有正交性等。
Logistic變換,其序列映射之后的信號具有混沌特性,很難預(yù)測。表達(dá)式為
Bk+1=μBk(1-Bk),-1≤Bk≤1,0<μ≤4
(1)
式中μ為控制參數(shù),Bk為第k個(gè)語音數(shù)據(jù)。根據(jù)不斷的累計(jì)迭代,最終序列的值與初始值B0以及控制參數(shù)μ有關(guān)。通常,可以用Lyapunov指數(shù)來判別一個(gè)系統(tǒng)是否具有混沌特性,當(dāng)系統(tǒng)的Lyapunov指數(shù)為正時(shí),系統(tǒng)才呈現(xiàn)出混沌狀態(tài)。文獻(xiàn)[8]中指出,只有當(dāng)控制參數(shù)μ∈[3.75,4]時(shí),Logistic序列才呈現(xiàn)出混沌狀態(tài)。本文置亂采用的Logistic序列初始值為B0為0.61,μ為3.90。
一種特殊的BCH碼,且其碼元和生成多項(xiàng)式g(x)都在伽羅華域GF(qm)(qm≠2)上。其能夠糾正信號在信道中傳輸時(shí)引入的隨機(jī)錯(cuò)誤與突發(fā)錯(cuò)誤。RS(n,k)編碼的一些基本性質(zhì)如下:
n=2m-1表示碼字的長度,r=n-k=2t為監(jiān)督碼元,其能夠糾正t個(gè)錯(cuò)誤。
RS編碼生成多項(xiàng)式的表達(dá)式為g(x)=(x-α)(x-α2)…(x-α2t),其中α為多項(xiàng)式g(x)的根,生成多項(xiàng)式的定義如下:在碼元RS(n,k)中,存在唯一的n-k次多項(xiàng)式g(x),使得每一個(gè)碼字多項(xiàng)式c(x)都是g(x)的倍式。
RS碼的校驗(yàn)多項(xiàng)式為h(x)=(xn-1)/g(x),其階數(shù)為k,滿足
g0h1+g1hi-1+…+gn-khi-(n-k)=0,i=1,2,…,n-1
(2)
生成矩陣G=[Ikpz],其中Ik為k×k階的單位方陣,表示碼字多項(xiàng)式c(x)中的第n-1~n-k次的系數(shù),這些系數(shù)是信息位,其余位置是監(jiān)督位。具體有
Pz=[xn-1(modg(x))xn-2(modg(x))…
xn-k(modg(x))]T
(3)
(4)
式中 mod為模二運(yùn)算。
RS碼的校驗(yàn)矩陣H為
(5)
RS的編碼主要解決一個(gè)除法問題,以生成多項(xiàng)式為模,而RS的解碼比編碼要更加復(fù)雜,其主要是從接收多項(xiàng)式r(x)中找出錯(cuò)誤圖樣e(x),其中錯(cuò)誤圖樣可以表示為
(6)
式中Yi∈GF(2m)為錯(cuò)誤值,xi=αli為錯(cuò)誤位置。RS解碼分為時(shí)域解碼和頻域解碼兩種方法,由于頻域解碼實(shí)現(xiàn)開銷大,一般采用時(shí)域解碼方法,解碼步驟如下:
1)根據(jù)接收碼字計(jì)算伴隨式,計(jì)算第i個(gè)伴隨式為
=r0(αi)0+r1(αi)1+r2(αi)2+…+rn-1(αi)n-1
(7)
(8)
將式(8)寫成矩陣形式,得
(9)
2)采用BM算法[11]計(jì)算錯(cuò)誤位置多項(xiàng)式。
BM算法就是用伴隨式計(jì)算錯(cuò)誤位置多項(xiàng)式的一種迭代算法,錯(cuò)誤位置多項(xiàng)式為
(10)
式中σi為錯(cuò)誤位置多項(xiàng)式的系數(shù),t為實(shí)際發(fā)生錯(cuò)誤的符號的總數(shù)。
將式(10)展開并變形,寫成矩陣的形式為
(11)
根據(jù)式(11),利用BM迭代算法可求出錯(cuò)誤位置σi。
3)求解錯(cuò)誤位置多項(xiàng)式的根,錯(cuò)誤位置為多項(xiàng)式的根的導(dǎo)數(shù);亦即檢驗(yàn)r(x)=rn-1xn-1+rn-2xn-2+…+r1x+r0中有幾處錯(cuò)誤,錢氏搜索法[8]就是依次對每一個(gè)rn-i(i=1,2,…,n)檢驗(yàn),從而求出σ(x)=0的根。
4)計(jì)算錯(cuò)誤符號的值,表達(dá)式為
(12)
5)譯碼輸出等于接收碼字減去錯(cuò)誤圖樣。
本文采用RS(15,7)編碼。RS編碼的輸入為經(jīng)過置亂之后的秘密信息w2(n),輸出為s(n)。
1)將載體語音C先進(jìn)行一維小波變換,得兩個(gè)系數(shù)。
2)秘密語音S(二進(jìn)制比特流)進(jìn)行Logistic一維變換,再經(jīng)過RS編碼,得到加密的秘密語音。
3)在小波變換的低頻系數(shù)中嵌入秘密信息,高頻系數(shù)中嵌入秘密語音的位置,C的長度大于S。
嵌入方式如下:
先將C進(jìn)行小波變換,按照式(13)~式(15)的公式隱藏信息
CL=UPVT
(13)
D=CL+KS
(14)
(15)
式中CL為C經(jīng)過小波變換的低頻系數(shù)(近似系數(shù)),經(jīng)過SVD變換得到右特征矩陣V、奇異值矩陣P、左特征矩陣U,式(14)中0 4)將式(14)中的秘密語音的嵌入點(diǎn)q(嵌入系數(shù)CL中的第q個(gè)點(diǎn))轉(zhuǎn)換為二進(jìn)制比特流{ai}(i=1,…,n),取載體語音高頻系數(shù)CH前面n(n為偶數(shù))個(gè)數(shù)值嵌入,并將其按照降序排列,每隔n個(gè)數(shù)值嵌入一個(gè)信息位,具體嵌入方式為 (16) 式中CHt為原始的第t(t=q+n)個(gè)高頻系數(shù),CH′為更新之后的第i個(gè)高頻系數(shù)值,K為語音嵌入強(qiáng)度,藏好信息位將CH的位置還原。 經(jīng)過反小波變換,把{CL′,CH′ }重新組合為新的含密語音C′。 1)傳遞的密匙為{U1,V1,P,K},得到含密語音C′,將含密語音進(jìn)行小波變換,分別取出來CL′和CH′。 2)取CH′中的前n項(xiàng)值,將其按照降序排列,按照式(17)取秘密語音位置隱藏點(diǎn) (17) (18) 3)按照如下公式進(jìn)行SVD構(gòu)造和分解 CL′=UP1V (19) U1P1V1=D (20) UPV=CL (21) 式中 先將CL′進(jìn)行SVD變換,將奇異值矩陣P1、密匙中的左特征矩陣U1、右特征矩陣V1進(jìn)行SVD反變換,構(gòu)成式(20)中的融合語音D,再經(jīng)一次SVD反變換構(gòu)成式(21)中的CL。 4)提取的秘密語音為 (22) 5)判斷門限值 (23) 式中S(i)為S中的第i個(gè)值。 6)提取出來的比特流進(jìn)行RS譯碼,經(jīng)過逆Logistic變換,得到秘密語音 實(shí)驗(yàn)均采用8 kHz采樣,16 bits量化的語音,取一段4.2 s 載體語音C,取1.54 s秘密語音S,C的長度大于S,分解出來的細(xì)節(jié)系數(shù)CL的長度要大于S的長度,每幀嵌入點(diǎn)隨意,在CL的一部分中隱藏信息,靈活的嵌入點(diǎn)讓信息隱藏更加安全。實(shí)驗(yàn)結(jié)果如圖1所示。 圖1 實(shí)驗(yàn)結(jié)果 1)在客觀上,用信噪比(SNR)來衡量嵌入秘密語音后載體的失真,定義為 (24) 式中C(m)為原始載體語音,C′(m)為含有秘密語音的載體語音,h為秘密語音的長度。 2)用歸一化相關(guān)系數(shù)(NC)來衡量恢復(fù)出的秘密語音的失真,定義為 (25) 式中s(m)為原始的秘密語音,s′(m)為恢復(fù)出的秘密語音。SNR與NC的值越大,說明算法的透明性越好。由該算法計(jì)算出的載體信息的SNR為36.96 dB,密語音的NC值為0.996 8。這些數(shù)據(jù)從客觀上說明該算法的透明性好,而且恢復(fù)出的秘密語音幾乎與原始的秘密語音失真很小,語音的舒適度較好。 本文采用RS對秘密語音進(jìn)行編碼,對比了未進(jìn)行RS編碼的算法,經(jīng)過取MIMIT語音庫中的300條語音的測試,得出信噪比與誤碼率的關(guān)系如圖2。 圖2 提取之后的秘密語音 可以看出,未加RS編碼的誤碼率明顯高于有RS編碼的情況,并且信噪比在20 dB以上時(shí),誤碼率很少,在一定地程度上可以抵抗噪聲,在實(shí)驗(yàn)中還發(fā)現(xiàn),只要誤碼率小于或者等于4 %,恢復(fù)出的秘密語音雖然夾雜著噪聲,但有一定地可懂度,人耳能夠分辨出語音的內(nèi)容 取MIMIT語音庫中300條純凈語音進(jìn)行對比實(shí)驗(yàn),對不同算法的含密語音結(jié)果測量其SNR值,進(jìn)行透明性打分:采用MOS[12]評價(jià)標(biāo)準(zhǔn)進(jìn)行音質(zhì)主觀性打分;測量隱藏量(秘密語音/載體語音長度)。結(jié)果如表1~表4。 表1 魯棒性分析(誤碼率) % 表2 不同載體音樂的SNR值 dB 表3 不同算法的透明程度MOS打分 表4 隱藏量 % 把所選取的300條純凈語音作為載體語音,嵌入秘密信息后,對含密語音進(jìn)行了各種攻擊,攻擊實(shí)驗(yàn)如下:1)帶通濾波。截止頻率為800 Hz和5 kHz;2)加高斯白噪聲,信噪比為20 dB;3)重采樣。將待測音頻先下采樣的方法到44.1 kHz,再上采樣到96 kHz;4)重量化。將音頻從16 bit量化到8 bit再量化為16 bit;5)MP3壓縮。將音頻信號進(jìn)行比特率為64 kbp的壓縮,再解壓縮;6)MP4壓縮。將音頻信號進(jìn)行比特率為 128 kbps的壓縮,再解壓縮。對被攻擊的含密語音進(jìn)行水印提取,并統(tǒng)計(jì)信息誤碼率的平均值,得到表1數(shù)據(jù),可以看出本文算法有較好的魯棒性。 在表3中不同算法使用了不同的載體對含秘密語音進(jìn)行了MOS打分,評分接近5表示語量優(yōu)質(zhì),使用本文算法之后的含密語音,在一定程度的信噪比中,仍然具有可聽性,在表4中,進(jìn)行了隱藏量的對比,對于隱藏一段秘密語音,有時(shí)候情況并不允許傳輸很長的載體,所以隱藏容量一直是算法的一個(gè)重點(diǎn),經(jīng)過測試,本文算法的隱藏容量有一定程度提高。 本文所采用的隱藏算法結(jié)合了LWT和SVD兩種變換,考慮到含密語音在傳輸過程中的抗噪聲干擾問題,在秘密語音中加入了RS編碼,可以糾正一定的錯(cuò)誤碼元,降低了傳輸?shù)恼`碼率,提高了算法的魯棒性。在傳統(tǒng)LWT-SVD算法中,秘密語音的嵌入點(diǎn)不能動(dòng)態(tài)地變化,導(dǎo)致了透明性不高,在本文的算法中,將秘密語音隱藏位置點(diǎn)量化進(jìn)入細(xì)節(jié)系數(shù)中,可以做到秘密語音的動(dòng)態(tài)嵌入,提高了算法透明性。隱藏容量一直都是隱藏算法中重視的問題,本文的算法使得隱藏容量較以前的算法有明顯的提高,本文算法在魯棒性、透明性、隱藏容量上都有極大的改善。1.5 秘密語音提取
2 仿真實(shí)驗(yàn)與結(jié)果分析
2.1 算法實(shí)驗(yàn)結(jié)果
2.2 RS編碼對比實(shí)驗(yàn)
2.3 算法性能的對比實(shí)驗(yàn)
3 結(jié)束語