基于摄像头采集的混沌视频加密研究
扫描二维码
随时随地手机看文章
摘要 实时视频采集、存储和处理,已在各领域得到广泛应用。文中介绍了基于FPGA的视频采集系统设计的总体框架,并阐述了其中的设计流程,利用混沌信号对数据进行加密提高视频数据的安全性。在DE2平台下验证实,文中设计的FPGA视频采集系统完成了对实时视频进行混沌加密,实验结果表明,设计达到了初定的目标,加密的性能和效果能满足应用需要。
关键词 视频采集;FPGA;混沌加密;乒乓控制
实时视频采集、存储和处理已经在得到广泛应用,如远程监控、安防、工程控制、医疗器械等。通常情况下,用CCD或CMOS采集视频,而得到的都是模拟视频信号,直接进行传输、存储和处理比较困难,因此必须将其转换为数字视频信号。文中采用视频解码芯片和现场可编程门阵列FPGA设计的实时图像采集系统,不仅可以有效地缩短研发周期,而目可以广泛应用于图像识别、网络视频传输和实时监控等各类图像信息处理系统。
此外,考虑到该设计的视频采集系统可以投入后续的一些应用,如网络视频或视频会议等。信息安全对于本系统较为重要,要求本系统应该具有一定的数据保密功能。由于目前许多加密算法的结构复杂、运算量大,对于视频采集这种实时性要求较高的数据流而言难以达到速度要求,因此,文中设计的系统选择了—种加密效果良好,且易于硬件实现的混沌算法以对视频数据进行加密。
1 混沌加密实现原理
1.1 混沌加密原理
混沌信号用于数据保密通信中有多种形式,究其根底混沌保密是利用混沌信号的各种特性实现的。在数据的发送端将其作为密钥明文信息和混沌信号经加密变换后形威密文,然后在信道中传送,在接收端合法用户知道解密密钥和解密变换因此能够得到正确的明文。这种加密原理主要源于传统的对称密钥加密算法。
目前常用于加密的混沌同步方法主要有:驱动一响应同步及串联同步法、主动一被动同步方法、互耦合混沌同步法。自适应同步方法、神经网络同步方法等。传统的混沌加密算法首先需要产生混沌信号,混沌信号的产生要求较高。首先硬件要支持浮点运算,并且需要迭代一定次数才能产生混沌,所以占用硬件资源较大;相比较而言,本设计为实现视频加密所采用的二维猫映射混沌加密算法和扩散算法,不会带来信号失真,运算复杂度低,易于硬件的实现,加密效果较好。
1.2 猫映射加密算法
猫映射的数学表达式为
其中,modl表示只取实数的小数部分。为将猫映射用于加密,需要对它进行适当处理,首先将猫映射扩展到N×N,并进行离散化,如式(3)所示。
在实际图像猫映射加密中,为让图像加密效果更理想,需要经过n次迭代计算完成n阶猫映射算法。需要说明的是,应用猫映射算法加密的图像必须是正方形,否则会产生像素混叠导致解码失败。因此,模运算的N表示图像宽度。
1.3 扩散算法
扩散算法的数学表达式为
其中,f(xk,yk),f(xk+1,yk),f(xk+2,yk),f(xk+3,yk)表示一行中的连续4个像素值。进行模256的算法是为了使经过扩散运算后的结果范围在[0,255]内,保证运算结果仍为8位。此外,由于B矩阵中的元素都是整数,对于不支持浮点数运算的硬件平台来说,比较容易实现。
2 视频采集系统的设计
此次设计采用的FPGA核心芯片是Altera公司CycloneII系列,型号EP2C35F672C。此型号芯片含有33 216个逻辑单元,内置483 840bit的内部RAM容量,其中包括105个M4K RAM模块,35个内嵌乘法器,4个PLL和475个I/O管脚。
2.1 系统的总体框架
设计的系统由A/D转换、FPGA控制处理、外部SRAM和VGA组成,如图1所示。A/D转换部分用于图像数据的采集和模数转换。设计采用AD公司的视频解码芯片ADV7181。FPGA控制处理部分采用Altera公司的CydoneII系列芯片作为控制处理核心,负责前端数据采集和存储,同时将数据传输至显示器。另外,由于视频数据采集的实时性和连续性要求,采用外部SRAM作为存储设备。
2. 2 视频采集的流程分析
视频采集系统主要包括ITU656解码模块、I2C接口模块、SRAM控制模块和VGA显示模块。
当系统加电后,首先通过过I2C接口模块对ADV7181芯片进行初始化,使ADV7181芯片输出标准的PAL制式数据。当程序判断出接收到的是有效视频数据时,ITU656解码模块对A/D芯片产生的PAL制式数据流进行串并转换和YUVtoRGB转换,产生适合显示的RGB数据格式。随后FPGA将转换后的图像数据存入SRAM中,当接收完一帧图像数据后,FPGA将从SRAM中读出视频图像数据并通过VGA模块在CRT显示器上显示,与此同时FPGA继续控制下一帧视频的采集、转换、存储和显示。整个视频采集的流程如图2所示。
3 视频混沌加密系统的设计
混沌加密系统中,混沌加密算法的设计至关重要,它决定了混沌加密系统的安全性以及执行效率。此外,由于视频数据置庞大和实时性的特点,对混沌加密系统的执行效率提出了更高的要求。具体的说,应尽可能的避免重复的迭代运算,采用流水线式的结构实现高速运算。
文中加密算法采用猫映射置乱算法和扩散算法相结合的方法实现。传统用C语言实现的置乱和扩散加密方式主要是先对整幅图像进行置乱后再进行扩散加密,程序中存在多次循环语句的调用,在图像尺寸较大情况下,这些循环语句的调用会花费比较多的时间,造成数据处理实时性能不足;针对这种不足,考虑到Verilog语言的并行处理特点,提出具有实时处理能力的置乱扩散加密原理框图,如图3所示。
从原理上分析,置乱算法和扩散算法的运算对象不同,置乱算法处理的是像素位置,而扩散算法处理的是像素值。因此,借助Verlog语言的并行性特点,可以同时进行置乱算法和扩散算法。一方面将图像像素坐标信息传送到置乱加密模块中,产生置乱后的地址,连接到SRAM的地址总线上;另一方面从视频图像中不断地缓存连续的4个像素值传送到扩散加密模块中,经过扩散算法后产生4个新的像素值,送到SRAM的数据总线上。
4 实验及结果分析
4. 1 实验结果
基于FPGA的视频加密实验结果如图4所示。图4(a)为采集到的某一帧图像,需要说明的是图像像素是由16位RGB565扩展为24位RGB888数据显示的,其中RGB565数据是存放在SRAM中的数据。之所以存储16位RGB565,是由于本系统中的外部存储器SRAM的数据位宽为16位。选择16位RGB565既满足外部存储器的数据带宽要求,又不会降低图像的视觉效果。图14(b)为采集到的经过混沌加密后的某一帧图像,由于混沌加密算法会使图像的像素值位宽变长,不能直接存放,需要将像素值截断成RGB565的数据才能进行存储。图4(c)为经过逆运算后得到的解密图像。
4.2 安全性能分析
这里的安全性能分析主要是通过一幅图像灰度值的统计特性来分析加密算法的安全性,采用Matlab计算出原图像与加密后的灰度信息进行对比。
原图像灰度值的统计直方图,如图5所示,从图中可以了解到,图像的频率分布主要在低频到中频区域内。
加密后图像灰度值的统计直方图,如图6所示。对图5和图6进行比较,可以看出,经过置乱和扩散加密的图像灰度值统计特性发生了明显的变化,图像的频率遍布整个频率空间,这种效果正是置乱和扩散算法在加密中的充分体现,也是图像加密的安全性要求。正是由于混沌的这种特性,使得入侵者难以通过加密图像的灰度值统计特性来破译文件,从而增加密文图像的安全性。
5 结束语
实验完成了基于FPGA平台的视频采集系统的实现和混沌置乱扩散加密的算法设计。从实验结果来看,设计达到设定的且标,加密的性能和效果基本满足实际应用的要求。由于系统采用的置乱扩散算法比较简单,因此接下来的工作就是要利用更为复杂的混沌系统作为密码流对视频数据进行加密,以使视频加密的安全性更好。