多通道高速数据安全传输系统的设计与实现

0 引言

近几年来,随着电子信息技术的飞速发展,物联网、云计算和大数据等新型的应用涌现,规模庞大的数据集呈爆炸式增长[1],这对现代数据传输系统的数据传输能力提出了更高的要求;与此同时,新的黑客技术、更先进的电子窃听和信息截获篡改等技术的出现也使得信息的安全性受到很大的威胁。因此,在信息全球化的今天,数据传输能力和安全性两方面兼顾已逐渐成为现代数据传输系统发展的重要方向[2]

本文提出了一种基于CPU+FPGA的架构方案,为解决现代数据传输系统所遇到的上述问题提供一个思路。此方案以CPU作为整个系统的控制大脑,完成软件和资源配置的同时也负责实现多路通道的动态切换和选择,以适应不同的工作需求。同时充分利用FPGA的硬件并行处理和逻辑运算能力实现数据的加解密,并在FPGA已有的I/O接口资源基础上采用TI公司的高速串行收发器TLK2711设计稳定可靠的高速串行接口模块[3],最终实现多通道高速数据安全传输系统。

如图1所示,多通道高速数据安全传输系统主要由主控模块、密码处理模块以及接口转换与适配模块等组成。

多通道高速数据安全传输系统的设计与实现

1.1 主控模块设计

主控模块由CPU、存储芯片以及配套的外围电路组成。考虑到安全方面,CPU选用的是国产低功耗芯片龙芯1A,主要实现系统与外部通信以及动态配置和管理FPGA等功能;存储芯片选用的是AT24C64,存储容量为64 Kbit,主要为程序和相应的初始配置文件、参数等提供存储空间。

1.2 密码处理模块设计

密码处理模块主要由FPGA和噪声源芯片组成,其中FPGA选用Xilinx公司的高性能Virtex4系列芯片XC4VSX55,主要负责加解密功能的实现,保证数据传输过程的机密性;噪声源芯片选用WNG-5,它是一种数字物理噪声源,主要用于产生真随机序列,是密码处理模块不可缺少的基础部件。

1.3 接口转换与适配模块设计

接口转换与适配模块主要由数据处理接口和管理控制接口组成。相较于并行数据传输模式,高速串行传输模式具有带宽高、信号完整性好、电磁辐射低等优点,所以数据处理接口选用串行接口(LVDS)和相应的帧边界指示信号来实现数据的高速传输。同时考虑到一些标准高速串行通信协议由于需提供许多不同类型的服务而导致有大量的通信冗余数据,恶化了延时性能等问题

[4],本系统选择使用高速串行收发器TLK271来完成高速LVDS信号和并行数据之间的转换,从而提高系统的可靠性并减少资源占有率[5]

管理控制接口采用RS232串口,主要负责对外进行通信,根据接收的相关信息,配置系统工作在不同的模式下。

2 系统软件设计

为保证系统能高速稳定地运行,除了合理的硬件架构设计外,各功能模块的软件程序设计也至关重要。其中高速接口模块软件设计和加解密模块软件设计是决定性能瓶颈的关键。

2.1 高速接口软件设计

高速接口模块软件设计主要是在FPGA中通过程序设计与TLK2711交互完成高速数据的串并转换,具体工作流程如图2所示。

多通道高速数据安全传输系统的设计与实现

TLK2711的工作流程可以分为发射器部分和接收器部分,发射器部分基于提供的参考时钟(GTX_CLK)锁存输入的16 bit并行数据,经过内部的8B/10B编码转换成20 bit并行数据,编码后的数据以20倍参考时钟频率采用差分串行方式传输出去。接收器部分对接收到的数据完成串并转换,将得到的20 bit并行数据经过内部同步恢复时钟(RX_CLK),然后再经过8B/10B解码将这20 bit并行数据解码为原始的16 bit数据[6]。为了更灵活地控制高速数据的发送和接收,为4路通道分别设计了发送/接收帧边界指示信号TXORDER和RXORDER(均设计为低有效)。TLK2711的数据总线传输位宽为16 bit,分为高8位和低8位,编码方式由高8位控制信号TKMSB/RKMSB和低8位控制信号TKLSB/RKLSB共同控制。

在数据接收端,由于TLK2711的工作机制,在进行数据接收时RXLSB和RXMSB会出现3种情况,RXMSB和RXLSB同时变低,RXMSB先于RXLSB一个时钟周期拉低,或RXLSB先于RXMSB一个时钟周期变低。所以在数据接收时应对数据进行校准,同时为了解决信号从一个时钟域传送到另一个时钟域时出现的亚稳态问题,将校准后的数据写入异步FIFO作为缓冲,等待后续处理。

在数据发送端,先将帧边界指示信号TXORDER拉低,然后通过TXLSB和TXMSB控制数据发送。当TXLSB和TXMSB都为低时发送的数据为有效数据;都为高时发送数据b10111100作为comma检测码

[7]。由于RXORDER为接收数据的使能信号,只有当该信号无效,同时发送FIFO为空时,才能表明该帧数据已完整接收、处理并发送完毕。

2.2 加解密软件设计

加解密模块主要实现对高速数据的加解密工作,是数据安全传输的根本,主体功能在FPGA中实现。为了确保传输过程的机密性和提高系统的加解密速度,通过对比DES、3DES和AES等算法,最终采用新一代数据加密标准AES算法。由于AES算法的分组长度固定为128 bit,密钥长度只有128 bit、192 bit和256 bit 3种,只能对固定分组长度的数据进行加解密[8],所以选择AES算法的OFB模式。该模式工作时需要一个初始化向量IV[9],为确保通信的机密性,利用验证过的数字物理噪声源芯片WNG-5来产生真随机数序列作为加密每一帧数据的IV。

加解密模块的具体基本工作流程如图3所示。

多通道高速数据安全传输系统的设计与实现

首先对收到的数据按照帧协议进行解析,这里收到的数据就是高速接口模块中存入异步FIFO的数据。本系统的传输数据帧格式如图4所示,分为帧头、数据长度、初始化向量和数据4部分。

根据帧头信息判断此帧数据是待加密帧、待解密帧还是直传帧。如果是直传帧,则不启动算法模块,跳过对数据长度和初始化向量部分的判断,直接进行数据的传输;如果是待加密帧或待解密帧,则根据数据长度信息判断算法模块需要启动算法核的个数,这里算法核的个数不能大于2个。由于受硬件性能和FPGA本身资源等因素的影响,在4路通道同时工作的情况下,为了保证系统能稳定正常,每路通道最多只能启动2个算法核。

对于初始化向量部分,如果是待加密帧,则首先从随机码FIFO中读取相应比特位数(128 bit)的随机数作为IV信息发送给算法模块,同时从本地预存WK数据中选取一组192 bit位长的数据作为WK信息发送给算法模块,当IV与WK数据都准备完成后启动算法核进行运算,并将产生的密码流与明文数据进行XOR产生密文[10]。因为IV和WK信息是解码的关键所在,所以需要将IV和WK的相关信息根据既定策略进行一定的转换填入帧格式中的初始化向量部分;考虑到IV和WK信息在传输过程中可能会面临的恶劣环境,对其进行RS纠错编码以提高信道传输的可靠性

[11]

如果是待解密帧,则提取出初始化向量部分数据,根据既定的策略还原出加密时用的IV和WK信息,将其提供给算法模块以便产生出与编码时相同的密码流,然后与密文数据进行XOR得到明文数据。考虑到RS解码耗费的时钟周期数比较多,所以在给算法模块传递IV数据时,先将原始帧中直接解析出的IV数据传送给算法模块,利用算法模块的启动时间对IV数据进行RS解码。比较解码后的IV与原始IV是否相同,若相同则算法模块继续运行,若不同则根据RS解码后的IV重新启动算法模块,这样就可以一定程度上省去RS解码时间。

在对数据进行加解密时,会根据数据量的多少启动不同个数的算法核,所以本设计中利用乒乓操作原理,不断地按固定顺序在不同算法核的密码流FIFO中读取出数据进行加解密操作[12]。每次读取出的数据固定为128 bit,这是由于AES算法的分组长度决定的。

3 实验验证

为了验证设计的可行性并测试相关的性能参数,搭建了多通道高速数据安全传输硬件平台,同时为了方便测试,搭建了一个简易的工装测试板作为数据源为硬件平台提供数据。

多通道高速数据安全传输硬件平台为FPGA提供的全局工作时钟为100 MHz,通过其内嵌的数字时钟管理单元DCM将时钟倍频至180 MHz提供给算法模块,从而能更好地提高算法模块的工作效率,图5为通过Xilinx公司的在线逻辑分析仪Chipscope工具抓取的单个通道数据加解密过程的部分时序图。

多通道高速数据安全传输系统的设计与实现

从图5中可以看出,当加密开始信号置高后,待加密数据与算法核产生的密码流进行XOR操作产生密文,而解密过程与加密过程基本相同,用与加密过程相同的密码流与密文数据进行XOR操作产生明文。通过对比数据可以看出本设计能正确解密出数据,即系统加解密功能正常。

为了测试本系统的传输速率瓶颈和性能,不断改变测试工装发送数据量,具体测试方法:通过控制TXORDER和TXMSB、TXLSB 3个信号来改变1 024时钟周期内有效数据的周期数,测试系统能否在正常进行加解密工作的同时计算出系统从接收到待加解密数据到将加解密后的数据发送完毕时的时钟周期数。由于TLK2711工作在100 MHz时钟下且其数据经过8B/10B编码,所以其有效数据传输速率为1.6 Gb/s,通过相应的比例关系可以根据1 024时钟周期内传输的有效数据周期数得到系统加解密工作的速率。表1为测试过程中部分有效数据周期数(data_nclk)和加解密所用周期数(time_nclk)即数据时间对照表。

多通道高速数据安全传输系统的设计与实现

根据数据时间关系对照表,拟合出数据-时间关系图。如图6所示,横坐标代表有效数据周期数,纵坐标代表加解密所用周期数,曲线A为启动一个算法核的数据时间关系曲线,B为两个算法核乒乓操作下的数据时间关系曲线。

多通道高速数据安全传输系统的设计与实现

通过表1和图6对照分析可知当data_nclk为0时,time_nclk为40,此为算法启动所用周期数;当data_nclk为350时,即图中的a点,为算法核切换时刻,即当有效数据周期数多于350时启动2个算法核,可以看出加解密时间明显变少;在b点data_nclk为820,此时系统加解密速度已经达到瓶颈,加解密周期数到了1 022,即当此帧加解密刚结束时,下一帧待处理数据已经到来。经过比例换算可知,本系统单通道工作速率瓶颈为1.28 Gb/s。考虑到系统工作中的散热问题、资源利用率等问题,最好将单通道最高工作速率控制在1.2 Gb/s以下,也就是将系统在4路全负荷工作情况下的速率控制在4.8 Gb/s以下,有利于提高系统工作的稳定性。

4 结论

本文通过对多通道高速数据安全传输系统的研究与设计,利用FPGA与高速串行收发器TLK2711完成了高速接口模块的设计,同时利用FPGA和噪声源芯片实现AES算法的OFB模式对高速数据进行加解密,保证了传输过程中数据的机密性。通过所搭建的测试工装对多通道高速数据安全传输硬件平台进行测试,测试结果表明,本系统在稳定工作的情况下,可完成高达4.8 Gb/s有效数据的安全传输。综上所述,该方法对解决现代数据传输系统中存在的高速性和安全性兼顾问题具有较高的参考价值。

参考文献

[1] 黄万伟.Xilinx Fpga高速串行数据技术与应用[M].北京:电子工业出版社,2015.

[2] 高俊.基于PCIe总线高速数据传输系统的设计与实现[D].合肥:中国科学技术大学,2015.

[3] 贾建超,陈涛,李钊.基于TLK2711的高速数据串行传输[J].电子技术应用,2013,39(9):47-49,53.

[4] 李勋.高速多通道数据传输系统的设计与实现[D].太原:中北大学,2015.

[5] 余达,刘金国,徐东,等.多路基于TLK2711高速串行图像数据的传输系统[J].液晶与显示,2017,32(10):815-821.

[6] 张媚,杜辉,关晖,等.基于TLK2711的遥感卫星高速串行载荷数据接口设计[J].航天器工程,2015,24(6):13-19.

[7] 倪建军,李涛,王建宇.基于TLK2711的高速串行全双工通信协议研究[J].电子设计工程,2013,21(10):76-80.

[8] Yu Yan,Song Bingbing,Liu Xiaozhen,et al.Design of data encryption transmission system based on FPGA[M].Springer International Publishing,2014.

[9] 张金辉,郭晓彪,符鑫.AES加密算法分析及其在信息安全中的应用[J].信息网络安全,2011(5):31-33.

[10] 王佳.基于FPGA的AES算法硬件实现优化及其系统设计[D].深圳:深圳大学,2017.

[11] 陶星辰.基于AES加密的无线音视频传输系统设计及应用[D].合肥:合肥工业大学,2015.

[12] Huang Chiwu,Chen Hongyou,YEH H C,et al.Block RAM based design of 8-bit AES operation modes[J].Procedia Engineering,2012,29(1):2848-2852.

作者信息:

李君豪,毕丽霞,王永利

(华北计算机系统工程研究所,北京100083)


分享到:


相關文章: