《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于TMS320C6416T的IP視頻電話加密引擎
基于TMS320C6416T的IP視頻電話加密引擎
來(lái)源:電子技術(shù)應(yīng)用2010年第7期
蔣 華1,2, 賈永興1,2, 楊亞濤1, 楊建喜1
1. 北京電子科技學(xué)院 通信工程系, 北京 100070;2. 西安電子科技大學(xué) 通信工程學(xué)院, 陜西 西安710071
摘要: 采用DSP處理器TMS320C6416T,基于AES分組密碼算法和SPI總線實(shí)現(xiàn)IP視頻電話加密通信。設(shè)計(jì)了系統(tǒng)硬件結(jié)構(gòu),選擇了合理的加密算法和加密方式,提出了高效的通信機(jī)制和數(shù)據(jù)格式,分析了軟硬件設(shè)計(jì)關(guān)鍵環(huán)節(jié)。
關(guān)鍵詞: DSP IP視頻電話 TMS320C6416T SPI AES
中圖分類號(hào):TP309.7
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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

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

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


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

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

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

 表1是CCS軟件Profile對(duì)各函數(shù)指令開(kāi)銷(xiāo)的評(píng)估結(jié)果。


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

 兩種處理器的架構(gòu)和處理速度是不同的,在軟件設(shè)計(jì)上會(huì)有不同的處理方法,若僅考慮DSP速率對(duì)算法速率的影響,本系統(tǒng)加密效率更高。另外,本測(cè)試僅考慮了AES加密算法代碼的指令開(kāi)銷(xiāo),實(shí)際中還要考慮DSP存取數(shù)據(jù)、中斷處理等其他任務(wù)。
    系統(tǒng)首次采用DSP TMS320C6416T處理器,合理的硬件設(shè)計(jì)確保了系統(tǒng)的可靠性,EDMA與McBSP相結(jié)合的通信機(jī)制提高了通信效率,優(yōu)化的軟件設(shè)計(jì)提升了加解密速率。本系統(tǒng)已成功應(yīng)用于IP視頻電話保密通信,經(jīng)擴(kuò)展設(shè)計(jì),也可以應(yīng)用于多媒體服務(wù)器,實(shí)現(xiàn)多通道數(shù)據(jù)加密。本方案對(duì)VOIP、視頻監(jiān)控、視頻會(huì)議等領(lǐng)域具有很高的參考價(jià)值。
參考文獻(xià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] 陳道敏,王正華,彭宇行,等. 流媒體安全技術(shù)研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程,2005,31(6):137-139.
[5] 章登義,毛從武,李永忠. AES算法及其在DSP中優(yōu)化實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與科學(xué), 2005,27(9):7-9.
[6] 任麗香, 馬淑芬, 李方慧. TMS320C6000系列DSPs的原理與應(yīng)用[M]. 北京:電子工業(yè)出版社,2000.
 

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