《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Nios II的語音加密傳輸系統(tǒng)設計
基于Nios II的語音加密傳輸系統(tǒng)設計
嚴迎建,任 方,付小兵,王志新
(信息工程大學 電子技術學院,河南 鄭州450004)
摘要: 設計并實現(xiàn)了一個基于Nios II的語音加密傳輸系統(tǒng)。介紹了進行語音信號處理的功能模塊,包括語音采集回放模塊、基于G.729A的語音壓縮與解壓縮模塊和基于AES的數(shù)據(jù)加解密模塊。在控制模塊的協(xié)調下,使得語音數(shù)據(jù)通過MODEM能夠在公共電話網(wǎng)中安全地傳輸,實現(xiàn)了語音的保密通信。
Abstract:
Key words :

摘  要: 設計并實現(xiàn)了一個基于Nios II語音加密傳輸系統(tǒng)。介紹了進行語音信號處理的功能模塊,包括語音采集回放模塊、基于G.729A的語音壓縮與解壓縮模塊和基于AES的數(shù)據(jù)加解密模塊。在控制模塊的協(xié)調下,使得語音數(shù)據(jù)通過MODEM能夠在公共電話網(wǎng)中安全地傳輸,實現(xiàn)了語音的保密通信。
關鍵詞: Nios II;語音加密;G.729A;AES

  由于缺乏保密措施,使得電話竊聽事件不斷發(fā)生,嚴重威脅著個人隱私、軍事商業(yè)秘密甚至地區(qū)或國家的信息安全。因此,以語音壓縮和數(shù)據(jù)加密為基礎的語音加密傳輸技術受到人們關注。G.729A是G.729(共軛結構代數(shù)碼本激勵線性預測編碼方案CS-ACELP)的簡化方案[1,2],降低了計算的復雜度以便于實時實現(xiàn)。美國國家標準和技術研究所(NIST)在眾多的分組密碼中經(jīng)過三輪篩選,選中Rijndael算法[3,4]作為高級數(shù)據(jù)加密標準(AES)。
  本文基于G.729A和AES,結合Nios II[5]設計了一種語音加密傳輸系統(tǒng),對通信內容進行加密,有效防止了因通話內容被竊聽而引起的泄密。
1 總體結構
  語音加密傳輸系統(tǒng)主要包括語音處理模塊、語音傳輸模塊、控制模塊及相應語音輸入輸出設備。其中語音模塊由語音采集回放模塊、語音編解碼模塊、加解密模塊三部分組成。系統(tǒng)總體設計如圖1所示,系統(tǒng)各部分功能如下。

   (1)語音采集回放模塊:此模塊實現(xiàn)語音的采集及回放,一方面,此模塊接收由麥克傳來的模擬語音,通過A/D轉換,生成數(shù)字語音;另一方面,此模塊接收來自語音編解碼器傳來的解壓過的語音數(shù)據(jù),經(jīng)過D/A轉換,將數(shù)字語音還原成模擬語音,經(jīng)揚聲設備輸出。
  (2)語音編解碼模塊:對語音進行編解碼,就是通過對語音的壓縮與還原,能在較低速率下傳送優(yōu)質的語音。語音編解碼器包括編碼器與譯碼器。編碼器對采集回放模塊傳來的原始數(shù)字語音信息進行處理,對數(shù)字語音信號進行分析,提取語音參數(shù),將壓縮后的數(shù)據(jù)送到數(shù)據(jù)加密模塊。譯碼器的作用是接收來自數(shù)據(jù)加解密模塊的數(shù)據(jù),經(jīng)過對數(shù)據(jù)的解壓,把這些數(shù)據(jù)恢復成原始的數(shù)字語音信息,再傳送至語音采集回放模塊。
  (3)加解密模塊:語音加解密模塊是保證語音通信安全的核心。加解密模塊接收來自數(shù)字語音解壓縮器的數(shù)據(jù),并對其進行加密,然后發(fā)送至通信傳輸模塊,將數(shù)據(jù)通過調制解調器傳送至公共電話網(wǎng);同時,加解密模塊要接收來自通信模塊的數(shù)據(jù),將其解密后傳送至數(shù)字語音解壓縮器,進行數(shù)據(jù)的解壓。
  (4)通信傳輸模塊:在控制模塊的控制下,當系統(tǒng)一方的控制模塊檢測到撥號信息或者接收到另一方請求時,與對方完成互聯(lián);在雙方建立連接的基礎上,通信傳輸模塊將數(shù)據(jù)轉換為可以在公共電話網(wǎng)上傳輸?shù)臄?shù)據(jù),進行加密語音數(shù)據(jù)的傳輸。
  (5)Nios II系統(tǒng)控制模塊:當通信一方發(fā)起或者接收到通信請求時,Nios II系統(tǒng)控制模塊控制整個系統(tǒng)的協(xié)調運行,使通信雙方能夠安全地通信。
2 系統(tǒng)設計
2.1 硬件功能模塊設計
  本設計以Nios II微處理器為核心,實現(xiàn)語音采集回放、數(shù)字語音編解碼和加解密等功能,通過調制解調器進行數(shù)據(jù)交換,實現(xiàn)了語音的加密傳輸。經(jīng)過對設計的研究與分析,結合DE1開發(fā)板,將整個系統(tǒng)硬件劃分為語音處理模塊和語音傳輸模塊,系統(tǒng)總體硬件結構框圖如圖2所示。

2.1.1 語音采集回放模塊
  本模塊是語音加密通信的起點和終點,利用開發(fā)板上提供的24 bit CD-Quality Audio CODEC芯片完成系統(tǒng)的語音信號A/D、D/A轉換。CODEC芯片中封裝了WM8731編解碼器,其采樣率為8 kHz~96 kHz可變。它是一款低電壓并集成有耳機驅動的編解碼器,提供立體音和單一麥克風音頻輸入,并具有降低輸入噪聲、可編程音量控制以及適合于電氣型麥克風的輸出電壓可增益的特點。WM8731內部有11個寄存器,該芯片的初始化和內部功能設置是通過I2C控制模塊對其內部的這11個寄存器進行相應的配置實現(xiàn)的。本設計中WM8731工作于從模式,采樣頻率設為48 kHz,轉換的數(shù)據(jù)位長度為16 bit,WM8731的寄存器參數(shù)(十六進制)設置如表1。


  根據(jù)芯片寄存器的特點和功能,要進行I2C控制模塊的設計,并以IP核的形式通過SoPC Builder連接到系統(tǒng)的Avalon總線上。I2C控制模塊通過該模塊中I2C_SDAT數(shù)據(jù)端口,向目標寄存器寫入相應的控制信息,達到對WM8731工作狀態(tài)的配置。
2.1.2 G.729A語音編解碼模塊
  基于CELP編碼模型的G.729A處理語音幀,以每秒8 000樣點進行采樣,每10 ms對應80個樣點為1幀,語音質量與32 kb/s的ADPCM相當。
   (1)編碼器
  G.729A編碼器的工作原理如圖3所示。在預處理塊中,輸入的語音信號首先進行高通濾波并按比例放縮,對預處理后的語音每10 ms計算一次LP濾波器系數(shù),把LP系數(shù)轉換成為線頻譜對系數(shù)LSP,并將LSP系數(shù)利用預測式兩級矢量量化(VQ)量化為18 bit。激勵信號用分析合成(ABS)搜索算法進行選擇,在該算法中,依據(jù)感覺加權失真測度使原始與重建語音信號間的誤差最小。

      具體上是重構語音與預處理后語音的誤差,通過自適應感覺加權濾波器,搜索最小的濾波后誤差,感覺加權濾波器的自適應系數(shù)由未量化的LP系數(shù)控制。G.729A的激勵參數(shù)(自適應和固定碼書)每5 ms(40個樣點)子幀確定一次。首先一個開環(huán)基音延遲每10 ms幀基于感覺加權語音信號估算一次,使LP殘差信號通過加權合成濾波器獲得目標信號。濾波器的初始狀態(tài)是通過對LP殘差信與激勵之間的誤差進行濾波來更新的。在得到加權合成濾波器的沖擊響應后,就可以利用沖擊響應和目標信號進行閉環(huán)基音分析(尋找自適應碼書的時延和增益)。在考慮自適應碼書的影響后更新目標信號,用于搜索固定碼書。自適應碼書和固定碼書搜索完成后用7 bit進行矢量量化。最后濾波器的記憶值由已確定的激勵信號來更新。
  (2)解碼器
  G.729A解碼器原理如圖4所示。首先,從接收到的比特流中提取參數(shù)標號,這些標號被譯碼以獲得對應一個10 ms語音幀的編碼參數(shù)。這些參數(shù)是LSP,2個分數(shù)基音延遲,2個固定碼書矢量,2組自適應碼書和固定碼書增益。LSP系數(shù)在每一子幀中進行插值并轉化為LP濾波器系數(shù)。然后,對每5 ms子幀進行如下操作: 將自適應碼書和固定碼書乘以各自增益后相加,獲得激勵;用LP合成濾波器對激勵濾波,獲得合成語音;合成語音通過一個包括長時和短時合成濾波器的自適應后濾波器進行增強,然后經(jīng)高通濾波和定標去除得到最終的重建語音。

2.1.3 AES加解密模塊
        G.729A的語音編碼幀為80 bit/10 ms,根據(jù)對語音進行分幀編碼和傳輸?shù)奶攸c,在利用該聲碼器構造語音保密通信時選用分組密碼。本文采用高級加密標準AES完成數(shù)字語音信號的加解密,為了提高AES加解密速度,將AES加解密過程設計成Nios II的一條自定義指令。
  (1)AES算法及硬件實現(xiàn)
        AES加密模塊工作原理如下:在運算控制模塊(Control)控制下,待加密明文與初始圈密鑰進行異或(AddRoundKey),接著進行Nr次圈迭代變換,除最后一圈(第Nr圈)省略列混合變換處,每圈包含字節(jié)代替變換(ByteSub)、行移位變換(ShiftRow)、列混合變換(MixColumn)和圈密鑰加法(AddRoundKey)四步變換。
        解密工作過程與加密相類似,待脫密的密文與初始圈密鑰進行異或(AddRoundKey),然后進行Nr圈迭代運算,除最后一圈(第Nr圈)省略逆列混合變換外,每圈包含逆字節(jié)代替變換(InvByteSub)、逆行移位變換(InvShiftRow)、逆列混合變換(InvMixColumn)、圈密鑰加(AddRoundKey)四步變換。
       G.729A的語音編碼幀為80 bit/10 ms,每秒所需加密的數(shù)據(jù)約為8 Kbit,因此,在滿足語音加密的情況下,本文采用循環(huán)方式實現(xiàn)AES,節(jié)省硬件資源。其硬件加解密結構及其相關控制信號如圖5所示。

        (2)自定義指令邏輯
  Nios II自定制AES加密指令的內部硬件結構如圖6所示。從圖6可以看到用戶自定義邏輯功能(AES)連接到了ALU的2個輸入端以及ALU的輸出端,當使用Nios II的自定義指令時,Nios II內部的ALU操作將被放棄,以用戶自定義邏輯的輸出結果作為有效結果。

  AES加解密模塊設計得到的自定義邏輯在多個時鐘周期完成,采用多周期自定義指令結構。涉及的信號線在dataa、datab、result 的基礎上增加了clk、clk_en、reset、start 4個信號。其指令結構如圖7所示。

2.1.4 通信傳輸模塊
  通信傳輸模塊利用MODEM在公共電話網(wǎng)PSTN上實現(xiàn)通信。PSTN網(wǎng)絡覆蓋面廣,用戶通過MODEM就可以方便地完成對接,實現(xiàn)通信,這在現(xiàn)有條件下非常實用。
  MODEM通過RS232接口與DE1相連,通過RJ45與PSTN網(wǎng)絡相連,解析來自Nios II控制系統(tǒng)的命令,來實現(xiàn)通信雙方的互連通信。
  (1)工作原理
  通信發(fā)起方使用鍵盤撥對方號碼,Nios II控制系統(tǒng)采集到撥號信息,組裝成為MODEM撥號的AT命令[6],MODEM根據(jù)命令撥號;對方的MODEM接收到撥號信息,發(fā)出來電提醒,開啟語音處理功能,雙方便可通信。MODEM對經(jīng)過加密的語音分組信息進行封裝,使其適合在PSTN網(wǎng)絡上傳輸。接收方MODEM接收到數(shù)據(jù)包,對其解封裝,等待解密處理。在本系統(tǒng)中,MODEM工作于半雙工方式。
  (2)MODEM與Nios II控制模塊的連接
  系統(tǒng)要正常工作,需要MODEM與Nios II控制系統(tǒng)間進行交互,用到的信號如圖8所示,各信號的功能如下:

  DSR:表示MODEM電源已接上,已處于可用的狀態(tài)。
  RTS:請求發(fā)送信號,串行通信接口用RTS來向MODEM表示發(fā)送數(shù)據(jù)的請求,該信號應控制MODEM進入發(fā)送狀態(tài)或打開MODEM的發(fā)送器。
  CTS:清除發(fā)送信號,又稱為允許發(fā)送,是MODEM對RTS的響應信號,表示MODEM已作好發(fā)送的準備,收到CTS后即可輸出發(fā)送的數(shù)據(jù)。
  DCD:數(shù)據(jù)載波檢測信號,向終端設備表示MODEM已收到通信鏈路上的數(shù)據(jù)載波信號,通知另一方準備接收。
  TXD:發(fā)送數(shù)據(jù)信號,把終端欲發(fā)送的數(shù)據(jù)串行送往MODEM。
  RXD:接收數(shù)據(jù)信號,接收從MODEM串行發(fā)來的數(shù)據(jù)。
  SG:信號地,連接設備和通信設備的信號地。
  由于使用了公共電話網(wǎng)(PSTN),因此在上述7個信號的基礎上增加了DTR和RI兩個信號。振鈴指示RI通知系統(tǒng),MODEM已收到交換臺送來的振鈴呼叫信號;然后系統(tǒng)啟動數(shù)據(jù)準備好DTR信號送給MODEM作為對RI的響應。當RI和DTR信號握手聯(lián)絡上以后,MODEM才可以“接線”以建立通信鏈路;當數(shù)據(jù)傳送結束后,應復位這些信號以指示“拆線”,讓出通信鏈路。
2.2 Nios II控制模塊設計
  控制模塊利用Nios II IDE集成開發(fā)環(huán)境進行開發(fā),控制從撥號(接聽)、語音采集、編解碼、加解密、傳輸、掛機的整個系統(tǒng)工作。
2.2.1 建立通信
  撥號用的鍵盤連接在DE1開發(fā)板的PS2口上,采用中斷方式與處理器進行交互。當控制模塊接收到鍵盤中斷后,讀取用戶按鍵信息。根據(jù)撥號信息,控制模塊通過RS232向MODEM發(fā)出相應含有撥號信息的AT命令,MODEM撥相應的號碼;接聽方MODEM發(fā)出振鈴指示后,根據(jù)命令為通話雙方建立連接。
2.2.2 語音處理控制
  Nios II控制模塊實現(xiàn)對語音處理的控制,其主要功能是讀取一個語音處理模塊的結果,并將其按將要進行的處理寫入下一個功能模塊。控制模塊操縱I2C控制語音采集回放模塊采集語音并數(shù)字化,然后將數(shù)字語音信號送到編解碼模塊進行編解碼,進而調用Nios II自定義的AES指令,對數(shù)據(jù)進行加密,最后通過MODEM發(fā)送數(shù)據(jù)。在接收方, MODEM讀取對方發(fā)送過來的語音數(shù)據(jù),控制模塊調用Nios II自定義AES指令對數(shù)據(jù)進行解密,再將解密后的數(shù)據(jù)寫入語音編解碼模塊進行解碼,最后調用語音采集回放模塊還原語音。
2.2.3 通信結束控制
  在通話過程中,如果檢測到通信中斷或者通信一方結束通信的信息,則向各功能模塊發(fā)出復位信號,同時控制MODEM復位于待機狀態(tài),通信結束。
  本設計適用于對語音保密通信有需求的政府機關、軍隊等,也適合需要保密的商業(yè)通信。采用本系統(tǒng)用戶可以像使用普通電話機一樣,實現(xiàn)語音保密通信。本設計系統(tǒng)使用方便,通過調制解調器進行連接,可以在現(xiàn)有的PSTN電話網(wǎng)上使用。如果將調制解調器改進為CDMA DTU等無線調制方式,則用戶還可以進行無線保密通信。
參考文獻
[1] ITU-T Rec.G.729(03/96) Coding of Speech at 8 kbit/s Using Conjugate-Structure Algebraic-Code-Excited Linear-Prediction[S].
[2] ITU-T Rec.G.729 Annex A(11/96) Reduced Complexity 8 kbit/s CS-ACELP Speech CODEC[S].
[3] FIPS-197.Advanced Encryption Standard(AES)[S].2001.
[4] DAEMEN J ,RIJMEN V.The design of rijndael:AES-the  advanced encryption stand[M].Berlin:Springer-Verlag,2002.
[5] 李蘭英.Nios II嵌入式軟核SOPC設計原理及應用[M].北京:北京航空航天大學出版社,2006.
[6] Gilbred Held.調制解調器參考大全[M].田學鋒,王剛譯. 北京:電子工業(yè)出版社,1996.
 

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。