《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于TMS320C6416T的IP視頻電話加密引擎
Digikey(202412)
2024测试测量培训202410
基于TMS320C6416T的IP視頻電話加密引擎
來源:電子技術應用2010年第7期
蔣 華1,2, 賈永興1,2, 楊亞濤1, 楊建喜1
1. 北京電子科技學院 通信工程系, 北京 100070;2. 西安電子科技大學 通信工程學院, 陜西 西安710071
摘要: 采用DSP處理器TMS320C6416T,基于AES分組密碼算法和SPI總線實現(xiàn)IP視頻電話加密通信。設計了系統(tǒng)硬件結構,選擇了合理的加密算法和加密方式,提出了高效的通信機制和數(shù)據(jù)格式,分析了軟硬件設計關鍵環(huán)節(jié)。
中圖分類號:TP309.7
文獻標識碼: A
文章編號: 0258-7998(2010)07-0157-03
Design of IP video phone encryption engine based on TMS320C6416T
JIANG Hua1,2, JIA Yong Xing1,2, YANG Ya Tao1, YANG Jian Xi1
1. Department of Telecommunications Engineering, Beijing Electronic Science and Technology Institute, Beijing 100070, China;2. School of Telecommunications Engineering, Xidian University, Xi′an 710071, China
Abstract: By using TI′s high-speed DSP processor TMS320C6416T, the IP video phone encryption engine is designed based on the AES block cipher algorithm and SPI bus. Hardware structure is given, reasonable encryption algorithm and methods are chosen, efficient communication mechanisms and data formats are proposed, and key aspect of hardware and software design are analyzed.
Key words : IP video phone; TMS320C6416T; SPI; AES

    當前,IP網(wǎng)絡百兆甚至千兆的速率已經成為可能,帶寬的提升為、在IP網(wǎng)絡上傳輸語音、視頻提供了有力的前提條件。IP視頻電話越來越多地得到廣泛應用并將引領現(xiàn)代通信的潮流。但由于IP網(wǎng)絡的開放性,敏感信息可能被輕易地竊取、篡改、非法復制和傳播,因此對IP視頻通信的保密性和可靠性提出了更高的要求。為了確保IP視頻電話端到端的通信安全,必須對SIP信令和RTP音視頻數(shù)據(jù)進行加密處理。
 全球最大IP電話提供商Skype在其軟件中內嵌了加密系統(tǒng),安全專家Phil Zimmermann提出了ZRTP密鑰協(xié)商協(xié)議并開發(fā)了IP電話安全軟件Zfone,這些均采用軟件方式實現(xiàn)加密,當處理器性能較低時,這種方式必然會影響到通話質量。為此本文設計了一種適合于IP視頻電話的高速硬件加密引擎。
   IP視頻電話通信具有以下特點:
 (1) 占用帶寬大。目前常用音頻算法編碼速率約為10 Kb/s,視頻算法編碼速率約為1 Mb/s(視不同圖像質量和算法而有不同)。
   (2)實時性要求高。人的聽覺對時延超過400 ms的語音信號比較敏感。
 (3) SIP信令和RTP音視頻數(shù)據(jù)采用UDP方式傳輸,UDP協(xié)議是面向非連接的協(xié)議,數(shù)據(jù)包在網(wǎng)絡繁忙的情況下可能被丟棄。
 針對這些特點,設計加密引擎協(xié)助IP視頻電話終端完成各類數(shù)據(jù)加密功能,密鑰協(xié)商和密鑰管理由IP視頻電話終端處理,兩者之間通過SPI總線通信。
1 硬件設計
1.1 處理器選擇

 針對IP視頻電話通信的特點處理器可以選擇專用密碼算法芯片,但在使用上缺乏靈活性,如果需要更改密碼算法或者相關參數(shù),需重新設計,因此本系統(tǒng)選用TI公司的DSP處理器TMS320C6416T。TMS320C6416T是基于VelociTI.2TM構架的32位定點高性能DSP處理器,主頻高達1GHz,處理能力可達8 000 MIPS[1]。它采用超長指令字結構(VLIW),每個時鐘周期可以執(zhí)行8條指令。TMS320C6416T內部集成大容量存儲器,采用兩級緩存結構,即一級緩存(L1)和二級緩存(L2)。
 TMS320C6416T強大的計算、數(shù)據(jù)存儲能力大大縮短了實現(xiàn)各種算法的時間,迎合了IP視頻電話通信的實時性要求。它既可用于IP視頻電話終端加密,也可擴展用于其他大流量數(shù)據(jù)加密(如流媒體服務器)。在處理更改加密算法、系統(tǒng)參數(shù)和通信接口方面,相對于專用處理器,DSP更具靈活性和可擴展性。
1.2 硬件結構及注意事項
   加密引擎以TMS320C6416T為核心,包括SDRAM、Flash、電源、JTAG接口、看門狗等。加密引擎和IP視頻電話終端通過SPI總線通信,硬件總體結構如圖1所示。


 DSP作為系統(tǒng)的核心,在完成數(shù)據(jù)加解密運算的同時,還要與IP視頻電話終端實時通信,交互SIP信令、音視頻數(shù)據(jù)、種子密鑰及控制命令等。
 SDRAM采用HY57V283220T(4 M×32 bit),工作時鐘為133 MHz,用于數(shù)據(jù)存儲。Flash采用39VF800A(8 M×16 bit),存取速度為70 ns,100 000次可擦寫,用于程序存儲和DSP上電自舉。電源為整個系統(tǒng)供電,看門狗用于監(jiān)視系統(tǒng)的正常運行,JTAG接口用于DSP仿真調試。
 IP視頻電話終端除了向加密引擎發(fā)送待處理數(shù)據(jù)和命令外,還需具備密鑰協(xié)商和管理、用戶權限控制、網(wǎng)絡傳輸?shù)榷喾N功能。在設計過程中,應重點注意以下問題:
 (1) DSP、SDRAM等芯片的功耗較大,需根據(jù)具體功耗參數(shù)設置合理的電源和地線的布線寬度,注意電路板在物理空間的散熱問題;考慮DSP為BGA封裝,PCB應采用多層板設計(8層或更多層),設置單獨的電源層和地層,以提高系統(tǒng)的可靠性。
   (2) DSP工作在1 GHz主頻下、SDRAM工作在133 MHz時鐘頻率下,布局布線時要充分考慮信號的完整性。在實際設計中采用合適的總線拓撲結構、合理的疊層結構,對高速數(shù)字信號線在仿真的基礎上加入適當?shù)亩私酉盘柗瓷?,以解決高速信號完整性問題。
2 軟件設計
2.1 算法選擇及加密方式
2.1.1 AES算法和工作模式

 IP視頻電話數(shù)據(jù)流量大,SIP信令和音視頻數(shù)據(jù)采用UDP方式傳輸,不可避免地存在數(shù)據(jù)丟包問題,因而使用分組密碼算法較為合適??紤]密碼算法的速度和安全性等因素,本系統(tǒng)采用AES分組密碼算法實現(xiàn)各種數(shù)據(jù)端到端加密。
 AES算法作為迭代分組密碼算法其分組長度和密鑰長度均可改變,在使用上更加靈活安全。論證表明,它能夠抵抗所有目前技術水平下的已知和潛在的密碼攻擊,是更加安全可靠的加密算法。AES使用長為32×Nk(Nk=4、6、8)的比特流作為密鑰,每次對長為32×Nb(Nb=4、6、8)比特的明文組進行加密,得到的密文組長為32×Nb比特,迭代輪數(shù)Nr=Max(Nb,Nk)+6。
    AES算法有5種基本工作模式:ECB、CBC、OFB、CFB、CTR??紤]到IP數(shù)據(jù)包丟失問題,如采用反饋模式需考慮數(shù)據(jù)同步問題,因而降低了數(shù)據(jù)處理效率。而ECB模式簡單易操作,不存在數(shù)據(jù)丟失產生的通信同步問題SIP信令中的會話描述符SDP和音視頻數(shù)據(jù)都沒有固定的格式,攻擊者也難以通過統(tǒng)計特性分析密文,因而采用ECB模式是安全易行的。
2.1.2 數(shù)據(jù)加密方式
 在IP網(wǎng)絡中,視頻和音頻數(shù)據(jù)是分類打包、分段傳輸?shù)模蚨鴮λ鼈兊募用芴幚硪残鑶为氝M行。目前針對視頻數(shù)據(jù)主要有選擇性加密和完全加密2種方式[4]。選擇性加密利用視頻數(shù)據(jù)的數(shù)據(jù)結構,對視頻流中的部分數(shù)據(jù)(如I幀)加密,這有利于減小系統(tǒng)開銷,但安全性較差。而完全加密不考慮視頻數(shù)據(jù)結構,加密所有視頻碼流,雖然系統(tǒng)開銷較大,但安全性較高。本系統(tǒng)對視頻、音頻數(shù)據(jù)、SIP信令均采用完全加密方式。
2.2 通信機制和數(shù)據(jù)格式
2.2.1 通信機制

 DSP和IP視頻電話終端通過SPI總線通信,SPI作為一種串行同步通信方式,通信速率可達到4 Mb/s或者更高,適合音視頻數(shù)據(jù)傳輸。在本系統(tǒng)中,將DSP的多通道緩沖串行口McBSP[2]配置為SPI模式,IP視頻電話終端配置為主設備,DSP配置為從設備。
 采用中斷方式接收或發(fā)送數(shù)據(jù)會增加CPU的負擔。將增強型存儲器直接訪問EDMA[3]與McBSP結合使用,使得CPU加解密數(shù)據(jù)與EDMA數(shù)據(jù)接收或發(fā)送并行進行,將大大提高DSP的運行效率。具體流程為:(1)DSP通過McBSP接收待處理數(shù)據(jù),將數(shù)據(jù)保存在指定映射的存儲器中,隨后EDMA通道搬運數(shù)據(jù)至片內L2緩存以供CPU提取并處理;(2)CPU加解密處理完成后,通過相反的路徑發(fā)送給IP視頻電話終端。為確保CPU數(shù)據(jù)處理和EDMA數(shù)據(jù)傳輸同步,在L2緩存開辟一對乒乓緩存(Ping-Pong Buffer),分別用于接收和發(fā)送數(shù)據(jù)。
2.2.2 數(shù)據(jù)格式
    為了便于處理器之間的數(shù)據(jù)交互,定義通信數(shù)據(jù)格式如下:
    數(shù)據(jù)頭標志:長度為2 B,表示一個數(shù)據(jù)包的起始。
 數(shù)據(jù)類型:長度為2 B,定義0x0001為IP視頻電話終端發(fā)送的待加密數(shù)據(jù),0x0010表示IP視頻電話終端發(fā)送的待解密數(shù)據(jù),0x0100表示DSP回送給IP視頻電話終端的已加密數(shù)據(jù),0x1000表示DSP回送給IP視頻電話終端的已解密數(shù)據(jù),0x0101表示IP視頻電話終端發(fā)送的種子密鑰,0x1010表示其他控制數(shù)據(jù)。
    數(shù)據(jù)長度:長度為2 B,表示待處理數(shù)據(jù)的有效字節(jié)數(shù)。以太網(wǎng)幀的最大長度是1 500 B,因此不能超過這個長度。
 數(shù)據(jù)頭校驗和:長度為2 B,防止頭部因傳輸錯誤而執(zhí)行誤操作。
 RTP數(shù)據(jù)載荷:小于1 500 B,表示加/解密數(shù)據(jù)、種子密鑰、控制數(shù)據(jù)等。
2.3 軟件設計要點
 根據(jù)DSP系統(tǒng)架構,考慮AES算法和通信數(shù)據(jù)的特點,充分發(fā)揮DSP的數(shù)據(jù)處理能力是軟件設計的重點。
2.3.1 AES算法優(yōu)化設計
 AES的輪函數(shù)由字節(jié)變換、行位移、列混合、密鑰加4個部件組成[5]。(1)字節(jié)變換是非線性變換,獨立地對狀態(tài)的每個字節(jié)進行變換,可用代換表(S盒)的方式實現(xiàn);(2)行移位是將狀態(tài)陣列的各行進行循環(huán)移位;(3)列混合使用有限域上的矩陣乘法,可以用查表操作實現(xiàn);(4)密鑰加可以通過執(zhí)行一個32位“異或”運算來實現(xiàn)。通過算法優(yōu)化,可將有限域矩陣乘法和S盒簡化為查表和“異或”兩種基本運算,并充分利用DSP處理器32位總線結構特點,大大降低了算法復雜度。
2.3.2 使用軟件流水技術
 AES是迭代分組密碼,共Nr輪迭代,一般采用C循環(huán)程序實現(xiàn),循環(huán)是影響系統(tǒng)實時性的一個重要因素。軟件流水技術用于設置循環(huán)內指令的運行方式,使循環(huán)的多次迭代能夠并行執(zhí)行。程序應該考慮合理的循環(huán)迭代次數(shù),以保證軟件流水能夠順利進行。將循環(huán)展開可以增加及并行執(zhí)行指令數(shù),從而改進流水編排,提升循環(huán)性能。同時應該正確使用pragma指示和-ms、-mh等編譯選項。
2.3.3 合理設置CCS編譯器選項
    使用const關鍵字定義變量可提高代碼性能和穩(wěn)定性;聯(lián)合使用-pm與-o3選項可進行程序級優(yōu)化并有效地消除相關性;-mt選項有利于消除存儲器相關性;這些選項都能大大提升代碼的執(zhí)行速度[6]。測試表明,選擇C代碼優(yōu)化選項,可使AES算法的執(zhí)行速度提高近一倍。
    系統(tǒng)關鍵代碼如下:
  void main()
  {                                       //初始化CSL
  CSL_init();
                                                                 //SPI配置
  McBSP_config(&McBSPConfig);
                                               //乒乓方式EDMA配置
  EDMA_config(hEDMAPing, &EDMAConfigRcv);
  EDMA_config(hEDMAPong, &EDMAConfigSnd);
                                                                //密鑰擴展
  KeyExpansion(CipherKey,ExpandedKey);
  while(1)
  {                //EDMA傳輸完成后對數(shù)據(jù)加解密密處理
  if(EDMAFlag)
  DataProcessing();
  }
  }
3 測試結果
3.1 加密速率

 表1是CCS軟件Profile對各函數(shù)指令開銷的評估結果。


 在該測試中,取Nb=Nk=4,Nr=10。經過DataProcessing運算加密1 536字節(jié)數(shù)據(jù),總指令開銷128600。取DSP速率8 000 MIPS,則運行時間為128 600/8 000=16.075 μs,加密運算速率為1 536×8/16.075=765.41 Mb/s。該數(shù)據(jù)吞吐量完全滿足了IP視頻電話的實時性要求。
3.2 效率對比
 參考文獻[5]在TMS320C54x DSP上實現(xiàn)了AES算法,表2給出兩種實現(xiàn)方式的對比。

 兩種處理器的架構和處理速度是不同的,在軟件設計上會有不同的處理方法,若僅考慮DSP速率對算法速率的影響,本系統(tǒng)加密效率更高。另外,本測試僅考慮了AES加密算法代碼的指令開銷,實際中還要考慮DSP存取數(shù)據(jù)、中斷處理等其他任務。
    系統(tǒng)首次采用DSP TMS320C6416T處理器,合理的硬件設計確保了系統(tǒng)的可靠性,EDMA與McBSP相結合的通信機制提高了通信效率,優(yōu)化的軟件設計提升了加解密速率。本系統(tǒng)已成功應用于IP視頻電話保密通信,經擴展設計,也可以應用于多媒體服務器,實現(xiàn)多通道數(shù)據(jù)加密。本方案對VOIP、視頻監(jiān)控、視頻會議等領域具有很高的參考價值。
參考文獻
[1] Texas Instruments Incorporated. TMS320C6414T, TMS320C  6415T and TMS320C6416T fixed-point digital signal processors[Z]. 2008.
[2] Texas Instruments Incorporated. TMS320C6000 DSP Enhanced direct memory access (EDMA) controller reference ruide[Z]. 2004.
[3] Texas Instruments Incorporated. TMS320C6000 DSP Multichannel Buffered Serial Port (McBSP) Reference Guide[M]. 2004.
[4] 陳道敏,王正華,彭宇行,等. 流媒體安全技術研究與實現(xiàn)[J]. 計算機工程,2005,31(6):137-139.
[5] 章登義,毛從武,李永忠. AES算法及其在DSP中優(yōu)化實現(xiàn)[J]. 計算機工程與科學, 2005,27(9):7-9.
[6] 任麗香, 馬淑芬, 李方慧. TMS320C6000系列DSPs的原理與應用[M]. 北京:電子工業(yè)出版社,2000.
 

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