当前,IP网络百兆甚至千兆的速率已经成为可能,带宽的提升为、在IP网络上传输语音、视频提供了有力的前提条件。IP视频电话越来越多地得到广泛应用并将引领现代通信的潮流。但由于IP网络的开放性,敏感信息可能被轻易地窃取、篡改、非法复制和传播,因此对IP视频通信的保密性和可靠性提出了更高的要求。为了确保IP视频电话端到端的通信安全,必须对SIP信令和RTP音视频数据进行加密处理。
全球最大IP电话提供商Skype在其软件中内嵌了加密系统,安全专家Phil Zimmermann提出了ZRTP密钥协商协议并开发了IP电话安全软件Zfone,这些均采用软件方式实现加密,当处理器性能较低时,这种方式必然会影响到通话质量。为此本文设计了一种适合于IP视频电话的高速硬件加密引擎。
IP视频电话通信具有以下特点:
(1) 占用带宽大。目前常用音频算法编码速率约为10 Kb/s,视频算法编码速率约为1 Mb/s(视不同图像质量和算法而有不同)。
针对这些特点,设计加密引擎协助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所示。
!['></center><br />
SDRAM采用HY57V283220T(4 M×32 bit),工作时钟为133 MHz,用于数据存储。Flash采用39VF800A(8 M×16 bit),存取速度为70 ns,100 000次可擦写,用于程序存储和DSP上电自举。电源为整个系统供电,看门狗用于监视系统的正常运行,JTAG接口用于DSP仿真调试。<br />
IP视频电话终端除了向加密引擎发送待处理数据和命令外,还需具备密钥协商和管理、用户权限控制、网络传输等多种功能。在设计过程中,应重点注意以下问题:<br />
(1) DSP、SDRAM等芯片的功耗较大,需根据具体功耗参数设置合理的电源和地线的布线宽度,注意电路板在物理空间的散热问题;考虑DSP为BGA封装,PCB应采用多层板设计(8层或更多层),设置单独的电源层和地层,以提高系统的可靠性。<br />
(2) DSP工作在1 GHz主频下、SDRAM工作在133 MHz时钟频率下,布局布线时要充分考虑信号的完整性。在实际设计中采用合适的总线拓扑结构、合理的叠层结构,对高速数字信号线在仿真的基础上加入适当的端接消除信号反射,以解决高速信号完整性问题。<br />
<b>2.软件设计</b><br />
<b>2.1 算法选择及加密方式</b><br />
2.1.1 AES算法和工作模式<br />
IP视频电话数据流量大,SIP信令和音视频数据采用UDP方式传输,不可避免地存在数据丢包问题,因而使用分组密码算法较为合适。考虑密码算法的速度和安全性等因素,本系统采用AES分组密码算法实现各种数据端到端加密。<br />
AES算法作为迭代分组密码算法其分组长度和密钥长度均可改变,在使用上更加灵活安全。论证表明,它能够抵抗所有目前技术水平下的已知和潜在的密码攻击,是更加安全可靠的加密算法。AES使用长为32×Nk(Nk=4、6、8)的比特流作为密钥,每次对长为32×Nb(Nb=4、6、8)比特的明文组进行加密,得到的密文组长为32×Nb比特,迭代轮数Nr=Max(Nb,Nk)+6。<br />
AES算法有5种基本工作模式:ECB、CBC、OFB、CFB、CTR。考虑到IP数据包丢失问题,如采用反馈模式需考虑数据同步问题,因而降低了数据处理效率。而ECB模式简单易操作,不存在数据丢失产生的通信同步问题SIP信令中的会话描述符SDP和音视频数据都没有固定的格式,攻击者也难以通过统计特性分析密文,因而采用ECB模式是安全易行的。<br />
2.1.2 数据加密方式<br />
在IP网络中,视频和音频数据是分类打包、分段传输的,因而对它们的加密处理也需单独进行。目前针对视频数据主要有选择性加密和完全加密2种方式[4]。选择性加密利用视频数据的数据结构,对视频流中的部分数据(如I帧)加密,这有利于减小系统开销,但安全性较差。而完全加密不考虑视频数据结构,加密所有视频码流,虽然系统开销较大,但安全性较高。本系统对视频、音频数据、SIP信令均采用完全加密方式。<br />
<b>2.2 通信机制和数据格式</b><br />
2.2.1 通信机制<br />
DSP和IP视频电话终端通过SPI总线通信,SPI作为一种串行同步通信方式,通信速率可达到4 Mb/s或者更高,适合音视频数据传输。在本系统中,将DSP的多通道缓冲串行口McBSP[2]配置为SPI模式,IP视频电话终端配置为主设备,DSP配置为从设备。<br /><div align=center style=](http://cn.ctiforum.com/uploadfile/2012/0609/20120609014240425.gif)