APP下载

网络视频流混沌加密系统的FPGA设计实现

2011-04-13佟吉钢张振新陈增强孙青林

哈尔滨工程大学学报 2011年6期
关键词:视频流分片加密算法

佟吉钢,张振新,陈增强,孙青林

(南开大学 信息技术科学学院,天津 300071)

随着计算机网络的普及,网络视频的使用随处可见,视频数据的安全也变得尤为重要.人们考虑将混沌系统引入其中,利用它的一些特性来提高数据安全,并取得了一些成果.文献[1]针对混沌系统与网络环境进行了充分分析,提出将混沌应用于网络环境下的数据加密的基本要求及分析方法,为这一领域奠定了基础;文献[2-3]对多种混沌方程应用于加密的方案进行论证,得到肯定的结论.但文献[1]中的混沌加密方法仅是针对图象,文献[2-3]的研究对象虽然是视频,它们都采用单一方式进行加密.目前视频加密方式主要采用诸如DES、AES、VEA等一般直接加密算法,算法的实现计算复杂度大,加密速度相对较慢[4];或采用选择性加密方法充分考虑视频数据本身的特征及压缩标准的要求,对编码过程中产生的关键信息进行加密[5-6];将加密与压缩编码相结合的方法,这种算法将加密和数据编码方式相结合,加密速度快,数据格式不变,常见的有离散余弦变换(discrete cosine transform,DCT)系数加密算法、熵编码过程加密算法等[7-9].后2种加密算法的实现需要深入熟悉了解视频编码的原则方式.而上述这些加密算法进行验证的实验平台多是利用计算机,网络环境下的实时视频加密考虑还相对较少.为此,从嵌入式系统灵活高效的特点考虑,设计基于FPGA的网络视频流混沌加密系统.

1 系统总体设计

设计基于FPGA的网络视频流混沌加密系统作为对称加密系统,其网络硬件拓扑结构分为:1)视频加密部分:服务器将实时视频流以数据包的形式发出,由FPGA开发板对数据实时进行各种方式加密处理,加密后的数据经路由器在网络中传输.2)视频解密部分:作为网络中的视频媒体接收端,将接收到的视频加密数据经过FPGA开发板进行相应的实时解密后传送给用户PC机,由PC机将解密后的数据包还原为可以播放的视频流进行实时播放.设计的具体视频数据加密处理流程如图1所示.由摄像头捕获实时视频数据,视频帧为符合H.263标准的QCIF格式(176×144,30帧/s),出于一般实际考虑在服务器中先采用H.263编解码器进行视频压缩处理,再由FPGA开发板对压缩后的H.263编码视频流进行实时完全加密,加密后的视频数据包发送到网络上,并最终传到用户端;解密端的工作过程与其类似,流程相反.FPGA开发板在整个系统中的作用:1)对H.263编码后的视频流数据进行完全加密,实现基于Baker映射、Cat映射、Logistic映射和超混沌系统的和双重加密在内的随机加密算法选择或对应的解密功能;2)采用双网卡模式保证使用过程的方便、灵活.在加密端将服务器传来的视频数据以上述加密算法实时加密,获得的数据经由以太网传输;在系统解密端其工作与之相反.为保证用户使用透明,将原FPGA开发板扩展设计为双网卡,双网卡系统IP的使用设置与路由器的要求相同.

图1 系统视频加密流程Fig.1 The video encryption process of the system

2 系统硬件扩展设计及其配置

2.1 基于FPGA的系统设计

为方便用户使用,使其只需修改自身IP地址即可实现网络实时视频数据的加密及解密工作,将系统设计成双网卡.使用以SPARTAN-3E 1600E芯片(160×104系统门)为核心的FPGA开发板[10-11],利用其FX2形式的扩展接口设计添加一个硬件网卡(如图2所示).设计的网卡通过以太网接口和物理层接口芯片LAN83C185完成以太网物理层协议转换.MAC子层IP核xps_ethernetlite完成数据链路层的工作,其上的TCP/IP及应用层的工作由植入FPGA开发板的 μCLinux操作系统完成,具体的硬件框图及软件系统结构如图2、3所示.

图2 FPGA开发板系统硬件结构Fig.2 The hardware structure of the system on FPGA development board

图3 FPGA开发板系统结构图Fig.3 The system structure based on FPGA development board

平台使用的μCLinux系统,其所需内核及用户程序的编译均是在Linux环境下完成,因此在PC机中安装VMWare Work Station并在其中安装Red Hat Linux建立μCLinux交叉编译环境.同时安装Windows版本的EDK和ISE完成硬件设计及与下载和配置相关的工作.μCLinux移植包括硬件与软件设计,硬件设计使用EDK9.2和ISE9.2完成[12],软件设计在虚拟机中的Linux环境完成.软件是在Linux中安装μCLinux的配置工具,使用不具有MMU(内存管理单元)的PetaLinux[13],在Linux内注册petalinx环境变量即可完成它的安装.

2.2 μCLinux系统系统配置

在对uclinux内核进行裁剪与编译之前安装BSP(板级支持包)确保uclinux能够根据目标板的硬件选择相应驱动程序.具体安装使用petalinux内部命令petalinux-copy-autoconfig来完成.对 uclinux内核进行设计时:在petalinux-dist目录下执行make menuconfig命令进入内核编译选项,对内核的配置主要包括:Vender/Product Selection子菜单包含了对目标板类型、处理器类型的配置;Kernel/Library/ Defaults Selection子菜单主要包含对内核、库以及用户程序的设置:对kernel的设置包括对文件系统设置、驱动程序的选择、内核调试等功能的选择等;对库以及默认项的设置主要针对uclinux上层应用而言,主要包括:系统设置如网卡信息设置等.

在uclinux驱动目录下的adapter.c文件实现Xilinx网卡驱动与Linux设备驱动的连接.编译两块网卡时,需将adapter.c对库的依赖性及一个网卡对应的文件做相应的改动.依据图3中FPGA硬件选择相应驱动程序,尽量去掉多余的内核选项以精减内核,最终编译得到uclinux内核大小约为3.5M.

将内核文件下载到开发板,并利用ifconfig命令将2个网卡分配到不同网段,即可实现2个网卡在各自网段内的通信.实验证明设计的双网卡系统完全可以正常工作.设计完成的硬件实物如图4所示.完成FPGA配置后的内部资源使用情况如表1所示.

图4 FPGA开发板及扩展网卡Fig.4 Extended network card and FPGA development board

表1 SPARTAN-3E 1600E芯片内部资源使用统计Table 1 The statistics of resource used in SPARTAN-3E 1600E

3 系统通讯机制

3.1 系统程序概述

系统网络通讯采用客户端-服务器模型.实时视频数据在网络传输时需要很大带宽,TCP协议虽然能提供稳定可靠的传输,但过多的控制数据包必然导致带宽下降;UDP协议则以可靠性的代价换取了低带宽占用的优点.因此采用基于UDP协议的CS模型并将视频数据仅做普通数据流处理.系统运行采用linux下的select调用机制提高运行效率,系统调用的工作方式类似于中断:当客户端没发出请求时,系统服务进程仅阻塞在某几个文件描述符(在linux系统中socket也被视为一种文件描述符)上并等待其中某一个发生变化以激活此进程进行相应服务.实验表明select调用方式,系统CPU占用率至多为1%~2%,而多线程方式则高达90%以上.

3.2 系统分包协议

分包协议是针对MTU(最大传输单元)问题所设置的:在petalinux嵌入式系统平台中,当发送的数据包大于1 500时,系统便无法将数据包发出.而petalinux的TCP/IP栈却缺少分片功能,致使其不能够转发长度大于1 500的数据包.为此本设计仿照分片协议开发了分包协议.其功能主要在服务器和客户端实现:在服务器端,在发送一个大数据包前,按照如图5所示的格式将数据包分为多个小于1 500的片:用major字段标识数据包ID,minor字段前4位标识各分片的顺序,后4位标识分片总数.客户端则根据major和minor字段将分片重组为原数据包.其后的type、Ks、Data段分别表示加密类型、本数据片密钥及加密数据.

图5 网络数据包格式Fig.5 The data packet format in network

为解决网络中的丢包问题,同时在客户端建立一个可容纳100个数据分片的存储池,每次客户端接收到一个数据分片时便依据此数据分片的major和minor段去检索存储池,以寻找匹配的分片,若找到则进行数据包重组并显示.该数据存储池设有一个当前指针,当新分片没有找到匹配分片时便被放到当前指针位置,并将指针后移.当数据分片丢失到一定数量时,随着当前指针的移动将丢失匹配的数据分片,其位置会被新的数据分片覆盖.

分包协议的设计对用户是透明的,降低了对嵌入式系统的客观要求,有利于整体性能的提升.实验证明:在分片协议设计实现之后,客户端能够通过FPGA开发板接收到视频数据并正常播放.

4 混沌及超混沌系统

利用二维离散混沌系统对明文进行分组置换操作,经过多轮迭代产生置乱算法,实现图像加密.在此考虑将Baker映射、Cat映射引入实时视频加密系统[14],因其置乱算法组合很多,造成密钥分析的困难.Logistic映射是比较常见的混沌.四维超混沌系统比低维混沌系统具有更复杂的相空间,其运动轨道在2个或2个以上的方向上进行指数级发散,从安全性角度讲,用超混沌离散时间序列设计算法不易被破译,具有更复杂的系统特性,利用其实现视频加密具有更高的安全性.

4.1 Cat映射

Cat映射[15]是一个二维可逆混沌映射,其动力学方程的一般形式为

其线性转换矩阵行列式为1,所以Cat映射是一个保面积映射,即一一映射,可将单位矩阵内一点唯一的变换到另一点.a、b均为1时,2个李雅普诺夫指数为

Cat映射变换过程是先将单位方形进行拉伸,而后求模,使之重新折叠为单位方形.因其具有较好的混沌特性、折叠和拉伸特性,而被广泛应用于图像置乱和加密.

4.2 Baker映射

一般的Baker映射[16]离散化需将其进行离散处理.设正方形为N×N,用B(n1,…,nk)代表离散化的一般Baker映射,Ni=n1+…+ni,ni|N,i=1,…,k,且n1+…+nk=N.对于象素(r,s)有[17]

4.3 Logistic映射

Logistic映射是一维离散时间非线性动力系统,其形式为

式中:μ∈(0,4]为分支参数,xk+1∈(0,1).由于其本身的非线性特点使它能产生一系列伪随机且极敏感依赖于映射的参量μ与初始值x0的动态轨迹.μ取值变化对迭代过程的影响,迭代结果及系统轨迹具体见文献[17].

4.4 超混沌映射

采用超混沌系统[19]比低维混沌系统具有更复杂相空间和系统特性,利用其实现视频加密将具有更高的安全性,设计选用的超混沌方程为

该系统的轨迹具体见文献[18],当取a=35,b=3,c=12,d=7,γ=0.58时系统的正李雅普诺夫指数相对较大,分别为λ1=0.501 1,λ2=0.185 8,λ3=0,λ4=-26.101 0.李雅普诺夫指数越大,说明邻近的2条轨迹分离的速度越快,折叠特性越复杂,从安全的角度看,用超混沌系统设计加密算法不易被破译.系统初值为X0=(x01,x02,x03,x04).

5 视频加密算法设计

由于所设计的系统为对称加密系统,解密过程是加密的逆过程,在此仅讨论系统的视频加密过程.

5.1 基于Baker及Cat映射的加密算法设计

离散二维Baker映射和Cat映射目前被广泛用于置乱加密,但几乎所有现存的基于混沌的加密方案都是利用置乱方法来实现数字图像或视频的密钥置乱.在此所提出的加密系统是利用二维Baker映射对编码后H.263实时视频流直接进行数据置乱.加密系统密钥k由l、n1、n2、n3、n4构成,l代表数据置乱的迭代次数,利用密钥代入到相应的混沌方程,将相应的数据块在内存中做替换操作即可.如图6所示,从编码后的H.263视频流中取出N×N字节数据,这里N取32.密码分析者很容易猜出编码后视频流的头结构,因此不改变H.263视频流的前8个字节;迭代选定的数据(b1,b2,…,bNN)置乱操作次;将置乱后的数据(bp1,bp2,…,bpN×N)存到视频数据流的原来位置,获得加密后的H.263视频流.

图6 二维Baker映射加密方式Fig.6 2-D Baker map encryption

Baker映射和Cat映射加密方式具有一定相似性,因此对Cat映射的加密过程不做过多叙述.该加密方式是对除H.263的帧头即其前8字节的所有视频数据加密,但该算法为原址加密,无需太大的内存消耗,此时Baker映射和Cat映射加密的CPU负荷分别为45.3%、29.9%.表明针对数据置乱加密方式,完全可以进行实时视频加密.

5.2 基于超混沌及Logistic映射的加密算法设计

由于超混沌方程具有复杂的相空间,选用它可以有效提高系统的安全性.其系统密钥k,由初值状态x0(x01,x02,x03,x04)构成.在实际的应用中,首先利用密钥向混沌方程中迭代3 000次以使混沌系统进入到某一分岔,再迭代时便记下方程的值以生成一个混沌序列,并使用该序列与原视频进行异或操作实现数据混淆.为保证较高的精度采用四阶龙格库塔阶(Runge-Kutta)法求解超混沌方程计算获得该方程离散时间序列.超混沌状态(x1,x2,…,xN×N)将被离散化得到比特序列(c1,c2,…,cNN)以实现混淆操作,混淆操作(异或操作)具体方程为

混淆后的H.263视频流与未改变的其他H.263视频数据一起用做网络视频传输的输入数据.Logistic映射的加密方式比较简单,也是将离散化之后的比特序列与原视频数据进行异或操作,在此不再赘述.

为利用系统对初值的敏感性提高安全性,本系统超混沌初值为保留小数点后14位,加上整数位,初值位数为15位.系统初值的高位数,可以很好的保证系统安全性,但大量迭代计算也对其实时性提出很高要求.为此采取折衷办法:对所有数据分片采用统一密钥.此外密钥不通过网络传递,而是在所有结点内系统初始时设为某个定值.这样在系统初始化阶段,利用已确定的密钥在程序初始化阶段便计算出所需要的混沌加密、解密序列并存放在内存中,实验中其所耗内存仅为1.3 KB.当需要发送数据或有网络数据到来时,便可采用查表方式直接获得加密、解密序列.该方式极大降低了对系统CPU的要求,同时由于超混沌系统的固有特性也保证加密数据的安全性.采用此种方式,此时CPU负荷仅为1.3%.而采用Logistic映射计算较小,可在线加密,此时CPU负荷仅为0.5%.表明基于数据混淆原理的超混沌系统完全可用于实时视频加密.当然出于安全性考虑也可将超混沌初值即系统密钥设得更高.

5.3 双重加密算法设计

Cat映射和Baker映射是基于数据置乱的加密原理而Logistic映射和超混沌方程是基于数据混淆的加密原理,当这2种加密方式同时作用于一段数据时并不会产生不兼容的问题.因此可采取双重加密方式将上述4种加密算法两两结合使系统更复杂,传输的视频数据更安全.具体采用Baker映射与超混沌或Logistic映射,Cat映射与超混沌或Logistic映射,4种双重加密方式.这里以Baker映射和超混沌结合使用为例,说明其方法,如图7所示,对H.263编码后的视频流依照5.1部分所提的程序进行置乱加密得到的数据,再依照5.2部分的流程继续进行超混沌方式的二次加密处理,得到加密后的数据,同H.263视频流前8个字节合并作为加密后的视频流.其他3种联合加密方式、思路与其大致相同.表2为系统加密时CPU负荷情况.

表2 双重加密系统运行时CPU负荷统计Table 2 The statistics of CPU load

图7 Baker映射与超混沌联合加密Fig.7 The combination encryption with Baker mapand hyperchaos

5.4 双重加密算法的随机选择

如图5所示:其数据包的第3个字节为“type”字段,该字段用来标识本数据分片所采取的加密方式,第4个字节为该数据分片的特定密钥Ks,其后Data段是传输的视频加密数据.在服务器端随机选择不同的加密方式,在type段做了相应标识,并将本数据包使用的密钥存放于Ks段.而在客户端对接收到的数据包则依此进行相应的解密操作,即依据type段所标识的该数据包使用的加密方式,利用Ks段提供的密钥进行相应解密.在加密过程中,系统对编码后的H.263视频流在4种双重加密方式中随机选择,并将一个数据分片作为一个加密对象进行加密,视频流中的每个数据分片可随机选择不同的加密方案和密钥,不同的加密方案需要对应解密方法才可获得正确的原始数据,有效提高了加密后的视频数据的安全性.

6 系统安全性能测试

在局域网环境利用服务器、计算机和FPGA开发板搭建网络实验模拟平台,进行试验和相关测试.

6.1 密钥空间分析

使用Baker映射和超混沌方程的双重加密其系统的密钥k由kB、kC(kB由Baker映射产生,kC由超混沌方程产生)组成,两者互相独立,因此其密钥空间可以表示为

式中:kB由参数l和密钥序列{n1,n2,n3,n4}组成,其密钥空间kB(N)由整数N的因子排列成不同序列次数决定.计算N=32时,N×N空间下kB密钥空间为4.7×107.kC由参数x0(x01,x02,x03,x04)构成,其空间为1014×1014×1014×1014使用Baker映射和超混沌双重加密密钥空间为4.7×1059>2100≈1032.因此此种双重加密方式完全可以保证有足够的密钥空间抵挡野蛮攻击.其他3种双重加密方式进行类似分析也得到同样结论而这只是针对网络中的一个数据包,一帧图像由多个数据包构成,每个数据包均采用不同密钥,因此其安全性得到有效保证.

6.2 密钥敏感度测试

使用Baker映射和超混沌方程的双重加密方式进行测试,设置二维Baker映射的两组密钥分别为

设置超混沌方程的2组密钥分别为

KC1、KC2两组密钥仅x04的最后一位不同.

在加密程序中以Kb1、KC1为密钥对图像进行加密.在图8中可见,在Baker映射与超混沌双重加密方式下,只有二者密钥都完全正确时才可正确解密视频图像,当某个密钥有极微小差别时,并不能解密.

对表2中的其他组合方式双重加密进行相应测试也得到同样结论.结合密钥空间分析与图8密钥敏感度测试结果表明:上述各种组合下的双重加密与随机加密算法可实现对网络实时视频正确加密解密.

图8 网络实验实时视频截图Fig.8 The cut real time video of experiment in LAN

7 结束语

本文提出了一种基于FPGA的网络视频流混沌实时加密系统的设计实现方案.对网络实时视频流进行完全加密,实现了基于Cat映射、Baker映射、Logistic映射和超混沌在内的双重加密、随机选择加密多种加密算法.网络中的每个数据分片采用不同的加密方式和密钥,并将其设计成一款方便实用的即插即用型硬件加密平台.在局域网环境下,系统连续运行24 h,仍然稳定、没有故障发生.实验证明,该系统使用方便,加密效果理想,视频播放流畅,具有很好的安全性和应用前景.

[1]ALVAREZ G,LI S.Some basic cryptographic requirements for chaos-based cryptosystems[J].International Journal of Bifurcation and Chaos,2006,16(8):2129-2151.

[2]张萌,刘忠信,孙青林,等.Chaotic video encryption algorithm based on Baker map[J].中国图像图形学报,2006,9(11):441-445.

ZHANG Meng,LIU Zhongxin,SUN Qinglin,et al.Chaotic video encryption algorithm based on Baker map[J].Journal of Image and Graphics,2006,9(11):441-445.

[3]CHIARALUCE F,CICCARELLI L,GAMBI E,et al.A new chaotic algorithm for video encryption[J].IEEE Transactions on Consumer Electronics,2002,48(4):838-844.

[4]LIU Fuwen,HARTMUT K.A survey of video encryption algorithms[J].Computers&Security,2010,29(1):3-15.

[5]QIAO L,NAHRSTEDT K.Comparison of MPEG encryption algorithms[J].International Journal on Computers&Graphics,1996,22(3):219-230.

[6]QIAO L,NAHRSTEDT K,TAM M C.Is MPEG encryption by using random list instead of zigzag order secure?[C]// IEEE International Symposium on Consumer Electronics,Singapore,1997:226-229.

[7]TANG L.Methods for encrypting and decrypting MPEG video data efficiently[C]//Proceedings of the 4th ACM International Conference on Multimedia.New York:ACM,1996:219-230.

[8]ALATTAR A M,AL-REGIB G I.Evaluation of selective encryption techniques for secure transmission of MPEG2 compressed bit streams[C]//Proceedings of the 1999 IEEE International Symposium on Circuits and Systems.Washington:IEEE,1999:340-343.

[9]梁盼,付永庆,陶宝泉.基于H.264的DCT变换系数解码的FPGA实现[J].应用科技,2010,37(2):20-23.

LIANG Pan,FU Yongqing,TAO Baoquan.Implementation of H.264 IDCT algorithm based on FPGA[J].Applied Science and Technology,2010,37(2):20-23.

[10]Getting started with the MicroBlaze development kit-spartan-3e 1600e edition ug258(v1.2)april 24,2007[EB/ OL]http://china.xilinx.com/.

[11]Digilent VDEC1 video decoder board.[EB/OL].[2011-05-10]http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,648,415&Prod=VDEC1.

[12]薛小刚,葛毅敏.Xilinx ISE9.X PFGA/CPLD设计指南[M].北京:人民邮电出版社,2007.

XUE Xiaogang,GE Yimin.The design guide of PFGA/ CPLD by Xilinx ISE9.X[M].Beijing:Posts and Telecom Press,2007.

[13]PetaLinux User Guide[EB/OL].[2011-05-10].http:// developer.petalogix.com/#PetaLinuxDocumentation.

[14]MAO Yaobin,CHEN Guanrong,LIAN Shiguo.A novel fast image encryption scheme based on 3D chaotic Baker maps[J].International Journal of Bifurcation and Chaos,2004,14(10):3613-3624.

[15]CHEN Guanrong,MAO Yaobin,CHUI C K.A symmetric image encryption scheme based on 3D chaotic cat maps[J].Chaos,Solitons and Fractals,2004,21:749-761.

[16]FRIDRICH J R.Symmetric ciphers based on two dimensional chaotic maps[J].International Journal of Bifurcation and Chaos,1998,8(6):1259-1284.

[17]KANSO A,SMAOUI N.Logistic chaotic maps for binary numbers generations[J].Chaos,Solitons& Fractals,2009,40(5),2557-2568.

[18]LI Yuxia,WALLACE K S T,CHEN Guanrong.Generating hyperchaos via state feedback control[J].International Journal of Bifurcation and Chaos,2005,15(10):3367-3375.

猜你喜欢

视频流分片加密算法
上下分片與詞的時空佈局
边缘实时视频流分析系统配置动态调整算法研究
基于视频流传输中的拥塞控制研究
分片光滑边值问题的再生核方法
CDN存量MP4视频播放优化方法
基于模糊二分查找的帧分片算法设计与实现
铁路货场智能大门集装箱全景图像采集方法研究
美国视频流市场首现饱和征兆
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法