微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于TMS320C6416T的IP视频电话加密引擎

基于TMS320C6416T的IP视频电话加密引擎

时间:11-28 来源:互联网 点击:
2.1.2 数据加密方式

在IP网络中,视频和音频数据是分类打包、分段传输的,因而对它们的加密处理也需单独进行。目前针对视频数据主要有选择性加密和完全加密2种方式。选择性加密利用视频数据的数据结构,对视频流中的部分数据(如I帧)加密,这有利于减小系统开销,但安全性较差。而完全加密不考虑视频数据结构,加密所有视频码流,虽然系统开销较大,但安全性较高。本系统对视频、音频数据、SIP信令均采用完全加密方式。

2.2 通信机制和数据格式

2.2.1 通信机制

DSP和IP视频电话终端通过SPI总线通信,SPI作为一种串行同步通信方式,通信速率可达到4 Mb/s或者更高,适合音视频数据传输。在本系统中,将DSP的多通道缓冲串行口McBSP配置为SPI模式,IP视频电话终端配置为主设备,DSP配置为从设备。

采用中断方式接收或发送数据会增加CPU的负担。将增强型存储器直接访问EDMA与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选项有利于消除存储器相关性;这些选项都能大大提升代码的执行速度。测试表明,选择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 效率

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top