GSM手機(jī)端到端安全加密通信系統(tǒng)
1 概述
1.1 研究背景
GSM是基于TDMA方式的蜂窩移動(dòng)通信標(biāo)準(zhǔn),可提供語(yǔ)音、數(shù)據(jù)、短消息及WAP上網(wǎng)等業(yè)務(wù),是移動(dòng)通信的主流網(wǎng)絡(luò),也是國(guó)民經(jīng)濟(jì)各行各業(yè)重要的通信手段。大量涉及商業(yè)以及個(gè)人的敏感信息通過(guò)GSM手機(jī)傳遞,必然要求GSM網(wǎng)絡(luò)有更好的安全性。
較之深受竊聽(tīng)和盜用危害的第一代模擬移動(dòng)通信系統(tǒng),GSM的安全保密性能有了較大的提高,但其安全功能是不完整和不徹底的,其中隱患之一便是GSM僅支持空中接口加密[1]。
圖1.1 現(xiàn)有GSM網(wǎng)絡(luò)僅支持空中接口加密
圖1.2 端到端安全加密通信
如圖1.1所示,移動(dòng)臺(tái)和基站收發(fā)臺(tái)之間的無(wú)線鏈路信息以密文方式傳輸,而GSM網(wǎng)絡(luò)內(nèi)部有線鏈路信息以明文方式傳輸,現(xiàn)有的GSM網(wǎng)絡(luò)不能提供端到端的安全加密通信,不法分子可以從某種途徑竊聽(tīng)和盜取數(shù)據(jù)。本作品目標(biāo)便是解決GSM的這一缺陷,如圖1.2所示,真正實(shí)現(xiàn)端到端安全加密通信。
1.2 國(guó)內(nèi)外研究動(dòng)態(tài)
國(guó)內(nèi)外市場(chǎng)上有一些實(shí)現(xiàn)手機(jī)端到端安全加密通信的產(chǎn)品與解決方案。對(duì)這些產(chǎn)品進(jìn)行技術(shù)分析后可以發(fā)現(xiàn),其技術(shù)路線是基于GSM數(shù)據(jù)通道,利用傳統(tǒng)加密算法實(shí)現(xiàn)端到端安全加密通信的。例如GSMK Cryptophone 200型號(hào)的手機(jī),基于GSM數(shù)據(jù)信道傳輸,采用AES算法加密和SHA256哈希函數(shù),密鑰交換采用 Diffie-Hellman協(xié)議。
從傳輸用戶信息的角度來(lái)看,GSM系統(tǒng)提供了三種方式,即話音方式、短消息方式和數(shù)據(jù)方式。其中數(shù)據(jù)傳輸方式提供的靈活性最大,適合于傳輸加密話音。只要話音編碼速率足夠低,GSM網(wǎng)絡(luò)能夠保證足夠的QoS來(lái)保證語(yǔ)音的端到端傳輸,模擬話音信號(hào)編碼生成的數(shù)字話音信號(hào)加密后就可以通過(guò)GSM數(shù)據(jù)信道傳輸,實(shí)現(xiàn)移動(dòng)臺(tái)與移動(dòng)臺(tái)、移動(dòng)臺(tái)與有線用戶間的話音端到端加密功能。
但是使用數(shù)據(jù)通道也有如下的缺點(diǎn):
(1)由于建立連接和運(yùn)用自動(dòng)重傳機(jī)制造成的延時(shí)過(guò)大問(wèn)題;
(2)GSM數(shù)據(jù)通道在通過(guò)國(guó)際網(wǎng)絡(luò)上存在互用性的問(wèn)題;
(3)數(shù)據(jù)通道的兩端不能使用現(xiàn)有的移動(dòng)網(wǎng)絡(luò)的業(yè)務(wù),需要申請(qǐng)額外的業(yè)務(wù)類型。
可見(jiàn),數(shù)據(jù)信道的算法雖然是目前比較成熟的,但是其致命的弱點(diǎn)是不可避免的延時(shí)和網(wǎng)絡(luò)互用性問(wèn)題,使其不是用來(lái)進(jìn)行實(shí)時(shí)語(yǔ)音通話的最佳選擇。
綜上所述,為了提供實(shí)時(shí)語(yǔ)言安全傳輸,需要借助數(shù)據(jù)通道以外的途徑進(jìn)行安全設(shè)計(jì)。
1.3 設(shè)計(jì)動(dòng)機(jī)與預(yù)期功能
通過(guò)分析可知,GSM網(wǎng)絡(luò)的承載通道除了前述不受限的數(shù)據(jù)通道,還有13k bit/s的編碼語(yǔ)音通道。能否基于GSM的語(yǔ)音通道,最終實(shí)現(xiàn)GSM網(wǎng)絡(luò)的端到端安全加密通信,本文對(duì)這個(gè)問(wèn)題進(jìn)行了深入的探索與研究。
語(yǔ)音通道方式是GSM 系統(tǒng)標(biāo)準(zhǔn)的語(yǔ)音傳送方式,所有對(duì)語(yǔ)音信號(hào)編解碼的規(guī)范都是標(biāo)準(zhǔn)的,在網(wǎng)絡(luò)中傳輸時(shí)按照GSM 協(xié)議的規(guī)定對(duì)原始話音進(jìn)行處理。為了降低數(shù)字信號(hào)的比特率,需要在保持重建語(yǔ)音質(zhì)量的前提下對(duì)語(yǔ)音進(jìn)行編解碼。語(yǔ)音編解碼技術(shù)對(duì)通過(guò)語(yǔ)音信道加密的方案有很大的影響。GSM中采用的規(guī)則脈沖激勵(lì)—長(zhǎng)時(shí)預(yù)測(cè)(RPE-LTP)編碼器是一種基于語(yǔ)音冗余壓縮技術(shù)的參量編碼器。在參量編碼器中,語(yǔ)音信號(hào)是用一組模型的特征參量來(lái)表示,它是由原始語(yǔ)音信號(hào)通過(guò)計(jì)算得到的。
因此,如果在聲碼器編碼之前用傳統(tǒng)算法加密的話,話音加密后成為白噪聲,此時(shí)基于話音冗余壓縮技術(shù)的聲碼器失效,從而還原不出原始語(yǔ)音信號(hào);而如果直接在手機(jī)聲碼器編碼后加密的話,由于在基站需要先解密然后才能解碼,所以需要改造基站設(shè)備。
由此推導(dǎo)出本作品的設(shè)計(jì)原則:
1、使用語(yǔ)音信道:由于數(shù)據(jù)信道的缺點(diǎn),排除數(shù)據(jù)通道而選用語(yǔ)音信道。
2、無(wú)法使用信道加密:上述的分析說(shuō)明不能進(jìn)行信道加密。
3、只能利用網(wǎng)絡(luò)現(xiàn)有的信道傳輸能力傳輸加密后的信息。
因此,本作品確定采用信源加密的技術(shù)方案。該方案在語(yǔ)音信號(hào)進(jìn)入聲碼器之前,采用一種針對(duì)聲碼器原理不破壞語(yǔ)音信號(hào)的語(yǔ)音特性的加密方法,從而可以在接收端恢復(fù)出原來(lái)的語(yǔ)音信號(hào)。本方案不需要改造基站設(shè)備,因此對(duì)通訊網(wǎng)絡(luò)而言是透明的,只需要改造終端設(shè)備即可,以較小的代價(jià)換得高強(qiáng)度的安全。
2 系統(tǒng)方案設(shè)計(jì)
基于上述的分析與設(shè)計(jì)原則,本作品的系統(tǒng)框圖如圖2.1所示,左側(cè)的麥克風(fēng)與耳機(jī),通過(guò)A/D、D/A輸入/輸出正常的語(yǔ)音信號(hào)。在A/D、D/A后加入一個(gè)加解密模塊,完成語(yǔ)音加解密。同步模塊在加解密模塊之后,能實(shí)現(xiàn)同步信號(hào)的產(chǎn)生與檢測(cè)?;芈曇种颇K起到消回聲作用。右側(cè)的麥克風(fēng)與耳機(jī),完成與加密語(yǔ)音發(fā)送,以及密文語(yǔ)音接收功能。系統(tǒng)需要兩端手機(jī)均安裝同樣的系統(tǒng)模塊。系統(tǒng)加載在GSM手機(jī)的麥克風(fēng)、耳機(jī)前端,功能為:
1)本系統(tǒng)麥克風(fēng)采集原始語(yǔ)音,通過(guò)本系統(tǒng)加密后將密文語(yǔ)音傳輸原始手機(jī)麥克風(fēng);
2)原始手機(jī)耳機(jī)獲得密文語(yǔ)音,通過(guò)本系統(tǒng)解密后將明文語(yǔ)音本系統(tǒng)耳機(jī)。
圖2.1 作品系統(tǒng)框圖
工作流程為:
* 加密過(guò)程:輸入語(yǔ)音信號(hào)由麥克風(fēng)輸入AD變換模塊,再經(jīng)語(yǔ)音加密模塊處理,接著插入同步信息,DA變換后通過(guò)手機(jī)麥克風(fēng)插口輸入手機(jī),經(jīng)手機(jī)中的聲碼器壓縮后射頻輸出。
* 解密過(guò)程:加密語(yǔ)音信號(hào)由手機(jī)中聲碼器解壓后,通過(guò)手機(jī)耳機(jī)插口輸出到AD模塊,做回聲抑制后進(jìn)行同步檢測(cè),接著送到解密模塊解密處理,最終DA變換后輸出對(duì)方原始的語(yǔ)音信號(hào)。
為了快速語(yǔ)音加解密,需要設(shè)計(jì)適用于硬件架構(gòu)的、安全快速的加解密算法,本作品設(shè)計(jì)了抗RPE-LTP壓縮編碼的語(yǔ)音加解密算法。
3 抗RPE-LTP壓縮編碼的語(yǔ)音加解密算法研究
3.1 算法總體框架
本算法針對(duì)RPE-LTP壓縮編解碼的特性,對(duì)人類自然語(yǔ)音信號(hào)進(jìn)行變換處理,使之成為不可懂的聲音信號(hào),實(shí)現(xiàn)加密;同時(shí)保證加密語(yǔ)音信號(hào)在通過(guò)RPE-LTP編碼器后能被對(duì)方的解碼器恢復(fù),且經(jīng)過(guò)解密可成為可懂原始語(yǔ)音信號(hào),從而完成全部加解密過(guò)程。
算法的主要思路為:
1、 首先把原始語(yǔ)音分解成符合RPE-LTP編解碼要求的單位幀;
2、 接著根據(jù)分組密碼的原理,通過(guò)選擇合適的加密矩陣對(duì)分解后的單位幀依次在頻域和時(shí)域上進(jìn)行置亂;
3、 最終合成的不可懂語(yǔ)音信號(hào)通過(guò)RPE-LTP編碼后送入GSM傳輸信道,在接收端進(jìn)行逆向解密即可。
圖2.2 GSM系統(tǒng)語(yǔ)音信號(hào)加密原理圖
如圖2.2所示,整個(gè)語(yǔ)音加密過(guò)程在虛線框部分,由語(yǔ)音分解、頻域置亂、語(yǔ)音幀置亂和類語(yǔ)音合成四部分組成。反之,語(yǔ)音解密過(guò)程由類語(yǔ)音分解、幀置亂解密、頻域置亂解密和語(yǔ)音合成四部分組成。其中各模塊的功能與加密過(guò)程相對(duì)應(yīng)。
其中語(yǔ)音分解算法的要求是找到一種合適的分解方法,便于進(jìn)行后續(xù)的加密置亂運(yùn)算,并且易于合成符合RPE-LTP壓縮編碼要求的模擬語(yǔ)音。另外,類語(yǔ)音合成算法將加密置亂后的信號(hào)合成符合RPE-LTP壓縮編碼要求的類似語(yǔ)音信號(hào)。
下面重點(diǎn)介紹本設(shè)計(jì)中頻域置亂、語(yǔ)音幀置亂與算法參數(shù)選擇的設(shè)計(jì)。
3.2 頻域置亂
在時(shí)域加密置亂之前加上一步頻域置亂,可以提高整個(gè)加密算法的強(qiáng)度。本設(shè)計(jì)具體的做法是:首先對(duì)一定長(zhǎng)度語(yǔ)音數(shù)據(jù)作N點(diǎn)FFT(N可以取2的冪次以提高運(yùn)算速度),得到一個(gè)頻譜序列,取在語(yǔ)音頻率范圍(300~3400Hz)內(nèi)的M點(diǎn),組成M行×1列的矩陣x,然后對(duì)這個(gè)序列進(jìn)行置亂,這相當(dāng)于乘上一個(gè)M行×M列的置亂矩陣P,那么置亂后的序列為Px,最后對(duì)此序列求IFFT,即從頻域返回到時(shí)域。
令M為明文信息,k1、r為算法密鑰,由k1、r產(chǎn)生的加密矩陣為Pk1、r,Qk1、r為解密矩陣(即Pk1、r-1),C為密文,則有:
置亂矩陣P的選取有以下幾點(diǎn)限制:1)保證置亂后的序列再求IFFT得到的是實(shí)序列;2)保證只對(duì)300~3400 Hz范圍內(nèi)的點(diǎn)進(jìn)行置亂;3)保證最后得到的語(yǔ)音的剩余可懂度很小。
滿足上述限制條件的矩陣有很多,其中有一種比較簡(jiǎn)單的形式是這樣的[4]:
M=N*(3400-300) / fs =3100N / fs(fs是采樣頻率),表示頻率在300~3400Hz內(nèi)的點(diǎn)數(shù),稱為有效FFT點(diǎn)數(shù)。k1和r都是密鑰,k1可以取與M互質(zhì)并且小于M的自然數(shù),r可以取小于M的自然數(shù)。
這樣頻域置亂的加密強(qiáng)度(本文中指密鑰空間)就是M*f(M)(f(M)表示滿足條件的k1的個(gè)數(shù))。由此可見(jiàn),采樣頻率一定,N的大小會(huì)影響該算法的加密強(qiáng)度,所以N的選取應(yīng)該同時(shí)考慮運(yùn)算速度和加密強(qiáng)度兩方面的因素。
3.3 語(yǔ)音幀置亂
令M為明文信息,k2為算法密鑰,由k2產(chǎn)生的加密矩陣為Pk2’, Qk2’為解密矩陣(即Pk2’-1),C為密文,則有:
令分組長(zhǎng)度為T(mén),那么時(shí)域語(yǔ)音幀置亂的加密強(qiáng)度(密鑰空間)為T(mén)!。由于我們采用的是兩級(jí)加密技術(shù),結(jié)合前面頻域置亂,整個(gè)加密算法的加密強(qiáng)度(密鑰空間)為M*f(M)*T!。
3.4 算法參數(shù)選擇
通過(guò)大量實(shí)驗(yàn)研究,發(fā)現(xiàn)對(duì)測(cè)試結(jié)果有較大影響的因素有兩個(gè):語(yǔ)音分解幀尺寸和分組長(zhǎng)度。我們主要選擇語(yǔ)音分解幀長(zhǎng)為5ms、10ms、20ms、分組長(zhǎng)度為15幀、20幀、25幀共九種情況進(jìn)行了研究分析。
通過(guò)測(cè)試和比較,發(fā)現(xiàn)以20ms作為語(yǔ)音分解幀長(zhǎng),加密語(yǔ)音可以基本解密恢復(fù),而且所恢復(fù)的語(yǔ)音可以很好地滿足人耳的可懂度要求。同時(shí)根據(jù)聲碼器的編解碼原理,20ms作為單位幀長(zhǎng)能保持信號(hào)的語(yǔ)音特性。因此本方案將選擇20ms作為語(yǔ)音分解幀長(zhǎng)。
對(duì)于分組長(zhǎng)度(用n表示),從整個(gè)加密算法的加密強(qiáng)度公式,可以發(fā)現(xiàn)n越大,算法的加密強(qiáng)度就越大,但考慮整個(gè)加解密系統(tǒng)的延時(shí)等因素,n必須取一個(gè)合適的值。通過(guò)大量仿真測(cè)試結(jié)果發(fā)現(xiàn),分組長(zhǎng)度取20或25可以在這對(duì)矛盾間取得一個(gè)好的平衡。
總之,本算法結(jié)合了語(yǔ)音信號(hào)處理和分組密碼加密運(yùn)算的特點(diǎn),具有對(duì)RPE-LTP壓縮編碼很好的恢復(fù)性,其加密強(qiáng)度也可滿足需求。
4 同步算法研究
對(duì)于一個(gè)通信系統(tǒng)而言,接收端的同步是一個(gè)必須考慮的問(wèn)題;對(duì)于語(yǔ)音加解密系統(tǒng)而言,它將會(huì)直接關(guān)系到接收端解密的準(zhǔn)確性。
要精確完成同步,考慮在語(yǔ)音幀中插入同步幀,對(duì)于同步幀有以下幾點(diǎn)要求:
1)要求同步幀能順利通過(guò)GSM的語(yǔ)音編碼器,并且經(jīng)過(guò)聲碼器后還能順利被檢測(cè)出來(lái)。
2)同步幀是插在數(shù)據(jù)幀中的,并不用于攜帶話音信息,所以如果同步幀取得較長(zhǎng),將會(huì)帶來(lái)較大延時(shí),影響通信系統(tǒng)的性能。因此在確保精確同步的情況下,同步幀應(yīng)取的盡量短。
3)同步幀的波形經(jīng)自相關(guān)運(yùn)算后的峰值須足夠高,以便和普通語(yǔ)音信號(hào)區(qū)別出來(lái),否則會(huì)影響同步位置的判決,造成誤判。
鑒于以上三點(diǎn)考慮,選擇正弦波序列作為同步幀。正弦波序列能夠順利通過(guò)GSM系統(tǒng)的聲碼器不發(fā)生大的波形畸變。此外,正弦波序列的自相關(guān)函數(shù)峰值等參數(shù)符合作為同步幀的要求,能夠在較短的長(zhǎng)度內(nèi)完成精確同步。對(duì)于同步幀的插入位置,采用在算法中固定下來(lái)的方式,在每個(gè)置亂單元的起始位置插入同步幀,較之隨機(jī)插入的方法,簡(jiǎn)單但同樣有效。
5 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)具體實(shí)現(xiàn)分硬件和軟件兩部分,具體架構(gòu)如圖5.1所示:
圖5.1 系統(tǒng)具體架構(gòu)
為了實(shí)現(xiàn)全雙工通信,我們?cè)O(shè)計(jì)并制作了一塊拓展電路板,通過(guò)開(kāi)發(fā)板拓展槽插口實(shí)現(xiàn)連接。兩路語(yǔ)音通道均使用McBSP傳輸ADDA數(shù)據(jù),開(kāi)發(fā)板上語(yǔ)音芯片使用I2C總線初化,拓展板上的語(yǔ)音芯片采用McBSP時(shí)鐘停止模式下的SPI總線進(jìn)行初始化。
圖5.2拓展板上AIC23B的接口示意圖
圖5.3 拓展音頻模塊實(shí)物圖
此外,為了實(shí)現(xiàn)作品能夠通過(guò)手機(jī)的語(yǔ)音接口實(shí)現(xiàn)即插即用,我們對(duì)手機(jī)配件的耳麥線路進(jìn)行了改造。
整個(gè)語(yǔ)音加解密軟件包括語(yǔ)音分解算法模塊,語(yǔ)音加解密算法模塊,類語(yǔ)音合成算法模塊三部分。其中語(yǔ)音分解幀大小為20ms,加解密處理幀數(shù)為28,最后實(shí)現(xiàn)抗RPE-LTP壓縮的語(yǔ)音加解密。語(yǔ)音信號(hào)同步模塊用于為加密后的語(yǔ)音提供同步。我們選取一幀正弦波序列作為同步頭,每196幀數(shù)據(jù)插入一幀同步頭序列,在接收端用相同正弦波序列進(jìn)行檢測(cè)。
此外,我們通過(guò)減小加解密算法的復(fù)雜度并采用DMA技術(shù)以減小通話時(shí)延。回聲抑制和自適應(yīng)同步檢測(cè)算法的應(yīng)用可以提高通話語(yǔ)音的質(zhì)量。
6 結(jié)果與測(cè)試
本作品測(cè)試時(shí)需兩部手機(jī),測(cè)試地點(diǎn)需有中國(guó)移動(dòng)或中國(guó)聯(lián)通的信號(hào)覆蓋。測(cè)試工具為Cool Edit軟件以及matlab軟件,前者主要用于錄音及時(shí)域分析,后者則用于頻域分析。
測(cè)試點(diǎn)位置參見(jiàn)圖6.1。其中的語(yǔ)音加密模塊包含了語(yǔ)音分解、加密和合成算法。我們對(duì)抽樣量化后的語(yǔ)音A、加密后的語(yǔ)音B、經(jīng)RPE-LTP編解碼后的語(yǔ)音C,以及解密后的語(yǔ)音D分別進(jìn)行了測(cè)試比較。