《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于TMS320C6416T的IP视频电话加密引擎
基于TMS320C6416T的IP视频电话加密引擎
来源:电子技术应用2010年第7期
蒋 华1,2, 贾永兴1,2, 杨亚涛1, 杨建喜1
1. 北京电子科技学院 通信工程系, 北京 100070;2. 西安电子科技大学 通信工程学院, 陕西 西安710071
摘要: 采用DSP处理器TMS320C6416T,基于AES分组密码算法和SPI总线实现IP视频电话加密通信。设计了系统硬件结构,选择了合理的加密算法和加密方式,提出了高效的通信机制和数据格式,分析了软硬件设计关键环节。
中图分类号: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网络百兆甚至千兆的速率已经成为可能,带宽的提升为、在IP网络上传输语音、视频提供了有力的前提条件。IP视频电话越来越多地得到广泛应用并将引领现代通信的潮流。但由于IP网络的开放性,敏感信息可能被轻易地窃取、篡改、非法复制和传播,因此对IP视频通信的保密性和可靠性提出了更高的要求。为了确保IP视频电话端到端的通信安全,必须对SIP信令和RTP音视频数据进行加密处理。
 全球最大IP电话提供商Skype在其软件中内嵌了加密系统,安全专家Phil Zimmermann提出了ZRTP密钥协商协议并开发了IP电话安全软件Zfone,这些均采用软件方式实现加密,当处理器性能较低时,这种方式必然会影响到通话质量。为此本文设计了一种适合于IP视频电话的高速硬件加密引擎。
   IP视频电话通信具有以下特点:
 (1) 占用带宽大。目前常用音频算法编码速率约为10 Kb/s,视频算法编码速率约为1 Mb/s(视不同图像质量和算法而有不同)。
   (2)实时性要求高。人的听觉对时延超过400 ms的语音信号比较敏感。
 (3) SIP信令和RTP音视频数据采用UDP方式传输,UDP协议是面向非连接的协议,数据包在网络繁忙的情况下可能被丢弃。
 针对这些特点,设计加密引擎协助IP视频电话终端完成各类数据加密功能,密钥协商和密钥管理由IP视频电话终端处理,两者之间通过SPI总线通信。
1 硬件设计
1.1 处理器选择

 针对IP视频电话通信的特点处理器可以选择专用密码算法芯片,但在使用上缺乏灵活性,如果需要更改密码算法或者相关参数,需重新设计,因此本系统选用TI公司的DSP处理器TMS320C6416T。TMS320C6416T是基于VelociTI.2TM构架的32位定点高性能DSP处理器,主频高达1GHz,处理能力可达8 000 MIPS[1]。它采用超长指令字结构(VLIW),每个时钟周期可以执行8条指令。TMS320C6416T内部集成大容量存储器,采用两级缓存结构,即一级缓存(L1)和二级缓存(L2)。
 TMS320C6416T强大的计算、数据存储能力大大缩短了实现各种算法的时间,迎合了IP视频电话通信的实时性要求。它既可用于IP视频电话终端加密,也可扩展用于其他大流量数据加密(如流媒体服务器)。在处理更改加密算法、系统参数和通信接口方面,相对于专用处理器,DSP更具灵活性和可扩展性。
1.2 硬件结构及注意事项
   加密引擎以TMS320C6416T为核心,包括SDRAM、Flash、电源、JTAG接口、看门狗等。加密引擎和IP视频电话终端通过SPI总线通信,硬件总体结构如图1所示。


 DSP作为系统的核心,在完成数据加解密运算的同时,还要与IP视频电话终端实时通信,交互SIP信令、音视频数据、种子密钥及控制命令等。
 SDRAM采用HY57V283220T(4 M×32 bit),工作时钟为133 MHz,用于数据存储。Flash采用39VF800A(8 M×16 bit),存取速度为70 ns,100 000次可擦写,用于程序存储和DSP上电自举。电源为整个系统供电,看门狗用于监视系统的正常运行,JTAG接口用于DSP仿真调试。
 IP视频电话终端除了向加密引擎发送待处理数据和命令外,还需具备密钥协商和管理、用户权限控制、网络传输等多种功能。在设计过程中,应重点注意以下问题:
 (1) DSP、SDRAM等芯片的功耗较大,需根据具体功耗参数设置合理的电源和地线的布线宽度,注意电路板在物理空间的散热问题;考虑DSP为BGA封装,PCB应采用多层板设计(8层或更多层),设置单独的电源层和地层,以提高系统的可靠性。
   (2) DSP工作在1 GHz主频下、SDRAM工作在133 MHz时钟频率下,布局布线时要充分考虑信号的完整性。在实际设计中采用合适的总线拓扑结构、合理的叠层结构,对高速数字信号线在仿真的基础上加入适当的端接消除信号反射,以解决高速信号完整性问题。
2 软件设计
2.1 算法选择及加密方式
2.1.1 AES算法和工作模式

 IP视频电话数据流量大,SIP信令和音视频数据采用UDP方式传输,不可避免地存在数据丢包问题,因而使用分组密码算法较为合适。考虑密码算法的速度和安全性等因素,本系统采用AES分组密码算法实现各种数据端到端加密。
 AES算法作为迭代分组密码算法其分组长度和密钥长度均可改变,在使用上更加灵活安全。论证表明,它能够抵抗所有目前技术水平下的已知和潜在的密码攻击,是更加安全可靠的加密算法。AES使用长为32×Nk(Nk=4、6、8)的比特流作为密钥,每次对长为32×Nb(Nb=4、6、8)比特的明文组进行加密,得到的密文组长为32×Nb比特,迭代轮数Nr=Max(Nb,Nk)+6。
    AES算法有5种基本工作模式:ECB、CBC、OFB、CFB、CTR。考虑到IP数据包丢失问题,如采用反馈模式需考虑数据同步问题,因而降低了数据处理效率。而ECB模式简单易操作,不存在数据丢失产生的通信同步问题SIP信令中的会话描述符SDP和音视频数据都没有固定的格式,攻击者也难以通过统计特性分析密文,因而采用ECB模式是安全易行的。
2.1.2 数据加密方式
 在IP网络中,视频和音频数据是分类打包、分段传输的,因而对它们的加密处理也需单独进行。目前针对视频数据主要有选择性加密和完全加密2种方式[4]。选择性加密利用视频数据的数据结构,对视频流中的部分数据(如I帧)加密,这有利于减小系统开销,但安全性较差。而完全加密不考虑视频数据结构,加密所有视频码流,虽然系统开销较大,但安全性较高。本系统对视频、音频数据、SIP信令均采用完全加密方式。
2.2 通信机制和数据格式
2.2.1 通信机制

 DSP和IP视频电话终端通过SPI总线通信,SPI作为一种串行同步通信方式,通信速率可达到4 Mb/s或者更高,适合音视频数据传输。在本系统中,将DSP的多通道缓冲串行口McBSP[2]配置为SPI模式,IP视频电话终端配置为主设备,DSP配置为从设备。
 采用中断方式接收或发送数据会增加CPU的负担。将增强型存储器直接访问EDMA[3]与McBSP结合使用,使得CPU加解密数据与EDMA数据接收或发送并行进行,将大大提高DSP的运行效率。具体流程为:(1)DSP通过McBSP接收待处理数据,将数据保存在指定映射的存储器中,随后EDMA通道搬运数据至片内L2缓存以供CPU提取并处理;(2)CPU加解密处理完成后,通过相反的路径发送给IP视频电话终端。为确保CPU数据处理和EDMA数据传输同步,在L2缓存开辟一对乒乓缓存(Ping-Pong Buffer),分别用于接收和发送数据。
2.2.2 数据格式
    为了便于处理器之间的数据交互,定义通信数据格式如下:
    数据头标志:长度为2 B,表示一个数据包的起始。
 数据类型:长度为2 B,定义0x0001为IP视频电话终端发送的待加密数据,0x0010表示IP视频电话终端发送的待解密数据,0x0100表示DSP回送给IP视频电话终端的已加密数据,0x1000表示DSP回送给IP视频电话终端的已解密数据,0x0101表示IP视频电话终端发送的种子密钥,0x1010表示其他控制数据。
    数据长度:长度为2 B,表示待处理数据的有效字节数。以太网帧的最大长度是1 500 B,因此不能超过这个长度。
 数据头校验和:长度为2 B,防止头部因传输错误而执行误操作。
 RTP数据载荷:小于1 500 B,表示加/解密数据、种子密钥、控制数据等。
2.3 软件设计要点
 根据DSP系统架构,考虑AES算法和通信数据的特点,充分发挥DSP的数据处理能力是软件设计的重点。
2.3.1 AES算法优化设计
 AES的轮函数由字节变换、行位移、列混合、密钥加4个部件组成[5]。(1)字节变换是非线性变换,独立地对状态的每个字节进行变换,可用代换表(S盒)的方式实现;(2)行移位是将状态阵列的各行进行循环移位;(3)列混合使用有限域上的矩阵乘法,可以用查表操作实现;(4)密钥加可以通过执行一个32位“异或”运算来实现。通过算法优化,可将有限域矩阵乘法和S盒简化为查表和“异或”两种基本运算,并充分利用DSP处理器32位总线结构特点,大大降低了算法复杂度。
2.3.2 使用软件流水技术
 AES是迭代分组密码,共Nr轮迭代,一般采用C循环程序实现,循环是影响系统实时性的一个重要因素。软件流水技术用于设置循环内指令的运行方式,使循环的多次迭代能够并行执行。程序应该考虑合理的循环迭代次数,以保证软件流水能够顺利进行。将循环展开可以增加及并行执行指令数,从而改进流水编排,提升循环性能。同时应该正确使用pragma指示和-ms、-mh等编译选项。
2.3.3 合理设置CCS编译器选项
    使用const关键字定义变量可提高代码性能和稳定性;联合使用-pm与-o3选项可进行程序级优化并有效地消除相关性;-mt选项有利于消除存储器相关性;这些选项都能大大提升代码的执行速度[6]。测试表明,选择C代码优化选项,可使AES算法的执行速度提高近一倍。
    系统关键代码如下:
  void main()
  {                                       //初始化CSL
  CSL_init();
                                                                 //SPI配置
  McBSP_config(&McBSPConfig);
                                               //乒乓方式EDMA配置
  EDMA_config(hEDMAPing, &EDMAConfigRcv);
  EDMA_config(hEDMAPong, &EDMAConfigSnd);
                                                                //密钥扩展
  KeyExpansion(CipherKey,ExpandedKey);
  while(1)
  {                //EDMA传输完成后对数据加解密密处理
  if(EDMAFlag)
  DataProcessing();
  }
  }
3 测试结果
3.1 加密速率

 表1是CCS软件Profile对各函数指令开销的评估结果。


 在该测试中,取Nb=Nk=4,Nr=10。经过DataProcessing运算加密1 536字节数据,总指令开销128600。取DSP速率8 000 MIPS,则运行时间为128 600/8 000=16.075 μs,加密运算速率为1 536×8/16.075=765.41 Mb/s。该数据吞吐量完全满足了IP视频电话的实时性要求。
3.2 效率对比
 参考文献[5]在TMS320C54x DSP上实现了AES算法,表2给出两种实现方式的对比。

 两种处理器的架构和处理速度是不同的,在软件设计上会有不同的处理方法,若仅考虑DSP速率对算法速率的影响,本系统加密效率更高。另外,本测试仅考虑了AES加密算法代码的指令开销,实际中还要考虑DSP存取数据、中断处理等其他任务。
    系统首次采用DSP TMS320C6416T处理器,合理的硬件设计确保了系统的可靠性,EDMA与McBSP相结合的通信机制提高了通信效率,优化的软件设计提升了加解密速率。本系统已成功应用于IP视频电话保密通信,经扩展设计,也可以应用于多媒体服务器,实现多通道数据加密。本方案对VOIP、视频监控、视频会议等领域具有很高的参考价值。
参考文献
[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] 陈道敏,王正华,彭宇行,等. 流媒体安全技术研究与实现[J]. 计算机工程,2005,31(6):137-139.
[5] 章登义,毛从武,李永忠. AES算法及其在DSP中优化实现[J]. 计算机工程与科学, 2005,27(9):7-9.
[6] 任丽香, 马淑芬, 李方慧. TMS320C6000系列DSPs的原理与应用[M]. 北京:电子工业出版社,2000.
 

此内容为AET网站原创,未经授权禁止转载。