基于 FPGA 的图像及视频加密解密系统

第一部分 设计概述

1.1 设计目的
在多媒体技术高度发展的今天,视频信息安全愈发受到人们的关注。传统的视频加密方法主要应用在软件层面上,其算法设计复杂、加密速度慢,不适用于视频的实时加密。FPGA 器件凭借高带宽全并行的特性可以实现高速运算和视频采集,能够满足视频的实时性要求,但开发难度较大。ARM 器件具备易于开发 的优势,但其运算速度低。图像的保密技术主要有图像加密技术和图像隐藏技术两种。解密通过与加密算法配套的解密操作与密钥,获得原始图像的信息,从而可以有效的保护原始图像的隐秘性和信息的安全传输。

因此,本次比赛我们使用自制的 FPGA 板卡完成图像及视频加密解密系统, 发挥 FPGA 的高并行性及 FPGA 的 IP 核重用优势,对比传统软件上实现的图像加密解密速度慢,具有实时高速的优点。本设计使用 Zynq7020 芯片采用自制的 双 hdmi 拓展板,结合 FPGA 与 ARM 的优势。在硬件层面分为加密端和解密端, 加密端实现基于摄像头传感器的视频实时采集、加密和密匙流动态配置功能;解密端实现基于 hdmi in 数据的实时读取、解密、并通过 hdmi out 接口输出。在软件算法层面主要结合了基于 Logistic 混沌序列的像素加密手段和基于 Arnold 猫映射的图像置乱加密手段,具体内容见下面章节介绍。

1.2 应用领域
此技术可应用于传输含有个人隐私、企业信息、国家机密等重要信息的视频及图像数据,如安防监控、视频会议等。

1.3 主要技术特点
在算法层面上,首先通过确定好图像像素的地址,通过运用 Arnold 猫映射对确定好的像素地址进行置乱。由于该操作不会改变像素本身的值,存在被暴力破解的风险。因此在经过上述操作后,还需要通过使用 Logistic 混沌映射对像素点本身的值进行置乱,改变像素点的值,保证图像的安全性。在硬件层面上,线性反馈位移寄存器所产生的伪随机序列具有良好的相关 性,运用该特性实现混沌图像加密算法硬件化。

1.4 关键性能指标
(1)密钥空间

(2)密文图像的相邻像素间的相关性

(3)密图的信息熵

(4)输出视频的帧率

1.5 主要创新点
(1)结合图像与视频的相关性,在静态图像加密技术的基础上完成彩色视频加密技术的开发;

(2)加密算法方面,结合了 Logistic 混沌映射图像扩散算法和 Arnold 猫映射图像置乱算法,具有较好的抵抗统计学、信息熵和差分攻击能力,保证了图像的安全性;

(3)运用 Zynq 系列芯片,在 FPGA 上完成视频的采集、加密、解密和显示, 在 ARM 上完成数据的传输以及各模块的调用,充分结合了 ARM 易开发和 FPGA 高性能、低功耗的优势。

第二部分 系统组成及功能说明

2.1 整体介绍
本设计使用 Zynq7020 芯片采用自制的双 hdmi 拓展板,结合 FPGA 与 ARM 的优势。在硬件层面分为加密端和解密端,加密端实现基于摄像头传感器的视频实时采集、加密和密匙流动态配置功能;解密端实现基于 hdmi in 数据的实时读取、解密、并通过 hdmi out 接口输出。下面分别是加密端整体框图和解密端整体框图。

加密端框图:

解密端框图:

2.2 各模块介绍
(1)OV7670 图像采集模块:

此模块主要的任务是配置外部摄像头和拼接视频流数据。采用 SCCB 接口对外界 OV7670 摄像头内部寄存器进行配置,同时提供 XCLK 时钟源联合控制摄像头的帧率,显示分辨率等一系列参数。

(2)HDMI_OUT 图像并转串输出模块:

此模块主要功能是完成对物体识别模块的视频流转化为 TMDS 差分信号,并完成时钟的配置驱动外部 HDMI 显示器或者接入另一块板卡的 hdmi 输入接口。

(3)HDMI_IN 图像串转并输入模块:

此模块主要功能是完成对物体识别模块的视频流转化为 TMDS 差分信号,并完成时钟的配置驱动外部 HDMI 显示器。显示器将实时显示双摄像头的画面,在有入侵情况下完成对物体的框选,使监控更直观方便。

(4)基于 Arnold 猫变换&logistic 混沌序列图像加密模块:

该模块主要完成了对于一帧图像数据的 Arnold 置乱加密与基于 logistic 混沌序列的像素点加密。其中置乱次数及密匙流为加密双方提前约定,固化与此 ip 中。采用 axi4-s 的视频流数据格式,基于 xilinx 的视频流标准,具有较好的可移植性。

(5)基于 Arnold 猫变换&logistic 混沌序列图像解密模块:

该模块主要完成了对于一帧图像数据的 Arnold 逆置乱解密与基于 logistic 混沌序列的像素点解密。注意两者顺序与加密模块正好相反,其中置乱次数及密匙流为加密双方提前约定,固化与此 ip 中。采用 axi4-s 的视频流数据格式,基于 xilinx 的视频流标准,具有较好的可移植性。

第三部分 完成情况及性能参数

Matlab 仿真加密效果:

3.1 灰度直方图统计
图像的灰度直方图可以反映图像中像素灰度的分布情况,通过图像灰度的分布特点来进行图像的恢复,攻击者可以利用这一特性对加密图像进行攻击。如果 加密后的图像的灰度值分布没有规律可循,攻击者也就无法通过像素灰度的分布特征来恢复图像。我们通过 matlab 仿真运算得到基于 Arnold 猫变换&logistic 混沌序列图像加密算法的加密后拥有较好的加密效果。

3.2 像素点相关性分析
图像的各相邻像素之间通常有一定的相关性,攻击者如果能够利用好这个现 象就有机会对加密图像实施攻击。所以对加密者而言,能否降低图像像素间的相关性是评价加密算法是否可行的一个重要依据。所以引入相关系数来衡量图像相 邻像素间的相关性。可以看到原图的水平、垂直和对角线方向的相邻像素相关性 很强,而加密后的图像水平、垂直和对角线方向上的相邻像素间相关系数值很小, 尤其是水平方向上的相关系数,为 5.186×10-4,远小于 0.01,即相关性很弱。

第四部分 总结
可扩展之处

(1)视频图像采集格式为 RGB888,即一个像素会占用 24bit 的空间,由这种格式组成一幅 640x480 的图像需要 1MB 左右,这种原始视频数据对于存储器的容量有很高的要求,对于后续的视频处理和传输工作都有很大的局限性。因此,后续可以设计一些算法对视频数据进行压缩,为存储器腾出空间,提高存储空间资源。

(2)本系统中采用 HDMI 实现加密视频数据板间传输,这种传输方式距离近,暂时无法远距离传播。因此,后续可以加入以太网等网络传输方式对视频进行传输,以推广该技术的应用。

本文转载自: FPGA技术江湖微信公众号

最新文章