閆應(yīng)天
摘要:針對語音信號的加密問題,基于MATLAB軟件編程,利用移頻函數(shù)對語音信號進(jìn)行移頻加密,并在此基礎(chǔ)上給出了一種改進(jìn)方法,將一個(gè)語音信號進(jìn)行分割加密,從而提高加密的效果。
關(guān)鍵詞:MATLAB;語音加密;分割加密;移頻
中圖分類號:TP313 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)28-0161-03
Speech Signal Encryption Based on Frequency Shift Function
YAN Ying-tian
(Department of Computer Science and Technology LVliang University, Lishi 033000, China)
Abstract: Aiming at the problem of encryption of speech signal, based on MATLAB software programming, using frequency shift function to shift frequency encryption, and on this basis, an improved method is presented to segment a speech signal into encryption, so as to improve the effect of encryption.
Key words: MATLAB; speech encryption; segmentation encryption; frequency shift
信號的加密在軍事上是一項(xiàng)非常重要的技術(shù),各種加密的方法也在不斷地被超越。信號加密是一個(gè)國家軍事戰(zhàn)略計(jì)劃中極其重要的一部分。本文以語音信號為研究對象,借助于MATLAB軟件,對語音信號進(jìn)行離散Fourier變換,再對頻域上的信號進(jìn)行頻率搬遷,從而實(shí)現(xiàn)信號的加密。
1 語音加密原理
語音信號通常是指人類發(fā)出與人類可以接收的信號。人耳可以分辨的聲音頻率從300~3400Hz;對于低于或者高于此范圍的聲音,人耳無法對其識別。
一段時(shí)間固定的語音信號在MATLAB中是以一個(gè)長度為的一維數(shù)組V所存儲的,其中T為語音信號的固定時(shí)間長度,F(xiàn)s為信號的采樣頻率。本文中采樣頻率一般取較大,為22050Hz。對于數(shù)組V,可以看成一段離散時(shí)間的數(shù)值序列,可以對其進(jìn)行離散Fourier變換(FFT),將其變換到頻域上,得到數(shù)組Y。Y為一維復(fù)數(shù)數(shù)組,我們再對Y進(jìn)行頻域上的搬遷,理論上只要搬遷超過3000Hz就可以實(shí)現(xiàn)加密的效果,但是實(shí)際中通常會取大一點(diǎn)。
對于搬遷(即調(diào)制)所選的頻率f,f就是我們的‘密碼,再對語音信號進(jìn)行解密的時(shí)候,必須知道調(diào)制的頻率f,才能夠進(jìn)行正確解密(解調(diào)),否則就會出現(xiàn)‘密碼錯(cuò)誤的情況,得到的結(jié)果自然也是錯(cuò)誤的。
2 語音加密方法
2.1 移頻函數(shù)[cosωct]
對于一個(gè)函數(shù)信號y=f(t) (t>0),假設(shè)其Fourier變換為[F(jω)],[F(jω)]為f(t)在頻域上的表示形式。
考慮函數(shù)[g(t)=f(t)×cosωct[2]],假設(shè)g(t)對應(yīng)的Fourier變換為[G(jω)],根據(jù)Fourier變換的卷積特性我們可以得到:
[G(jω)=12πF(jω)?π[δ(ω+ωc)+δ(ω-ωc)]]
利用卷積的性質(zhì)可以求出:
[G(jω)=12[F(j(ω-ωc))+F(j(ω+ωc))]]
可以看出,此時(shí)的頻譜向左右各平移[ωc],并且幅度變?yōu)樵瓉淼囊话搿2⑶倚盘柕男螤畋3植蛔?,但是在時(shí)域上看來,信號已經(jīng)完全變化了。這時(shí),只要我們加的[ωc]能夠使得信號移動到人耳所能分辨的頻率范圍之外,那么就實(shí)現(xiàn)了加密的功能。
同樣解密的時(shí)候,將再乘以[cosωct],那么得到的頻域中的表達(dá)形式為:
[G1(jω)=14[F(j(ω-2ωc))+F(j(ω+2ωc))]+12F(jω)]
此時(shí)只要使用一個(gè)低通濾波器就可以將[G1(jω)]中高階分量[F(j(ω-2ωc))+F(j(ω+2ωc))]兩項(xiàng)濾去,從而得到原函數(shù),不過幅度變?yōu)榱嗽瓉淼囊话搿?/p>
2.2 加密過程及結(jié)果
對于一個(gè)語音信號,其原始波形如下圖所示:
該信號是一個(gè)離散時(shí)間信號,可用離散Fourier變換對其進(jìn)行頻域分析,得到其幅頻曲線如下所示:
從這個(gè)曲線中我們可以看到,幅度最大的部分大約小于3000Hz,并且在兩條最高的幅度之間還有間隙,這就證明在小于某個(gè)頻率之間人類是識別不出也發(fā)不出的。鑒于此曲線,先對該信號進(jìn)行低通濾波,截止頻率選擇3000Hz,得到幅頻曲線如圖3:
此處可以清晰地看到,頻率大于3000Hz的分量全都被濾除了。
這時(shí)對信號進(jìn)行加密,即加上信號,這里的=7000Hz,調(diào)制后得到的語音信號的幅頻曲線如下圖4:
該曲線橫坐標(biāo)可以看出,原信號的中心頻率為0,此時(shí)經(jīng)過載波的搬遷作用,中心頻率變?yōu)榱?7000Hz和7000Hz。同時(shí)從縱坐標(biāo)可以看出,幅度變?yōu)榱嗽瓉淼囊话?。但是曲線的整體形狀沒有變化,整個(gè)信號具有保真性。
此時(shí)聲音播放出來聽到的都是刺耳的尖鳴聲,人耳根本無法分辨出來原始的信號是什么。
此時(shí)如果進(jìn)行解密,必須知道原始的載波頻率的值才能夠進(jìn)行解調(diào)。如果不知道載波頻率,比如我們此時(shí)加上一個(gè)頻率為7500Hz的解調(diào)信號,得到的信號波形圖如下(已濾波):
這時(shí)候幅頻曲線雖然已經(jīng)和原信號很接近,但是還是有一些差別,此時(shí)的聲音播放出來,依舊無法分辨清楚具體內(nèi)容。
正確解調(diào)后,所得的波形圖基本和原信號一致,此時(shí)也能清楚分辨出信號聲音內(nèi)容。
3 改進(jìn)的加密方法
3.1 分割加密
上述討論的加密方法具有一定的可行性,但是由于只有一個(gè)調(diào)制頻率,得到的結(jié)果加密性不強(qiáng),只要對加密信號進(jìn)行頻譜分析,然后多嘗試幾次解調(diào),基本就可以大致解密,得到原始信號的信息。
但是上述方法簡單實(shí)用,如果能對上述方法進(jìn)行改進(jìn),肯定是非常不錯(cuò)的。那么如何進(jìn)行改進(jìn)呢?一種很自然的想法就是加長密碼長度。
前面的方法中,密碼只是一個(gè)載波頻率,通常只有三位有效數(shù)字(此時(shí)已經(jīng)能分辨出具體語音信息了),容易被破解。但是如果單純的加大載波頻率那么效率會非常低,載波頻率加大10倍,密碼有效位數(shù)才能加大一位。
這里提出一種分割的思想。我們對一個(gè)語音信號分成N段,然后將每一段看成是一個(gè)待加密的子信號,然后我們對每個(gè)子信號進(jìn)行加密,假如第i子信號的載波頻率為,這樣的話我們就得到了N個(gè)載波頻率,這N個(gè)頻率數(shù)字就組成了一長串密碼,我們還可以對這N個(gè)數(shù)字進(jìn)行位置排列,這樣就可以大大加強(qiáng)密碼的可靠性,同時(shí)實(shí)現(xiàn)簡單。
3.2 分割加密結(jié)果
對于圖3所示的信號,我們將其分割成六等份,每份所加的載波頻率如下:
從這個(gè)信號幅頻曲線中,雖然我們可以看出每部分的中心頻率,但是無法得到每部分頻率的順序,所以很難得到正確的密碼,如果將子信號數(shù)量變多,那么加密的效果就會越好。此時(shí)的聲音播放出來無法分辨出來。假如我們知道了密碼的一部分,即解調(diào)時(shí)各部分對應(yīng)頻率如下:
得到的信號幅頻曲線如下:
此時(shí)得到的信號幅度曲線雖然和原信號很像,但是播放出來之后聲音呈現(xiàn)斷斷續(xù)續(xù)的情況,無法分辨出正確信息。
4 結(jié)語
原始加密方法簡單易行,但是可靠性不高,容易被破解。采用分割思想之后,大大提高了加密的可靠性,同時(shí)也保留了原始調(diào)制加密方法的簡單性,總體來說,這種分割的思想比較有創(chuàng)新性,對于一般的信號加密都能夠完成,簡單可靠。
參考文獻(xiàn):
[1] 孟橋,董志芳,王瓊.信號與系統(tǒng)MATLAB實(shí)踐[M].北京:高等教育出版社,2008:122-136.
[2] 管致中, 夏恭恪, 孟橋. 信號與線性系統(tǒng)[M]. 北京: 高等教育出版社,2011:89-108.