采用DSP处理器和SPI总线实现IP视频电话高速硬件加密引擎的应用方案

作者:蒋华,贾永兴,杨亚涛,杨建喜
当前,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。它采用超长指令字结构(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个部件组成。(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、视频监控、视频会议等领域具有很高的参考价值。


国内首款量产的车规级共晶工艺封装灯珠
应用于医疗监护仪扩展接口的I2C总线分析器的设计
如何用MOS管实现防反接电路以及降压电路呢?
区块链技术将可以解决WiFi网络存在的重大安全漏洞
什么是无线网关,无线网关的功能都有哪些
采用DSP处理器和SPI总线实现IP视频电话高速硬件加密引擎的应用方案
联邦快递的燃料电池电动货车已经用于运送货物了
更懂企业用户,皓丽会议电视的双模式有什么不同?
腾达携多款新品惊艳亮相2018天翼智能生态博览会
关于荧光定量瘦肉精检测仪的详细介绍
糖果翻译手机S30评测 非常适合出国旅游的朋友
适用于锂电池保护板的国产场MOS管HC160N10L
iPhone8上市时间或延迟3个月 Apple Watch和Imagination躺枪
大唐移动弥补TD-SCDMA网络不足,实现WLAN网络与TD网络共存
前途汽车前路漫漫,究竟该如何从竞争激烈的电动汽车市场突围成功?
3D可视化管理推进能源革命,效率提高95%
如何才能让DPoS共识机制实现真正的去中心化
科普一下先进工艺22nm FDSOI和FinFET的基础知识
骨传导耳机的优缺点是什么,骨传导耳机的工作原理
2017CES华为/小米/索尼有什么大招?