一种视频混沌保密通信装置及方法与流程

文档序号:17728628发布日期:2019-05-22 02:41阅读:268来源:国知局
一种视频混沌保密通信装置及方法与流程

本发明实施例涉及保密通信技术领域,尤其涉及一种视频混沌保密通信装置及方法。



背景技术:

近年来,采用中低端fpga技术平台实现实时视频混沌保密通信已有诸多报道,中低端fpga技术平台由于硬件资源以及数据处理能力不足等原因,在视频混沌保密通信的硬件实现与应用方面受到了较大限制。采用高端fpga技术平台实现安全性更高和实时性更好的多媒体混沌保密通信是近年来人们关注的一个热点课题。众所周知,采用fpga技术实现视频混沌保密通信,需要从安全性、实时性、设计难度等各个角度来综合考虑。例如,在安全性方面,需要设计一套安全性能高并且易于硬件实现的混沌加密算法。在实时性方面,需要解决各个信号之间严格的时序关系以及视频数据格式的转换和处理等一系列技术问题。在设计难度方面,基于tcp/ip协议的以太网传输设计难度大并且稳定性的处理也相对较为困难。



技术实现要素:

本发明提供一种视频混沌保密通信装置及方法,以解决现有技术的不足。

为实现上述目的,本发明提供以下的技术方案:

第一方面,本发明提供一种视频混沌保密通信装置,包括视频发送端和视频接收端,所述视频发送端包括第一fpga芯片、原始视频数据缓冲区、数据发送装置、摄像头以及第一显示器,所述视频接收端包括第二fpga芯片、解密视频数据缓冲区、数据接收装置以及第二显示器;

所述第一fpga芯片包括视频采集模块、第一hdmi控制器、第一vdma、第二vdma、混沌加密模块和网络发送模块;

所述视频采集模块,用于控制所述摄像头采集视频数据,并通过所述第一vdma保存至所述原始视频数据缓冲区;

所述第一hdmi控制器,用于通过所述第一vdma获取保存在所述原始视频数据缓冲区的原始视频数据,并通过所述第一显示器进行显示;

所述混沌加密模块,用于通过所述第二vdma获取保存在所述原始视频数据缓冲区的原始视频数据,并基于预设的混沌加密算法,对所述原始视频数据进行加密处理,得到加密数据;以及用于通过所述网络发送模块将所述加密数据发送至所述数据发送装置,由所述数据发送装置转发至所述数据接收装置;

所述第二fpga芯片包括第二hdmi控制器、第三vdma、混沌解密模块和网络接收模块;

所述网络接收模块,用于获取从所述数据接收装置传输的所述加密数据,并将所述加密数据发送至所述混沌解密模块;

所述混沌解密模块,用于基于预设的混沌解密算法,对所述加密数据进行解密处理,得到相应的解密数据,并通过所述第三vdma保存至所述解密视频数据缓冲区;

所述第二hdmi控制器,用于通过所述第三vdma获取保存在所述解密视频数据缓冲区的解密数据,并通过所述第二显示器进行显示。

进一步地,所述视频混沌保密通信装置中,所述数据发送装置和数据接收装置均包括网络子板和路由器。

进一步地,所述视频混沌保密通信装置中,所述混沌加密模块和混沌解密模块均采用axis协议作为接口协议。

进一步地,所述视频混沌保密通信装置中,所述axis协议所涉及的信号包括tvalid、tready、tdata[31:0]、tuser和tlast;

其中,tvalid和tdata[31:0]为模块之间的握手信号,其中tuser为上一级模块输出到下一级模块的数据有效握手信号,tlast为下一级模块输出到上一级模块数据准备完成的握手信号,tdata[31:0]为视频数据信号,tuser为帧起始信号,tlast为行结束信号。

进一步地,所述视频混沌保密通信装置中,所述混沌加密模块和混沌解密模块中的信号通道均为并行通道;

其中,所述混沌加密模块和混沌解密模块中的并行通道分别处理tdata[31:0]、tuser、tlast以及data_en;

所述混沌加密模块和混沌解密模块中的每个信号通道均具备多级流水线结构,每级流水线采用d触发器对数据进行缓存,通过多级流水线技术来保持通道之间严格的时序关系。

第二方面,本发明提供一种视频混沌保密通信方法,采用本发明任意实施例所提供的视频混沌保密通信装置执行,所述视频混沌保密通信装置包括视频发送端和视频接收端,所述视频发送端包括第一fpga芯片、原始视频数据缓冲区、数据发送装置、摄像头以及第一显示器,所述视频接收端包括第二fpga芯片、解密视频数据缓冲区、数据接收装置以及第二显示器;所述第一fpga芯片包括视频采集模块、第一hdmi控制器、第一vdma、第二vdma、混沌加密模块和网络发送模块;所述第二fpga芯片包括第二hdmi控制器、第三vdma、混沌解密模块和网络接收模块;所述方法包括:

所述视频采集模块控制所述摄像头采集视频数据,并通过所述第一vdma保存至所述原始视频数据缓冲区;

所述第一hdmi控制器通过所述第一vdma获取保存在所述原始视频数据缓冲区的原始视频数据,并通过所述第一显示器进行显示;

所述混沌加密模块通过所述第二vdma获取保存在所述原始视频数据缓冲区的原始视频数据,并基于预设的混沌加密算法,对所述原始视频数据进行加密处理,得到加密数据;以及通过所述网络发送模块将所述加密数据发送至所述数据发送装置,由所述数据发送装置转发至所述数据接收装置;

所述网络接收模块获取从所述数据接收装置传输的所述加密数据,并将所述加密数据发送至所述混沌解密模块;

所述混沌解密模块基于预设的混沌解密算法,对所述加密数据进行解密处理,得到相应的解密数据,并通过所述第三vdma保存至所述解密视频数据缓冲区;

所述第二hdmi控制器通过所述第三vdma获取保存在所述解密视频数据缓冲区的解密数据,并通过所述第二显示器进行显示。

进一步地,所述视频混沌保密通信方法中,所述数据发送装置和数据接收装置均包括网络子板和路由器。

进一步地,所述视频混沌保密通信方法中,所述混沌加密模块和混沌解密模块均采用axis协议作为接口协议。

进一步地,所述视频混沌保密通信方法中,所述axis协议所涉及的信号包括tvalid、tready、tdata[31:0]、tuser和tlast;

其中,tvalid和tdata[31:0]为模块之间的握手信号,其中tuser为上一级模块输出到下一级模块的数据有效握手信号,tlast为下一级模块输出到上一级模块数据准备完成的握手信号,tdata[31:0]为视频数据信号,tuser为帧起始信号,tlast为行结束信号。

进一步地,所述视频混沌保密通信方法中,所述混沌加密模块和混沌解密模块中的信号通道均为并行通道;

其中,所述混沌加密模块和混沌解密模块中的并行通道分别处理tdata[31:0]、tuser、tlast以及data_en;

所述混沌加密模块和混沌解密模块中的每个信号通道均具备多级流水线结构,每级流水线采用d触发器对数据进行缓存,通过多级流水线技术来保持通道之间严格的时序关系。

具体的,本发明提供的内容包括混沌加密模块和混沌解密模块的设计与实现方法、网络发送模块与网络接收模块设计与实现方法、fpga片上系统架构设计与实现方法三个方面,它们均采用ip核集成的方法设计与实现。

(1)混沌加密和解密模块设计与实现

混沌加密和解密模块设计与实现包括axis接口协议、同步fifo(firstinfirstout)数据处理、并行多通道、多级流水线、状态机控制和q格式定点运算的结构方式。具体设计与实现方法如下:

(a)输入端和输出端具有axis接口协议,当握手信号tvalid和tready为高电平时触发数据传输,当握手信号tvalid和tready为低电平时暂停数据传输。其中tvalid为上一级模块输出到下一级模块的数据有效握手信号,tready为下一级模块输出到上一级模块数据准备完成的握手信号。通过加密模块、解密模块与vdma之间的通信,实现视频加密、解密和存储功能。

(b)混沌加密和解密模块工作时钟频率为100mhz,该工作时钟频率由virtex-7平台提供,由于模块内部和外部具有相同的时钟源,故采用同步fifo对视频数据进行缓存处理。

(c)混沌加密和解密模块具有并行多通道和流水线结构。并行通道分别处理4个信号tdata[31:0]、tuser、tlast、data_en,其中tdata[31:0]为4个字节的视频数据信号,采用argb格式来表示,其中为1个字节的全0扩展数据,为1个字节的红基色数据,为1个字节的绿基色数据,为1个字节的蓝基色数据,故为3个字节的三基色数据,tuser为帧起始信号,tlast为行结束信号,data_en为数据有效性使能信号。注意到每个通道具备多级流水线结构,流水线采用d触发器对数据进行缓存,并由系统时钟触发工作,在流水线工作过程中,通道之间保持严格的时序关系。

(d)在流水线结构中嵌入状态机控制单元,对混沌加密算法按状态转换操作,提升全局时序操控能力。

(e)采用有符号64位q32的定点格式表示加密和解密方程的密钥参数和状态变量,采用乘法器和加法器专用运算资源实现定点运算,提高运算速度。

(2)网络发送模块和网络接收模块设计与实现

网络发送模块和网络接收模块包括axis接口协议、异步fifo数据处理、并行多通道、多级流水线。具体设计与实现方法如下:

输入端和输出端具有axis接口协议,当tvalid和tready为高电平时触发数据传输,当tvalid和tready为低电平时暂停数据传输。通过混沌加密模块、网络发送模块、网络接收模块、混沌解密模块与vdma之间的通信,共同实现视频加密、网络发送、网络接收、视频解密和视频存储的功能。

网络发送模块和网络接收模块的外部工作时钟为100mhz,该工作时钟频率由virtex-7平台提供,网络发送模块和网络接收模块的内部工作时钟频率为125mhz,该工作时钟频率由toe网络子板提供,由于模块内部与外部的时钟源不同,为解决异步时钟造成数据读写不同步问题,故采用异步fifo对视频数据进行同步处理。

(c)网络发送模块和网络接收模块具有并行多通道和流水线的结构。并行通道分别处理tdata[23:0]、tuser、tlast和其他控制信号。每个通道具备多级流水结构,流水线采用d触发器对数据进行缓存,并由系统时钟触发工作。在流水线工作过程中,通道间保持严格的时序关系。

(d)网络发送模块和网络接收模块具有串/并转换结构,从而解决模块输入输出的数据总线tdata[23:0]与内部的数据总线宽度不一致的问题。并/串转换将3字节宽度的并行数据转成1字节宽度的串行数据,完成网络发送和网络接收之后,通过串/并转换功能恢复3字节宽度的输出。采用选择器和计数器实现并/串转换功能,采用移位寄存器实现串/并转换功能。

(3)fpga片上架构设计与实现

fpga片上架构设计与实现能够解决virtex-7平台与ddr(doubledatarate)内存之间的通信问题以及virtex-7平台与toe网络子板之间的数据传输与处理问题。vdma负责virtex-7平台与ddr内存之间的数据传输,对ddr内存的数据进行读写操作,实现视频数据的存储与处理。网络发送模块与网络接收模块负责virtex-7平台与toe网络子板之间的数据传输与处理。virtex-7平台、vdma、toe网络子板、网络发送与接收控制模块和ddr内存共同参与视频帧同步和读写同步的控制,并保持严格的时序关系。fpga片上架构的合理设计使得视频流能够正确高效传输和处理。

本发明提供的一种视频混沌保密通信装置及方法,基于高端fpga平台技术实现了在硬件平台上对视频数据进行实时混沌保密通信的目的,具有安全性更高、实时性更好、设计难度低等优点,有利于加快视频混沌保密通信技术的日常应用及商业推广,具有巨大的商业应用价值。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为实施例一提供的一种视频混沌保密通信装置的硬件实现总框图;

图2为实施例一中混沌加密模块的结构框图;

图3为实施例一中混沌解密模块的结构框图;

图4为tlast、tuser、data_en的4级流水线电路原理图;

图5为实施例一中基于状态机控制的混沌加密方程运算子模块的结构框图;

图6为实施例一中基于状态机控制的混沌解密方程运算子模块的结构框图;

图7为实施例一中混沌加解密模块输入端axis接口协议子模块的结构框图;

图8为实施例一中混沌加解密模块输出端axis接口协议子模块的结构框图;

图9为实施例一中网络发送模块的结构框图;

图10为实施例一中网络接收模块的结构框图;

图11为实施例一中网络发送模块输入端axis接口协议模块的结构框图;

图12为实施例一中网络接收模块输出端axis接口协议模块的结构框图;

图13为实施例一中密钥匹配的硬件实现结果图;

图14为实施例一中密钥失配的硬件实现结果图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1是本发明实施例一提供的一种视频混沌保密通信装置的结构示意图。如图1所示,本发明实施例提供一种视频混沌保密通信装置,该装置包括:

视频发送端和视频接收端,所述视频发送端包括第一fpga芯片、原始视频数据缓冲区、数据发送装置、摄像头以及第一显示器,所述视频接收端包括第二fpga芯片、解密视频数据缓冲区、数据接收装置以及第二显示器;

所述第一fpga芯片包括视频采集模块、第一hdmi控制器、第一vdma、第二vdma、混沌加密模块和网络发送模块;

所述视频采集模块,用于控制所述摄像头采集视频数据,并通过所述第一vdma保存至所述原始视频数据缓冲区;

所述第一hdmi控制器,用于通过所述第一vdma获取保存在所述原始视频数据缓冲区的原始视频数据,并通过所述第一显示器进行显示;

所述混沌加密模块,用于通过所述第二vdma获取保存在所述原始视频数据缓冲区的原始视频数据,并基于预设的混沌加密算法,对所述原始视频数据进行加密处理,得到加密数据;以及用于通过所述网络发送模块将所述加密数据发送至所述数据发送装置,由所述数据发送装置转发至所述数据接收装置;

所述第二fpga芯片包括第二hdmi控制器、第三vdma、混沌解密模块和网络接收模块;

所述网络接收模块,用于获取从所述数据接收装置传输的所述加密数据,并将所述加密数据发送至所述混沌解密模块;

所述混沌解密模块,用于基于预设的混沌解密算法,对所述加密数据进行解密处理,得到相应的解密数据,并通过所述第三vdma保存至所述解密视频数据缓冲区;

所述第二hdmi控制器,用于通过所述第三vdma获取保存在所述解密视频数据缓冲区的解密数据,并通过所述第二显示器进行显示。

优选的,所述数据发送装置和数据接收装置均包括网络子板和路由器。

优选的,所述混沌加密模块和混沌解密模块均采用axis协议作为接口协议。

优选的,所述axis协议所涉及的信号包括tvalid、tready、tdata[31:0]、tuser和tlast;

其中,tvalid和tdata[31:0]为模块之间的握手信号,其中tuser为上一级模块输出到下一级模块的数据有效握手信号,tlast为下一级模块输出到上一级模块数据准备完成的握手信号,tdata[31:0]为视频数据信号,tuser为帧起始信号,tlast为行结束信号。

优选的,所述混沌加密模块和混沌解密模块中的信号通道均为并行通道;

其中,所述混沌加密模块和混沌解密模块中的并行通道分别处理tdata[31:0]、tuser、tlast以及data_en;

所述混沌加密模块和混沌解密模块中的每个信号通道均具备多级流水线结构,每级流水线采用d触发器对数据进行缓存,通过多级流水线技术来保持通道之间严格的时序关系。

更详细地,在本发明实施例提供的技术方案中,首先建立硬件环境。选用两套fpga开发平台作为视频发送端和视频接收端,本发明选用xilinx公司的virtex-7系列高端fpga平台的vc707开发板,芯片型号为xc7vx485t-2ffg1761。视频发送端和视频接收端分别采用hdmi接口连接显示器,两端通过fmc_hpc连接器连接toe网络子板和路由器连接形成局域网,配置发送端的ip地址为192.168.1.100,接收端的ip地址为192.168.1.101。另外发送端通过fmc_hpc连接器连接摄像头,摄像头型号为mt9p001。pc通过usb下载线下载fpga配置文件和可执行软件。

其次建立软件环境。win10操作系统的pc安装vivado开发工具用于fpga逻辑电路设计,选用2014.4.1版本;安装相同版本的sdk开发工具用于配置ddr与hdmi。先设计硬件电路,生成bitstream文件,再配置ddr与hdmi,生成elf文件。先下载bitstream文件,再下载elf文件,完成系统的启动。

图1中的视频发送端实现视频采集、显示、混沌加密和网络发送功能,视频接收端实现视频网络接收、混沌解密和显示功能。

整个系统共有2个视频数据缓冲区,分别为原始视频数据缓冲区和解密视频数据缓冲区,每个缓冲区有3个帧缓存,每个帧缓存存储一帧视频。在分辨率为640×480的情况下,帧缓存容量为1229kb。通过寄存器配置,在获得帧缓存首地址和容量值后,vdma的读写通道能够完整存取对应的3个帧缓存并且采用乒乓操作对其帧缓存进行读写。如图1所示,将原始视频数据缓冲区的3个帧缓存信息分别配置到第一vdma读通道、第一vdma写通道和第二vdma读通道的寄存器中;解密视频数据缓冲区的帧缓存配置到第三vdma读通道和写通道中。

第一vdma实现视频采集模块、hdmi控制器和ddr内存之间视频帧的传输功能。视频的存取和传输过程涉及到帧同步和读写同步控制,帧同步指vdma能够正确判别视频帧的边界,读写同步指vdma读写通道在操作相同缓冲区时应当保持的时序关系,要求读通道的操作应当滞后于写通道至少一个帧缓存,以防止帧缓存的读写冲突。vdma帧同步有tuser和fsync两种模式,tuser模式下的同步是以axis协议信号tuser进行触发控制,属于内部触发帧同步信号,fsync模式下的同步是以外部脉冲信号进行触发控制,属于外部触发帧同步信号。在本系统中所有的vdma的读通道均采用fsync模式进行帧同步,vdma的写通道均采用tuser模式进行帧同步。vdma的读写同步有dynamicmaster和dynamicslave两种模式,当读写通道操作相同缓冲区的情况下,写通道配置为dynamicmaster模式,读通道配置为dynamicslave模式,在此情况下如果读写通道分属于不同vdma模块时,还需要进一步将写通道的帧缓存指针输出信号frame_ptr_out连接到读通道的指针输入信号frame_ptr_in。操作相同缓冲区的读写通道必须进行读写同步模式的配置,特别是第一vdma写通道和第二vdma读通道之间还需要进一步连接指针信号。

采集原始视频后,通过第一vdma写通道依次循环写入3个帧缓存中。将tuser信号配置为写通道输入端的帧同步信号,该信号受视频采集模块控制。tuser上升沿触发写通道进行新一帧视频的接收和缓存,完成缓存后,写通道等待下一个tuser上升沿的到来。hdmi控制器完成一帧视频显示后,触发第一vdma传输新的一帧视频。将fsync信号配置为读通道输入端的帧同步信号,该信号受hdmi控制器控制。fsync上升沿触发第一vdma对帧缓存进行读操作。通过配置动态主从模式dynamicmaster和dynamicslave,使得写通道和读通道实现同步,因而同一时刻两个通道不操作相同的帧缓存,保证数据读写的准确性。

第二vdma实现ddr内存与混沌加密模块之间视频帧的传输功能。读通道选择输入端的fsync信号作为帧同步信号,fsync信号受网络发送模块控制。fsync信号上升沿触发读通道开始新的一帧视频的读取和传输。读通道配置为dynamicslave模式,并且接收来自第一vdma写通道的frame_ptr_out信号,两个通道获得读写同步。frame_ptr_out信号为当前帧缓存的标识信号。发送端网络发送模块每次完成一帧加密视频的发送后,触发第二vdma开始新的一帧视频传输和存储。接收端网络接收模块每完成一帧加密视频的接收后,通过解密模块得到解密视频,触发第三vdma进行视频帧的存取和传输。

第三vdma实现混沌解密模块,ddr内存与hdmi控制器视频帧的传输功能,读通道和写通道分别选择输入端的fsync信号和tuser信号作为帧同步信号。其中fsync信号受hdmi控制器控制,tuser信号通过网络接收模块计数产生。tuser上升沿触发写通道进行新一帧视频的接收和缓存,完成缓存后,写通道等待下一个tuser上升沿的到来。hdmi控制器完成一帧视频显示后,fsync上升沿触发第一vdma传输新的一帧视频。通过配置动态主从模式dynamicmaster和dynamicslave,使得写通道和读通道实现同步,因而同一时刻两个通道不操作相同的帧缓存,保证数据读写的准确性。

图2和图3分别为混沌加密模块和混沌解密模块,模块的输入和输出采用axis接口协议进行通信。axis协议输入接口信号有4个输入信号tvalid、tdata[31:0]、tuser、tlast和1个输出信号tready;axis协议输出接口信号有4个输出信号tvalid、tdata[31:0]、tuser、tlast和1个输入信号tready,clk为全局系统时钟信号。当满足tvalid=tready=1时,模块之间开始传输tdata[31:0]、tuser、tlast,其他情况时暂停传输。tdata[31:0]为4字节宽度的数据视频传输信号,tuser和tlast分别为帧起始和行结束信号,当tuser=1时,传输当前视频帧的第一个像素tdata[31:0],当tlast=1时,传输当前视频行的最后一个像素tdata[31:0]。需要说明的是,vdma的数据宽度为32bits,tdata[31:0]在协议接口中定义为4个字节argb,在混沌加密和解密模块中,仅对rgb字节进行传输与处理,因此,需要对a字节在协议接口输入端和输出端分别进行数据抽取与插值操作,故混沌加密和解密模块内部tdata[23:0]的数据宽度为3个字节。

混沌加密和解密模块具有并行多通道和多级流水线结构。并行通道包括同步信号tlast通道、同步信号tuser通道、串行数据信号tdata通道、数据有效性使能信号data_en通道,上述4个通道均为6级流水线结构。在系统时钟上升沿的触发下,流水线信号向下一级跳变。图中full信号为axis协议输出端fifo满信号,进行取反操作后得到信号作为流水线全局使能信号,时流水线正常工作。data_en为视频数据tdata的有效性标识信号,利用data_en与生成加密使能信号encrypt_en和解密使能信号decrypt_en,对tdata[23:0]和tdata_e[23:0]进行加密和解密处理。根据图2,在混沌加密模块中,对视频数据tdata[23:0]进行加密,得到视频加密数据tdata_e[23:0]。根据图3,在混沌解密模块中,对视频加密数据tdata_e[23:0]进行解密,得到解密视频数据tdata_d[23:0]。在图2-3所示的混沌加密和解密模块中,采用了具有4个状态的状态机控制方法来设计与实现混沌加密和解密,其中start为状态机前馈控制信号,利用start与生成前级流水线使能信号pipeline_en,每当一个数据输入到加密和解密模块时pipeline_en=0,前级流水线暂停工作,每当一个数据从加密和解密模块中输出时pipeline_en=1,前级流水线恢复正常工作。。根据流水线设计原则,全部信号都需要与tdata[23:0]和tdata_e[23:0]保持同步关系,具体解决方案是分别对tlast、tuser、data_en进行4级流水线设计,如图4所示。

在图5所示的基于状态机控制的混沌加密方程运算子模块中,混沌加密算法的数学表达式为

式中为加密端状态变量的第k次迭代数据,tdata_e[23:16](k)、tdata_e[15:8](k)、tdata_e[7:0](k)分别为tdata_e[23:16]、tdata_e[15:8]、tdata_e[7:0]的第k次迭代数据,其中k=1,2,3…为迭代次数。σ5=1.6×1017、σ6=1.7×1017、σ7=1.1×1017、εi=226(i=5,6,7),密钥参数aij(i,j=1,2,3,4,5,6,7)大小为

在(1)-(2)式中,状态变量与密钥参数均采用了有符号64位q32定点格式表示,通过专用fpga乘法器和加法器实现定点运算。

根据(1)式,对原始视频数据tdata[23:16]、tdata[15:8]、tdata[7:0]加密,得加密视频数据tdata_e[23:16]、tdata_e[15:8]、tdata_e[7:0],其数学表达式为

其中加密迭代序列si(k)(i=5,6,7)的数学表达式分别为

在图6所示的基于状态机控制的混沌解密方程运算子模块中,混沌解密算法的数学表达式为

式中为解密端状态变量的第k次迭代数据,其中k=1,2,3…为迭代次数,tdata_e[23:16](k)、tdata_e[15:8](k)、tdata_e[7:0](k)分别为红绿蓝三基色加密数据。

根据(5)式,对加密视频数据tdata_e[23:16]、tdata_e[15:8]、tdata_e[7:0]解密,得解密视频数据tdata_d[23:16]、tdata_d[15:8]、tdata_d[7:0],其数学表达式为

其中解密迭代序列为的数学表达式为

在密钥参数匹配情况下,成立,根据(3)式和(6)式,得tdata_d[23:16]=tdata[23:16]、tdata_d[15:8]=tdata[15:8]、tdata_d[7:0]=tdata[7:0],可知在接收端能正确解密出原始视频数据。而在密钥参数失配情况下,同理,根据(3)式和(6)式,得tdata_d[23:16]≠tdata[23:16]、tdata_d[15:8]≠tdata[15:8]、tdata_d[7:0]≠tdata[7:0],可知在接收端不能解密出原始视频数据。

在图5-6中,混沌加解密方程的3级乘法器运算和1级异或输出都是通过状态机控制来实现的。3级乘法器运算中的主要延时为乘法器运算延时,在满足时序的情况下,第1级乘法器运算中包括非线性运算、迭代序列运算、数据64位q定点格式处理、向下取整操作;第2级和第3级乘法器运算包括非线性运算与数据64位q定点格式处理;异或输出包括视频数据与混沌加/解密序列的异或与输出。为满足时序要求,需要对混沌加解密方程的运算采用状态机控制,使得系统的状态在一定条件下相互转移,每一级运算中的数据均由多层d触发器进行缓存,层数越多,代表数据宽度越大。

在加密模块中,采用状态机控制方法来完成4个状态的操作,分别记为s0、s1、s2、s3。其中s0、s1、s2分别控制第1、2、3级乘法器运算,s3控制异或输出。当encrypt_en=1时,状态机控制单元的输出使能信号en0=1,en3en2en1en0=0001,状态机前馈控制信号start=0,前级流水线暂停工作,此时状态机的状态为s0,完成第1级乘法器运算,运算结束后状态跳转到s1。当encrypt_en=0时,en0=0,第1级乘法器运算的输出保持原值,同时状态机停留在当前s0状态。当状态机控制单元的输出en1=1时,en3en2en1en0=0010,状态机前馈控制信号start=0,前级流水线暂停工作,状态机的状态为s1,完成第2级乘法器运算,运算结束后状态机跳转到s2状态。当状态机控制单元的输出en2=1时,en3en2en1en0=0100,状态机前馈控制信号start=0,前级流水线暂停工作,状态机的状态为s2,完成第3级乘法器运算,运算结束后状态机跳转到s3状态。当状态机控制单元的输出en3=1时,en3en2en1en0=1000,状态机前馈控制信号start=1,前级流水线恢复正常工作,状态机的状态为s3,完成视频数据与混沌加密序列的异或与输出操作,将加密视频数据输出,同时状态机跳转到s0状态。同理,解密模块的状态机控制方法与加密模块的状态机控制方法相似,不再详述。

混沌加解密模块输入端和输出端axis接口协议的原理图分别如图7和图8所示,其中包括双口ram存储器,axis协议接口和流水线接口三部分。

由于axis总线输入输出的时钟为同一个系统时钟,因此采用同步fifo存储器,内部选用双口ram对数据进行读写,选取34位存储宽度和2048的存储深度。其中34位的存储宽度是由信号tdata[31:0]、tuser和tlast合并而成,tdata[31:0]由4层d触发器表示,每层d触发器分别代表视频数据argb中的一个字节数据,2048的存储深度即有211个地址,读指针rd_ptr[10:0]与写指针wr_ptr[10:0]的有效地址空间均为11位。为了便于fifo空/满的判断,实际使用中选取12位的读写指针,即rd_ptr[11:0]与wr_ptr[11:0],其中的最高位仅作为判断fifo状态的标志位,而不作为地址使用。

fifo的每次读写都会导致读写指针自动加1,当读指针与写指针完全相等时,即wr_ptr[11:0]=rd_ptr[11:0],此时fifo为空状态。若读写指针的最高位不同且低位地址都相同,满足wr_ptr[11]≠rd_ptr[11]、wr_ptr[10:0]=rd_ptr[10:0],此时fifo为满状态。

在图7中,采用axis协议接口实现数据传输。axis协议输入接口为ip核的从设备端,其中tvalid为输入信号,tready为输出信号。当fifo存储器非满时,如果还进一步满足tvalid=1,则建立握手,wr_ptr_en=1,开始写入数据。当或tvalid=0时,握手失败,停止写入数据。当fifo存储器为非空时,如果还进一步满足则rd_ptr_en=1,开始读取数据。当时,停止读取数据。此外,还利用tvalid与生成wr_ptr_en,通过共同产生rd_ptr_en,其中full为fifo满信号,为full作取反运算后得到的,empty为fifo空信号,为empty作取反运算后得到的,并且注意到为图2-3的全局使能信号。

在图8中,axis的协议输出接口为ip核的主设备端,其中tvalid为输出信号,tready为输入信号,当fifo存储器为非满时,如果进一步还满足data_en=1,则wr_ptr_en=1,开始写入数据。当或data_en=0时,停止写入数据。fifo存储器为非空时,如果还进一步满足tready=1,则建立握手,rd_ptr_en=1,开始读取数据。当或tready=0时,握手失败,停止读取数据。此外,还利用data_en与生成wr_ptr_en,通过tready和共同产生rd_ptr_en,并且满足

在图7中,采用流水线接口实现存储器与流水线之间的数据传输。fifo输出tdata、tlast、tuser、data_en,分别进入各自的通道进行传输。如图2-3所示,当时,加密方程对tdata[23:0]作加密处理,解密方程对tdata_e[23:0]作解密处理,当data_en=0或时不作处理。

图9和图10分别为网络发送模块和网络接收模块。图9的输入端与图10的输出端采用axis接口协议进行通信。在网络传输过程中仅对加密后的rgb字节进行传输,针对a字节在协议接口输入端与输出端分别进行数据抽取与插值操作。

网络发送模块和网络接收模块具有多个并行通道,并行通道包括同步信号tlast通道、tuser通道、发送端串行数据信号tx_data通道、接收端串行数据信号rx_data通道、数据有效使能信号data_en通道、计数器进位信号c_out通道。根据图9,在外部控制信号user_send的触发下,tlast、tuser通过帧同步模块产生fsync信号,从而保证图1中的vdma2读写同步。图9-10中的tx_data和rx_data代表网络传输加密视频数据,tx_chan=rx_chan=001代表网络传输通道控制信号,tx_data和rx_data均为一个字节的加密视频数据,tx_en=data_en为网络发送使能信号,tx_full为toe网络子板提供的发送满信号,作取反运算后作为网络发送的全局数据使能信号。axis协议输出接口中的fifo满信号full作为全局使能信号,并且full=rx_full,rx_en信号为toe网络接收使能信号。

网络发送模块和网络接收模块具有串并转换结构。在图9中通过3选1数据选择器与计数器实现了数据并行转串行的功能,在图10中通过移位寄存器实现了数据串行转并行的功能。3选1数据选择器为3字节输入1字节输出,选择信号q_sel由2位计数器控制。在图9中2位计数器的进位信号c_out控制axis协议输入接口的数据输出,在图10中2位计数器的进位信号c_out控制帧同步模块产生同步信号tlast和tuser以及握手信号tvalid。

网络发送模块输入端和网络接收模块输出端axis接口协议的原理图分别如图11和图12所示,其中包括双口ram存储器和axis协议接口。

由于axis总线输入输出的时钟为不同时钟源,控制模块内部为toe网络子板提供的时钟,其时钟频率为125mhz,axis协议工作的时钟为virtex-7平台提供的时钟,其时钟频率为100mhz,因此本模块采用异步fifo存储器处理跨时钟域的数据转换与缓存,但由于异步fifo存储器中的读写操作分别采用不同的时钟进行读写,在判断fifo空满的情况时,涉及到时钟同步的问题,即将读写地址从一个时钟域同步到另一个时钟域中进行比较。当采用二进制编码计数时会出现地址计数出错的问题,故采用格雷码编码对读写地址进行计数,硬件实现时,只需要将二进制数与自身右移一位之后作异或运算,则可将地址值转换为相应的格雷码格式。异步fifo存储器内部选用双口ram对数据进行读/写,选取34位存储宽度和2048的存储深度。其中34位的存储宽度是由信号tdata[31:0]、tlast和tuser合并而成,2048的存储深度即有211个地址,读指针rd_ptr[10:0]与写指针wr_ptr[10:0]的有效地址空间均为11位。对应读写地址采用12位格雷码rd_ptr_gray[11:0]和wr_ptr_gray[11:0]表示。为了便于fifo空/满的判断,实际使用中将取12位的读写指针,即rd_ptr_gray[11:0]与wr_ptr_gray[11:0],其中的最高位仅作为判断fifo状态的标志位,而不作为地址使用。fifo的每次读写都会导致读/写指针自动加1,当读指针与写指针完全相等时,即rd_ptr_gray[11:0]=wr_ptr_gray[11:0],此时fifo为空状态。对于fifo满状态的判断,由于格雷码除了最高位外,还有镜像对称的特点,即当所有有效地址完成一遍累加后,最高位的标志位为1,导致其余位不会像最高位为0的情况累加,而是作相反的处理。因此不能只检测最高位,还要考虑次高位,在格雷码格式上判断fifo的满状态需要满足以下三点:

(1)读写地址格雷码的最高位不相等。

wr_ptr_gray[11]≠rd_ptr_gray[11]

(2)读写地址格雷码的次高位不相等。

wr_ptr_gray[10]≠rd_ptr_gray[10]

(3)剩下的其余位完全相等。

wr_ptr_gray[9:0]=rd_ptr_gray[9:0]

在判断fifo存储器的空/满状态时,由于读/写地址的时钟域不同,故需要将读/写地址通过跨时钟域进行同步,将其放在相同的时钟下比较。采用二级寄存器作为数据的同步与缓存,其读/写指针的同步过程有两个:将写时钟域的写指针同步到读时钟域,将同步后的写指针与读指针进行比较产生读空信号;将读时钟域的读指针同步到写时钟域,将同步后的读指针与写时钟域的写指针进行比较产生写满信号。

在图11中,采用axis协议接口实现数据传输。axis的协议输入接口为ip核的从设备端,其中tvalid为输入信号,tready为输出信号。当fifo存储器为非满时,如果还进一步满足tvalid=1,则建立握手,wr_ptr_en=1,开始写入数据。当或tvalid=0时,握手失败,停止写入数据。当fifo存储器为非空时,如果还进一步满足c_out=1,则rd_ptr_en=1,开始读取数据。当或c_out=0时,停止读取数据。此外,还利用tvalid与生成wr_ptr_en,通过与c_out共同产生rd_ptr_en,并且满足clkin为模块内部时钟,clkout为模块外部时钟。

在图12中,axis的协议输出接口为ip核的主设备端,其中tvalid为输出信号,tready为输入信号。当fifo存储器为非满时,如果还进一步满足data_en=1,则wr_ptr_en=1,开始写入数据。当或data_en=0时,停止写入数据。当fifo存储器为非空时,如果还进一步满足tready=1,则建立握手,rd_ptr_en=1,开始读取数据。当或tready=0时,握手失败,停止读取数据。此外,还利用data_en与生成wr_ptr_en,通过tready与共同产生rd_ptr_en,并且满足

图13和图14分别为密钥匹配和密钥失配的硬件实现结果图,根据以上所选取的硬件平台与采用的设计方法,实现了一种基于virtex-7的视频混沌保密通信实现方法与装置。

本发明提供的一种视频混沌保密通信装置,基于高端fpga平台技术实现了在硬件平台上对视频数据进行实时混沌保密通信的目的,具有安全性更高、实时性更好、设计难度低等优点,有利于加快视频混沌保密通信技术的日常应用及商业推广,具有巨大的商业应用价值。

实施例二

本发明实施例二提供一种视频混沌保密通信方法。该方法由本发明实施例所提供的视频混沌保密通信装置执行,所述视频混沌保密通信装置包括视频发送端和视频接收端,所述视频发送端包括第一fpga芯片、原始视频数据缓冲区、数据发送装置、摄像头以及第一显示器,所述视频接收端包括第二fpga芯片、解密视频数据缓冲区、数据接收装置以及第二显示器;所述第一fpga芯片包括视频采集模块、第一hdmi控制器、第一vdma、第二vdma、混沌加密模块和网络发送模块;所述第二fpga芯片包括第二hdmi控制器、第三vdma、混沌解密模块和网络接收模块;所述方法包括:

所述视频采集模块控制所述摄像头采集视频数据,并通过所述第一vdma保存至所述原始视频数据缓冲区;

所述第一hdmi控制器通过所述第一vdma获取保存在所述原始视频数据缓冲区的原始视频数据,并通过所述第一显示器进行显示;

所述混沌加密模块通过所述第二vdma获取保存在所述原始视频数据缓冲区的原始视频数据,并基于预设的混沌加密算法,对所述原始视频数据进行加密处理,得到加密数据;以及通过所述网络发送模块将所述加密数据发送至所述数据发送装置,由所述数据发送装置转发至所述数据接收装置;

所述网络接收模块获取从所述数据接收装置传输的所述加密数据,并将所述加密数据发送至所述混沌解密模块;

所述混沌解密模块基于预设的混沌解密算法,对所述加密数据进行解密处理,得到相应的解密数据,并通过所述第三vdma保存至所述解密视频数据缓冲区;

所述第二hdmi控制器通过所述第三vdma获取保存在所述解密视频数据缓冲区的解密数据,并通过所述第二显示器进行显示。

优选的,所述数据发送装置和数据接收装置均包括网络子板和路由器。

优选的,所述混沌加密模块和混沌解密模块均采用axis协议作为接口协议。

优选的,所述axis协议所涉及的信号包括tvalid、tready、tdata[31:0]、tuser和tlast;

其中,tvalid和tdata[31:0]为模块之间的握手信号,其中tuser为上一级模块输出到下一级模块的数据有效握手信号,tlast为下一级模块输出到上一级模块数据准备完成的握手信号,tdata[31:0]为视频数据信号,tuser为帧起始信号,tlast为行结束信号。

优选的,所述混沌加密模块和混沌解密模块中的信号通道均为并行通道;

其中,所述混沌加密模块和混沌解密模块中的并行通道分别处理tdata[31:0]、tuser、tlast以及data_en;

所述混沌加密模块和混沌解密模块中的每个信号通道均具备多级流水线结构,每级流水线采用d触发器对数据进行缓存,通过多级流水线技术来保持通道之间严格的时序关系。

本发明提供的一种视频混沌保密通信方法,基于高端fpga平台技术实现了在硬件平台上对视频数据进行实时混沌保密通信的目的,具有安全性更高、实时性更好、设计难度低等优点,有利于加快视频混沌保密通信技术的日常应用及商业推广,具有巨大的商业应用价值。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1