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