洪艳伟
摘要:针对目前网络视频传输过程靠单一方案实施加密处理且都是依靠计算机平台的问题,设计了面向网络视频环境的采用综合加密方案的高安全性嵌入式路由器。利用FPGA开发系统与uclinux将Qi超混沌、Logistic映射、Baker映射和Cat映射的算法应用于视频加密与解密,综合采用了在线加密、离线加密、随机加密以及多重加密的方式使数据的安全性更强;创建分包协议解决了uclinux TCP/IP栈小的缺陷以及网络丢包问题。经过长时间测试,系统能够稳定运行且具有较高的安全性。系统所采用的处理器为87MHz,内存为10M,以较低的硬件成本实现了复杂的加密算法,性价比高,且具有很好的可移植性,平台的应用前景广阔。
关键词:FPGA;Uclinux;混沌;加密;网络视频
随着网络化程度的日渐提高,在网络环境中,通讯与资源共享使得人们的生产生活变得更为便捷、高效。视频作为信息的载体,越来越受到人们的关注,然而,网络视频的安全性也成为一个亟待解决的问题,在网络视频环境中,因此设计具有高安全性能的嵌入式路由器具有重要的现实意义。
针对目前状况,学者开始尝试将对初态非常敏感的混沌系统应用到加密领域,发挥混沌系统的诸多优势来保证交换数据信息的安全性和完整性,而且已获得了实质性进展。文献中就混沌理论应用于信息产品安全性保护领域的可行性做了详细阐述,并说明了操作要求和方法步骤;文献证实了Baker映射用于图像加密的可行性与较高的安全性。文献和文献针对不同种类的混沌方程所取得的安全效果做了详细对比,对各种保密方案进行了权衡。其中,文献中的研究对象仅限于图像;文献是对影像视频进行了实验和分析,不足之处是仅仅使用单一方案实施加密处理,而且都是停留在计算机平台上。
1设计方案
图1为嵌入式路由器的典型应用。工作在以太网环境中,通讯双方采用客户端服务器模型。
从使用角度讲,该路由器与普通路由器的使用方法一致:它拥有一个局域网接口和一个广域网接口,只要将两个接口的网络参数设置在不同网段即可正常工作。
从功能角度来讲,嵌入式路由器在实现数据转发功能的前提下,还需要应对网络视频大数据量的特点,同时实现加密与解密功能。工作流程为:服务器将视频数据压缩后传递到网络中,服务器端的嵌入式路由器得到数据之后利用加密算法将数据流加密之后再转发到以太网:在客户端,数据包首先被客户端的嵌入式路由器获得并进行相应的解密,这样客户端将得到的数据解压后便可正常播放。
2平台搭建
2.1 FPGA硬件系统设计
与传统嵌入式开发相比,FPGA开发的区别之一在于芯片内部硬件系统的配置。Xilinx提供了许多IP核供用户使用,这些IP核可以看作是硬件控制器,或者是为完成某一特定功能而专门设计的电路系统,FPGA的CPU需要通过这些IP核来实现对外部电路的控制。
系统使用32位处理器MicroBlaze,处理器连接两个缓存控制器LMB BRAM Cntlr分别用作数据和指令缓存;系统总线使用Xilinx提供的PLB总线,PLB总线上挂接各个外设。对外设进行一下说明:MDMIP核将作为MicroBlaze与上位机的调试接口;MPMC核称为内存控制器,将用来外接系统内存;DART核为串口控制IP核,负责外接串口设备,该设备在嵌入式开发中将作为系统的标准输入输出设备使用;Timer为定时器IP核,将作为uclinux的系统时钟;GPIO核是一种总线控制IP核,负责与大多数的10设备连接,在本设计中,GPIO总线上将挂接指示灯以表示系统的工作状态;两个Ethernetlite核将负责对网卡的控制,Ethernetlite核内集成了MAC层协议。
3软件开发
3.1通信程序设计
在成功移植uclinux的基础上,利用交叉编译环境编写目标板通信程序,程序流程如图2所示。
初始化网络接口A和B:主要是对网卡的IP地址,子网掩码等网络信息的设置。在侦听网卡过程中,当接到B口的握手信息时,便将一个标志位FLAG置位,表示将开始路由功能。当从端口读到数据时,若此时FLAG已经置位,就加密或解密该数据包并转发出去;如果标志位没有置位则直接丢弃该包。当从A口得到结束信息时,复位FLAG标志位以结束路由功能。
3.2分包协议设计
分包协议主要是针对网络的MTU问题而设计的:一般以太网的MTU值为1500,petalinux内部也设置自己的MTU为1500,但是petalinuxr包含的TCP/IP协议装置不具备分片能力,从而导致petalinux对长度超过1500的信息实施转发。针对这一问题,模仿分片协议的基本程序研制出分包协议用于功能调节。
分包协议一般在客户端软件中或服务器内发挥作用。当系统发送容量较大的信息时,需要使用图5所示的分片形式把信息拆分成长度不大于1500的信息片,然后才能发送成功。数据包分片格式中,major部分表示需发送的数据的ID信息,minor部分的包含分片次序与其数量的信息。信息发送完成之后,终端将按照major与minor部分包含的信息重新组合成与原型相同的数据包,如表l所示。
另外客户端还需要处理丢片的问题:由于种种原因丢失了部分分片的数据包必须被抛弃。对此,在客户端建立一个如图2所示大小为100*1500的存储池,利用一个Point指针指向当前的分片。当收到一个新分片时,若不是最后一片则直接放到Point所指位置并将Point加1;否则遍历存储池找到该包的所有分片,若分片齐全则重组数据包,否则直接丢弃。经过这样的设计,至多会在收到100个分片之后将丢失分片的数据包覆盖。
此项协议内容的构建对嵌入式路由器来说具有公开性,它的正常使用对系统条件的要求很低,这将对系统整体功能的增强打下了基础。由实验效果可知:如果该协议建立完整并且功能正常,对应的数据终端可以经由嵌入式路由器接接受视频信息而且能够实现正常的放映。
4加密与解密算法实现
4.1加密与解密算法
混沌的很多基木特性如对初始条件和控制参量的敏感性,或正的Lyapunov指数,混合性,遍历性,确定性及长期不可预测性,都可以与传统密码学中的基本特性混淆和扩散联系起来,利用混沌系统加密视频已成为一个热点。
在进行加密操作时,它使用的算法原理是:在Qi系统平台内,将logistic映射、Baker映射和cat映射结合起来发挥功能。置乱原理是指不改变数据的值,而是改变各值在帧内的位置。以二维离散Baker映射为例,对于N×N的矩形数据块,ni为密钥,且ni能被N整除,Baker映射的一般性公式:
对密钥(n1,n2,…,nk),有:
4.2在线加密与离线加密
在线加密是指针对每一个分片动态生成一个密钥,密钥随分片一同发送,加密与解密端都需要对每一个分片实时计算一组混沌序列。密钥的不确定性在一定程度上提高了系统安全性。
然而在线方式的大量计算往往是嵌入式系统难以承受的,一个折中的方案是适当减少对每一分片的加密长度即对视频数据进行部分加密。实验表明对一个约为1300字节的分片,加密500字节便可获得非常满意的效果,同时也可保证嵌入式系统有效运行。表2中给出了在线部分加密方式中Cat映射和Baker映射对嵌入式系统CPU资源的占用情况(由于算法均原址加密,内存消耗很少,故重点考虑CPU的效率):表明在现有平台的资源环境下可以顺利实现基于数据置乱的加密解密算法。
在离线加密中,密钥是固定的,在程序初始化阶段即计算出所需的混沌序列并加以保存,以后的加密解密工作仅以查表方式获得混沌序列值。离线方式彻底避免了混沌系统大量的计算,是在安全性与效率之间的一个折中。而且超混沌方程迭代过程中需对每一个值解一次龙格库塔方程,计算量更大,因此离线方式对超混沌方程尤为适用。
表3给出了logistic映射和Qi超混沌分别在在线加密与离线加密方式卜的嵌入式路由器CPU消耗情况对比。
在离线加密方式下,基于数据混淆的加密算法对CPU的消耗有非常明显的下降,而在在线方下式,在现有平台上这2种加密算法几乎是不可实现的。
综合以上,此设计对Baker映射、Cat映射采用在线方式,对Logistic映射和Qi超混沌方程采用离线方式。
当采用并进行二次加密的方式时,系统内的在线与离线加密同时存在,其安全和稳定性大大增强。表4所示不同组合方式下,嵌入式系统CPU占用情况。
在各种组合方式下,CPU资源最大消耗也仅在百分之五十左右,加之uclinux内核经过裁剪之后,多余的系统负担已经很少,因而完全能够承担双重加密与解密工作,实验证明在双重加密解密方式下,可得到流畅的视频效果。
6结语
针对于网络视频的传输,文章在充分考虑网络安全性的情况下,实现了对嵌入式网络路由器的设计。在使用上,与传统的路由器完全一致,免去了一般用户再学习的麻烦。提出了在线加密、离线加密、随机加密以及多重加密方法,使得系统的安全性得到提高;利用较低频率的处理器(87MhzMicroBlaze处理器)与较少的内存容量(10M)实现了各种复杂的混沌算法,具有较高的性价比;基于uclinux的设计使系统具有良好的可移植性。通过在局域网内对系统进行测试,结果显示,该系统可以稳定累积运行48小时,具有较高的可靠性。