«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (5): 263-271  DOI: 10.19678/j.issn.1000-3428.0061608
0

引用本文  

韦丞婧, 李国东. 结合超混沌系统和Logistic映射的视频图像加密算法[J]. 计算机工程, 2022, 48(5), 263-271. DOI: 10.19678/j.issn.1000-3428.0061608.
WEI Chengjing, LI Guodong. Encryption Algorithm of Video Images Combining Hyper-Chaotic System and Logistic Mapping[J]. Computer Engineering, 2022, 48(5), 263-271. DOI: 10.19678/j.issn.1000-3428.0061608.

基金项目

国家自然科学基金“基于边缘探测细胞神经网络的雹云判识模型理论研究”(11461063);桂林电子科技大学研究生教育创新计划项目“基于高维超混沌的伪随机序列设计及在图像加密中的应用研究”(2021YCXS119)

作者简介

韦丞婧(1996—),女,硕士研究生,主研方向为图像处理、数据挖掘;
李国东,教授、博士、博士生导师

文章历史

收稿日期:2021-05-11
修回日期:2021-07-09
结合超混沌系统和Logistic映射的视频图像加密算法
韦丞婧 , 李国东     
桂林电子科技大学 数学与计算科学学院, 广西 桂林 541010
摘要:对视频图像使用传统的单幅图像加密算法,容易出现算法耗时长、效率低等问题。为提高视频图像加密效率,通过使用细胞神经网络(CNN)超混沌系统和Logistic混沌映射,提出一种单帧逐一加密和多帧组合加密相结合的算法。根据视频帧使用SHA-256生成Logistic初值,经过Logistic映射迭代得到Logistic混沌序列,利用生成的混沌序列对视频帧逐帧扩散。将视频帧以二进制的形式组合成一个矩阵,把根据组合矩阵产生的初值代入CNN超混沌系统,利用得到的混沌序列对组合矩阵进行置乱,视频所有帧各像素点扩散、置乱一步完成,从而缩短加密时间。在此基础上,将组合矩阵重新分解为单帧图像,得到最终加密的视频图像。实验结果表明,在算法中使用高维超混沌系统安全性更高,能够有效缩短加密视频图像的耗时,且能抵抗统计攻击、差分攻击和暴力攻击,具有较好的安全性。
关键词视频加密    细胞神经网络    超混沌系统    Logistic映射    哈希函数    
Encryption Algorithm of Video Images Combining Hyper-Chaotic System and Logistic Mapping
WEI Chengjing , LI Guodong     
Department of Mathematics and Computing Science, Guilin University of Electronic Technology, Guilin, Guangxi 541010, China
Abstract: Using the traditional single image encryption algorithm for video images is time-consuming and inefficient. To improve the efficiency of video image encryption, combined with the Cellular Neural Network(CNN) hyper-chaotic system and Logistic chaos mapping, an algorithm combining single frame encryption one by one and multi-frame combination encryption is proposed.According to the video frame, SHA-256 generates the initial value of logistic, and the logistic chaotic sequence is obtained through Logistic mapping iteration.The generated chaotic sequence diffuses the video frame by frame.The video frames are combined into a matrix in binary form, and the initial value generated by using the hash function according to the combination matrix is substituted into CNN hyper-chaotic system.The obtained chaotic sequence scrambles the combination matrix, and the diffusion and scrambling of each pixel of all video frames are completed in one step to shorten the encryption time.Simultaneously, the combination matrix is re-decomposed into a single frame image to obtain the final encrypted video image.Experiments show that using a high-dimensional hyper-chaotic system in the algorithm has higher security, effectively shortens the time spent encrypting video images, and can resist statistical attacks, differential attacks, and violent attacks.
Key words: video encryption    Cellular Neural Network(CNN)    hyper-chaotic system    Logistic mapping    Hash function    

开放科学(资源服务)标志码(OSID):

0 概述

在互联网技术不断发展、信息传递越发频繁的时代,各种形式的信息在网络上的传输极大地方便了人们的生活与工作。但在图像和视频的传输过程中,这些信息往往容易遭到非法窃取、篡改和传播,造成数据泄露,信息的安全得不到保障[1],尤其是在军事、航天、医学等一些关键领域,图像和视频信息的泄露可能会造成不可估量的损失。

混沌系统因具有确定性、随机性、初值敏感性、遍历性等特点[2],在图像加密算法设计中得到广泛运用[3]。同时,目前对混沌系统理论的研究也不断深入[4-7]

在图像加密设计研究中,研究者提出了许多针对单幅图像的加密算法设计。文献[8]提出了改进的Logistic映射方法,运用置乱-扩散同时操作的方式对图像进行加密。文献[9]提出了一种对多图像重组加密的算法,运用L-F级联混沌生成混沌序列,实现了对多幅不同尺寸的图像进行加密。文献[10]提出由Logistic映射改进的复合混沌系统,设计了一种新的S盒运用于加密。一维混沌映射简单直接,能够快速生成混沌序列,提高加密的速度,但其参数少且形式简单,容易遭到穷举攻击。文献[11]在使用低维混沌映射的基础上,提出结合动态DNA编码加密的算法,但根据混沌序列对图像分块选取不同DNA编码规则增加了加密用时,效率不高。文献[12]在一维Logistic混沌映射的基础上进行改进,扩大了混沌序列取值的范围,但该方法参数少,密钥空间较小。文献[13]提出使用混沌系统与压缩感知的方法对图像进行加密,增加了算法的复杂度,但由于加密过程有损,尽可能降低图像质量损失的方案设计较困难。

高维混沌系统具有复杂的动力学特性,而低维混沌系统应用在加密中安全性不足,这是因为低维混沌系统虽有正的李雅普诺夫指数,但值不够大,且容易发生简并,导致混沌动力学特性退化。同时,低维混沌系统的可变参数较少,导致密钥空间不大,无法抵御穷举攻击[14]。文献[7]提出运用细胞神经网络(Cellular Neural Network,CNN)混沌系统和Lorenz混沌系统进行双扩散加密的方法,增加了加密算法的复杂度和密钥空间,但高维混沌系统结构复杂,增加了计算用时[1],难以对信息量较大的视频图像进行加密。对于多图像的加密方案设计,文献[15]将多幅图像转换成二维码的方式,根据光学加密原理进行组合加密,实现了对多幅图像的快速加密,提高了效率,但图像转换二维码过程复杂,在实际应用中难以实现。在对视频加密的研究中,部分研究者提出对视频进行选择性加密的方法。文献[16]提出了先对视频码流进行分析选择,再对选取的部分进行加密的方法,节省了视频加密所需要的时间。然而,这一类视频加密算法在加密过程中需要对视频进行压缩,这会对原视频质量产生影响,因而所设计的加密方案不是无损的。

针对以上问题,本文提出一种视频帧逐一加密与组合加密相结合的视频图像加密算法。对视频帧逐帧加密,采用计算速度较快的Logistic混沌映射,对每帧图像使用哈希函数生成哈希值,计算控制每帧加密对应的混沌序列初值,生成混沌序列,再对视频帧进行逐一异或,达到一帧一密的效果。在此基础上,将所有视频帧进行组合,采用动力学特性更为复杂的六维细胞神经网络混沌系统生成混沌序列,根据混沌序列对组合矩阵进行置乱扩散,再分解为单帧图像完成加密。

1 混沌系统 1.1 神经网络混沌系统

1988年,细胞神经网络(CNN)首次由CHUA等提出[17],其以细胞为基本单位,是一种局部互联的神经网络系统。由M行、N列个细胞排列组成的细胞神经网络系统定义如下:

$ {E}_{r}(i, j)=\\ \left\{c\right(m, n)\left|\mathrm{m}\mathrm{a}\mathrm{x}\{\left|m-i\right|, \left|n-j\right|\}\le r, 1\le m\le M, 1\le n\le N\}\right. $ (1)

其中:$ {E}_{r}(i, j) $为半径为r的第i行第j列的细胞的邻域;$ c(m, n) $为邻域内的细胞。

细胞的状态方程可表示如下:

$ P{\dot{x}}_{i}=-\left(\frac{1}{{R}_{x}}\right){x}_{ij}+Q+\sum\limits_{{C}_{mn}\in {E}_{r}(i, j)}A(i, j;k, l){y}_{kl}+\\ \, \, \, \, \, \, \, \, \, \, \, \, \sum\limits_{{C}_{mn}\in {E}_{r}(i, j)}B(i, j;k, l){W}_{kl} $ (2)

输出方程表示为:

$ {y}_{ij}=\frac{1}{2}\left(\left|{x}_{ij}\left(t\right)+1\right|-\left|{x}_{ij}\left(t\right)-1\right|\right) $ (3)

其中:$ \left|{W}_{kl}\right|\le 1, \left|{x}_{ij}\left(0\right)\right|\le 1, P > 0, {R}_{x} > 0 $Q为阈值常数;$ {y}_{ij} $为输出变量;P为线性电容;$ {R}_{x} $为线性电阻;A为反馈模板;B为控制模板。

研究表明,高维超混沌系统拥有更优良的混沌特性。因此,本文选用六维细胞神经网络混沌系统,其表达式如下[18]

$ \begin{array}{l}\left\{\begin{array}{l}{\dot{x}}_{1}=-{x}_{3}-{x}_{4}\\ {\dot{x}}_{2}=2{x}_{2}+{x}_{3}\\ {\dot{x}}_{3}=14{x}_{1}-14{x}_{2}\\ {\dot{x}}_{4}=100{x}_{1}-100{x}_{4}+200{y}_{4}\\ {\dot{x}}_{5}=18{x}_{2}+{x}_{1}-{x}_{5}\\ {\dot{x}}_{6}=4{x}_{5}-4{x}_{6}+100{x}_{2}\end{array}\right.\\ {y}_{4}=\frac{1}{2}\left(\left|{x}_{4}\left(t\right)+1\right|-\left|{x}_{4}\left(t\right)-1\right|\right)\end{array} $ (4)

计算Lyapunov指数,当$ t\to \mathrm{\infty } $时,$ {\lambda }_{1}=2.{748}_{}1, $ $ {\lambda }_{2}=-2.{984}_{}4, $$ {\lambda }_{3}=1.{241}_{}1, $$ {\lambda }_{4}=-14.{454}_{}9, $$ {\lambda }_{5}=-1.{412}_{}3, $$ {\lambda }_{6}=-83.{228}_{}2, $其中有2个正的李雅普诺夫指数,说明系统是超混沌系统。相比于仅使用一个一维混沌映射产生的6个混沌序列,使用六维CNN混沌系统产生的6个混沌序列动力学特性更复杂,随机性更高。因为具有2个及以上正的李雅普诺夫指数的混沌序列表明混沌轨道能够从多个维度产生分离,从而增加了不同序列间数值的随机性。

1.2 Logistic混沌映射

Logistic混沌映射是最简单的一维混沌映射。1995年,PHATAK对Logistic混沌映射的混沌特性进行了研究[19],给出其表达式为:

$ {X}_{n}=\mu {X}_{n-1}(1-{X}_{n-1}) $ (5)

其中:$ {X}_{n}\in \left(\mathrm{0, 1}\right), n=\mathrm{1, 2}, \cdots $。经研究表明,当$ \mu \in $ $ [3.{569}_{}{945}_{}\mathrm{627, 4}] $时,序列$ {X}_{n} $处于混沌状态。该一维混沌序列计算形式简单,且有很好的伪随机序列特性,被广泛运用于图像加密中。

2 伪随机序列发生器设计

获取混沌序列首先需要确定初始值[20]。根据混沌系统的初值敏感性,当初值仅发生微小变化时就会使得混沌序列的数值发生很大的变化。因此,在本文算法中,对视频每隔固定帧数选取一个视频帧,利用哈希函数生成该视频帧图像信息的摘要,并根据摘要信息计算更新伪随机序列的初值,以用于对视频的逐帧加密。将每次加密所用到的混沌系统的初值作为密钥,使得算法的密钥与视频明文图像相关,所需要加密的视频图像不同,产生的密钥也不同。

2.1 逐帧加密的伪随机序列发生器

将短视频按帧分成s张尺寸都为M×N的图像,间隔f帧更新一次混沌序列的初值,根据第$ 1+nf(n=\mathrm{0, 1}, \cdots ;1+nf\le s) $帧图像的像素矩阵,使用SHA-256哈希函数生成256位二进制表示的哈希值$ {L}_{1+nf} $

$ \begin{array}{l}{L}_{1+nf}=\{{l}_{(1+nf)1}, {l}_{(1+nf)2}, \cdots , {l}_{(1+nf)256}\}\\ {l}_{(1+nf)j}\in \left\{\mathrm{0, 1}\right\}, j=\mathrm{1, 2}, \cdots , 256\end{array} $ (6)

$ {L}_{1+nf} $转化成十进制数:

$ \begin{array}{l}{L}_{1+nf}^{\mathrm{\text{'}}}=\{{l}_{(1+nf)1}^{\mathrm{\text{'}}}, {l}_{(1+nf)2}^{\mathrm{\text{'}}}, \cdots , {l}_{(1+nf)78}^{\mathrm{\text{'}}}\}\\ {l}_{(1+nf)j}^{\mathrm{\text{'}}}\in \{\mathrm{0, 1}, \cdots , 9\}, j=\mathrm{1, 2}, \cdots , 78\end{array} $ (7)

$ {L}_{1+nf}^{\mathrm{\text{'}}} $中从左到右,每10位数字组成一个数,前一个数和后一个数按位异或再乘以$ {10}^{-10} $,得到由第$ 1+nf $帧图像产生的混沌序列的初值$ {x}_{1+nf}\left(0\right) $

$ \begin{array}{l}{x}_{1+nf}\left(0\right)=\left(\right({l}_{(1+nf)1}^{\mathrm{\text{'}}}{l}_{(1+nf)2}^{\mathrm{\text{'}}}\dots {l}_{(1+nf)10}^{\mathrm{\text{'}}})\mathrm{\oplus}\cdots \mathrm{\oplus}\\ \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, ({l}_{(1+nf)61}^{\mathrm{\text{'}}}{l}_{(1+nf)62}^{\mathrm{\text{'}}}\dots {l}_{(1+nf)70}^{\mathrm{\text{'}}}))\times {10}^{-10}\end{array} $ (8)

将初值代入到Logistic混沌系统中,迭代100+MN$ - $1次,去掉前100个值得到混沌序列$ {x}_{1+nf}\left(t\right), t=\mathrm{101, 102}, \cdots , 100+MN-1 $,再将混沌序列转换成取值范围在[0, 255]之间的数:

$ \begin{array}{l}{S}_{1+nf}\left(t\right)=\mathrm{f}\mathrm{l}\mathrm{o}\mathrm{o}\mathrm{r}\left({x}_{1+nf}\right(t)\times {10}^{14})\mathrm{m}\mathrm{o}\mathrm{d}\,\,256\\ t=\mathrm{101, 102}\text{,}\cdots \text{,}100+MN-1\end{array} $ (9)
2.2 组合加密的伪随机序列发生器

sM×N的像素矩阵转成二进制,组合成一个MN×8的矩阵,根据组合矩阵使用SHA-256哈希函数生成256位哈希值C

$ \begin{array}{l}C=\{{c}_{1}, {c}_{2}, \cdots , {c}_{256}\}\\ {c}_{i}\in \left\{\mathrm{0, 1}\right\}, i=\mathrm{1, 2}, \cdots , 256\end{array} $ (10)

将KC转化成十进制数$ C\mathrm{\text{'}} $

$ \begin{array}{l}C\mathrm{\text{'}}=\{{c}_{1}^{\mathrm{\text{'}}}, {c}_{2}^{\mathrm{\text{'}}}, \cdots , {c}_{78}^{\mathrm{\text{'}}}\}\\ {c}_{i}^{\mathrm{\text{'}}}\in \{\mathrm{0, 1}, \cdots , 9\}, i=\mathrm{1, 2}, \cdots \text{,}78\end{array} $ (11)

$ C\mathrm{\text{'}} $中从左到右取,每10位数字组成一个数,共取60位,再分别乘以$ {10}^{-10} $得到混沌序列的初值$ x\left(0\right)=\left\{{x}_{01}\left(0\right), {x}_{02}\left(0\right), {x}_{03}\left(0\right), {x}_{04}\left(0\right), {x}_{05}\left(0\right), {x}_{06}\left(0\right)\right\} $

$ x\left(0\right) $代入六维CNN方程中,迭代100+M×N$ - $1次,生成6个混沌序列,去掉前100个值,得到$ x\left(t\right)\mathrm{ }= $ $ \left\{{x}_{1}\right(t), {x}_{2}(t), {x}_{3}(t), {x}_{4}(t), {x}_{5}(t), {x}_{6}(t\left)\right\}, $$ t=\mathrm{101, 102},\cdots ,$$ 100+ $$ MN-1 $。对混沌序列做以下处理,将序列的取值范围变成[1,M×N]:

$ \begin{array}{l}S\left(t\right)=\mathrm{a}\mathrm{b}\mathrm{s}\left(\mathrm{f}\mathrm{l}\mathrm{o}\mathrm{o}\mathrm{r}\left(x\left(t\right)\times {10}^{14}\right)\right)\mathrm{m}\mathrm{o}\mathrm{d}\left(M\times N\right)+1\\ t=\mathrm{101, 102}\text{,}\cdots , 100+MN-1\end{array} $ (12)
3 多帧图像组合方法设计

本文对多帧图像组合的方法采用类似于计算机使用二进制储存信息的方式。例如,十进制数11和其二进制形式1011之间相互转换的规则为:

$ \begin{array}{l}\left\{\begin{array}{l}\mathrm{f}\mathrm{l}\mathrm{o}\mathrm{o}\mathrm{r}(11÷{2}^{3})=1\\ \mathrm{f}\mathrm{l}\mathrm{o}\mathrm{o}\mathrm{r}\left(\right(11-1\times {2}^{3})÷{2}^{2})=0\\ \mathrm{f}\mathrm{l}\mathrm{o}\mathrm{o}\mathrm{r}\left(\right(11-1\times {2}^{3}-0\times {2}^{2})÷{2}^{1})=1\\ \mathrm{f}\mathrm{l}\mathrm{o}\mathrm{o}\mathrm{r}\left(\right(11-1\times {2}^{3}-0\times {2}^{2}-1\times {2}^{1})÷{2}^{0})=1\end{array}\right.\\ 1\times {2}^{3}+0\times {2}^{2}+1\times {2}^{1}+1\times {2}^{0}=11\end{array} $ (13)

同样地,设视频共有s帧,将视频帧$ I=\{{I}_{1}, {I}_{2}, \cdots , {I}_{s}\} $转换成二进制,得到$ I\mathrm{\text{'}}=\left\{{I}_{1}^{\mathrm{\text{'}}}, {I}_{2}^{\mathrm{\text{'}}}, \cdots , {I}_{s}^{\mathrm{\text{'}}}\right\} $$ {I}_{i}^{\mathrm{\text{'}}}(i=\mathrm{1, 2}, \cdots , s) $M×N行8列、元素取值为0或1的矩阵,再做以下运算得到组合矩阵P

$ \mathit{\boldsymbol{P}}=\sum\limits_{i=1}^{s}{2}^{i-1}\times {I}_{i}^{\mathrm{\text{'}}} $ (14)

由于组合矩阵的每一行表示所有视频帧在相同位置的像素值,因此对组合矩阵进行置乱不仅会改变像素点的值,也会改变像素点的位置。

对组合矩阵P再按十进制转二进制的方式,可以重新分解成sM×N行8列的二进制矩阵:

$ \begin{array}{l}{I}_{1}^{\mathrm{\text{'}}}=\mathrm{f}\mathrm{l}\mathrm{o}\mathrm{o}\mathrm{r}(P\mathrm{\text{'}}÷{2}^{\mathrm{s}-1})\\ {I}_{i}^{\mathrm{\text{'}}}=\mathrm{f}\mathrm{l}\mathrm{o}\mathrm{o}\mathrm{r}\left(\left(P\mathrm{\text{'}}-\sum\limits_{j=1}^{i-1}I{c}_{j}\times {2}^{j-1}\right)÷{2}^{i-1}\right)\\ i=\mathrm{2, 3}, \cdots , s\end{array} $ (15)
4 图像加密

以灰度视频图像为例,完整的加密步骤描述如下:

1)将视频按帧分成sM×N的图像像素矩阵。

2)设置更新Logistic混沌初值的帧间隔f,对第$ 1+nf(n=\mathrm{0, 1}, \cdots ;1+nf\le s) $个像素矩阵分别使用SHA-256哈希函数生成图像的哈希值,经过2.1节所描述的算法计算得到加密第$ 1+nf $帧到第$ (n+1)f $帧图像对应的Logistic混沌序列的初值$ {x}_{1+nf}\left(0\right) $,代入Logistic混沌系统迭代得到$ n+1 $个混沌序列$ {x}_{1+nf}\left(t\right) $,并将序列按式(9)处理成取值范围为[0, 255]的伪随机序列$ {S}_{1+nf}\left(t\right) $

3)将Logistic混沌序列$ {S}_{1+nf} $分别与第$ 1+nf $帧~第$ (n+1)f $帧图像像素矩阵$ {I}_{1+nf}, {I}_{1+nf+1}, \cdots , {I}_{(n+1)f} $按位异或,最终得到经过逐帧加密的视频帧。

4)把每个经过逐帧加密后的像素矩阵$ {I}_{i}^{\mathrm{\text{'}}}(i=\mathrm{1, 2}, \cdots , s) $转换成sMN行8列的二进制矩阵。按照式(14)组合成一个MN行8列的组合矩阵P。由于计算机能达到的精度是$ {10}^{-15} $,因此进行一次组合最多能组合52帧图像矩阵。若需要加密的视频帧超过52帧,则需要每52帧做一个组合矩阵,再对多个组合矩阵分别进行加密。

5)对组合矩阵P按照2.2节所述方法,使用SHA-256函数生成组合矩阵的哈希值C,经过计算得到CNN混沌系统的初值$ x\left(0\right) $,代入CNN混沌系统迭代得到6个混沌序列$ x\left(t\right) $,并将序列按式(12)处理成取值范围为[1,M×N]的伪随机序列S

6)按从左到右、从上到下的顺序将$ P(i, j) $的值与$ P\left(u, v\right) $的值互换,其中uv计算公式如下;

$ \left\{\begin{array}{l}u=S(i, j\mathrm{m}\mathrm{o}\mathrm{d}\,\,6+1)\\ v=S(i, (j+1)\mathrm{m}\mathrm{o}\mathrm{d}\,\,6+1)\mathrm{m}\mathrm{o}\mathrm{d}\,\,8+1\end{array}\right. $ (16)

7)将替换后的组合矩阵按式(15)重新分解为s个二进制矩阵$ {\mathit{\boldsymbol{E}}}_{i}(i=\mathrm{1, 2}, \cdots , s) $,转回十进制表示形式,即得到s帧加密视频帧$ {E}_{i}^{\mathrm{\text{'}}}(i=\mathrm{1, 2}, \cdots , s) $

由于本文设计的加密算法为无损加密算法,因此解密过程即为加密过程的逆过程。将加密步骤用流程图表示,如图 1所示。其中:$ {L}_{1+1\times f}\mathrm{、} $$ {L}_{1+2\times f}\mathrm{、} $$ {L}_{1+n\times f} $$ {C}_{1}\mathrm{、} $$ {C}_{2}\mathrm{、} $$ {C}_{[s/52]+1} $分别为根据视频帧、组合矩阵使用SHA-256生成的哈希值;$ {x}_{1+i\times f}\left(0\right) $为第$ 1+i\times f(i=1, \cdots , n) $帧图像对应的Logistic混沌序列的初值;$ {x}_{1}\left(0\right), $$ {x}_{2}\left(0\right), $$ {x}_{[s/52]+1}\left(0\right) $为CNN混沌序列的初值,$ {S}_{1+i\times f}\left(t\right) $为第$ 1+i\times f(i=1, \cdots , n) $帧图像对应的Logistic混沌序列;$ {S}_{1}\left(t\right), $$ {S}_{2}\left(t\right), $$ {S}_{[s/52]+1}\left(t\right) $为对应的CNN混沌序列。

Download:
图 1 加密流程 Fig. 1 Encryption process
5 实验仿真和安全性分析

选取2个320×240视频的前12帧图像作为仿真实验中需要加密的图像。在逐帧加密中,对每一帧图像都更新Logistic混沌序列的初值,即更新初值的帧间隔f=1。将本文算法中六维CNN混沌序列改为初值不同、参数相同计算生成的6个Logistic混沌序列,同样对视频图像进行加密,比较两种加密方案的安全性能。经过本文算法加密,分别得到2个视频图像中第6、12帧的明文图像、加密图像和解密图像,如图 2图 3所示。

Download:
图 2 视频A部分帧加密和解密结果 Fig. 2 Encryption and decryption results for part of frames of video A
Download:
图 3 视频B部分帧加密和解密结果 Fig. 3 Encryption and decryption results for part of frames of video B
5.1 信息熵分析

信息熵是对信息量的量化度量,信息熵越接近8,表示图像所含信息量越小,随机性越强。本文计算了视频A和视频B每帧图像加密前后的信息熵,如表 1所示。表 2给出了视频A加密后平均每帧的信息熵,和仅使用一维Logistic混沌映射进行加密、其他文献提出的图像加密算法做比较。

下载CSV 表 1 视频帧加密前后信息熵 Table 1 Entropy of video frames before and after encryption
下载CSV 表 2 不同加密算法的信息熵比较 Table 2 Entropy comparison of different encryption algorithms

表 1表 2可以看出:经过加密后视频帧的信息熵皆达到了7.997,加密效果较好;本文的算法相比于其他算法加密的信息熵处于较高水平,且相比于仅用一维混沌加密得到的信息熵更高一些。

5.2 密钥空间分析

在本文设计的算法中,所用的Logistic混沌映射的1个参数和6阶CNN超混沌系统的78个参数可作为密钥,计算精度为计算机所能达到的精度$ {10}^{-14} $;在逐帧加密中,将每次更新得到的Logistic映射的初值作为密钥,算法中精度为$ {10}^{-10} $,可根据实际需要调整更新初值的间隔帧数,间隔越大,密钥个数越少;在组合加密中,每个组合矩阵所对应的CNN混沌系统的6个初值作为密钥,精度同样为$ {10}^{-10} $。在本文的仿真实验中,密钥空间可以计算为$ {10}^{14\times 79}\times {10}^{10\times 12}\times {10}^{10\times 6}={10}^{1\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }286} $。本文算法密钥空间足够大,能够抵御穷举攻击,且能够根据实际加密需要调整密钥个数,提高加密效率。

5.3 密钥敏感性分析

在图像加密中,密钥的敏感性是评价加密算法是否安全的一个重要指标。当算法的密钥仅发生微小变化,就能导致使解密失败,从而很好地抵御攻击。在本文实验中,将生成第1个Logistic混沌的初值减小,再对密文图像进行解密,得到第3帧的解密图像,如图 4所示。可以看出,本文提出的算法密钥敏感性较强。

Download:
图 4 改变密钥进行解密结果图 Fig. 4 Decryption results of changing key to ecrypt
5.4 抗差分攻击能力分析

破译者选用对指定像素点的值进行改变的不同明文图像,对同一加密算法进行加密,通过分析每次加密后图像之间的关联与差别总结出加密算法,能够达到破译的目的。若明文图像改变像素点的值后密文图像像素点的值随之改变,则能很好地抵抗差分攻击。NPCR和UACI指标能衡量密文图像的抗差分攻击能力,计算公式如下:

$ {N}_{\mathrm{N}\mathrm{P}\mathrm{C}\mathrm{R}}=\frac{\sum\limits_{i=1}^{M}\sum\limits_{j=1}^{N}D(i, j)}{M\times N}\times 100\mathrm{\%} $ (17)
$ \begin{array}{l}{U}_{\mathrm{U}\mathrm{A}\mathrm{C}\mathrm{I}}=\frac{\sum\limits_{i=1}^{M}\sum\limits_{j=1}^{N}\left|C1(i, j)-C2(i, j)\right|}{255\times M\times N}\times 100\mathrm{\%}\\ D(i, j)=\left\{\begin{array}{l}1, {C}_{1}(i, j)={C}_{2}(i, j)\\ 0, {C}_{1}(i, j)\ne {C}_{2}(i, j)\end{array}\right.\end{array} $ (18)

其中:$ {C}_{1}(i, j) $$ {C}_{2}(i, j) $分别为明文图像和更改了一个像素点的值的明文图像经过同样加密算法加密后第i行第j列的像素值。

在仿真实验中,分别将视频A和视频B第3帧明文图像第80行第100列的像素值改为0,经过加密后计算图像更改像素值前后的NPCR值和UACI值,并和仅使用一维Logistic混沌映射进行加密、其他文献加密算法进行比较,结果如表 3所示。可以看出,仅仅更改其中一帧图像的一个像素点的值,就能使每一帧的密文图像大部分像素值都发生变化。加入CNN高维混沌系统进行加密的UACI值有更好的表现,说明本文的加密算法较好。

下载CSV 表 3 视频帧NPCR和UACI的值 Table 3 NPCR and UACI of video frames
5.5 抗剪切攻击能力分析

视频图像在传输过程中还容易遭到剪切攻击,导致部分数据丢失的情况[8]。本文实验测试视频A丢失1/4、1/2的数据时解密的效果。图 5为解密前后第3帧的图像,可以看到,解密后的视频帧仍能基本还原图像,肉眼能够分辨得出图像内容,说明本文算法的抗剪切攻击能力较强。

Download:
图 5 视频A第3帧丢失部分数据解密效果 Fig. 5 Decryption of the third frame of video A with partial data missing
5.6 直方图分析

分别绘制视频A和视频B的第6帧、第12帧明文图像、密文图像直方图,如图 6所示。可以看出,视频帧原图像直方图分布及不均匀,呈现出了明显的规律,经过加密后像素点基本能在[0, 255]范围内均匀取值。

Download:
图 6 视频加密前后直方图 Fig. 6 Histograms of video frames before and after encryption
5.7 相邻像素点相关性分析

明文图像的相邻像素点通常具有较高相关性,相关系数接近于1。对图像进行加密需要消除这种相邻像素点间的相关性,才能很好地抵抗统计攻击。本文对视频A和视频B每一帧都在水平、垂直、对角3个方向上计算其相关系数,结果如表 4表 5所示。可以看出,经过本文加密后像素点相关系数都接近于0。

下载CSV 表 4 视频A每帧相邻像素点相关系数 Table 4 Correlation indexes between adjacent pixels of video A
下载CSV 表 5 视频B每帧相邻像素点相关系数 Table 5 Correlation indexes between adjacent pixels of video B

表 6给出了仿真实验中视频A加密后平均每帧相关系数,和仅使用一维Logistic混沌映射进行加密、其他文献提出的图像加密算法进行比较。可以看出,本文算法平均每帧相关系数最低达到0.003 749,很好地消除了像素点间的相关性,且使用CNN高维超混沌系统生成序列进行加密后像素点间的相关系数更低。

下载CSV 表 6 相邻像素点相关系数比较 Table 6 Comparison of correlation coefficients between adjacent pixels

选取视频A和视频B的第3帧,分别绘制加密前后在水平、垂直、对角3个方向上相邻像素点的散点图,如图 7图 8所示。可以看出,视频帧明文图像的相邻像素点散点图呈线性趋势,而加密后的散点图均分布均匀。

Download:
图 7 视频A第3帧加密前后相邻像素点散点图 Fig. 7 Adjacent pixel scatter plot of the third frame of video A before and after encryption
Download:
图 8 视频B第3帧加密前后相邻像素点散点图 Fig. 8 Adjacent pixel scatter plot of the third frame of video B before and after encryption
6 结束语

本文提出一种对视频帧图像逐一加密、组合加密相结合的视频加密算法。利用结构简单的一维Logistic混沌序列逐帧加密,通过随机性较强的六维CNN混沌序列对视频帧组合矩阵进行置乱。仿真实验结果表明,该算法引入具有复杂动力学特性的高维混沌系统,安全性能相比于仅使用一维混沌的算法要高,且具有较好的稳定性,同时算法复杂度和密钥个数可根据需要灵活改变,能适应不同的视频长度和不同的加密安全需要。此外,设计的组合加密方法能够通过一轮操作实现像素点位置和取值同时改变,提高了加密算法的效率。相比于单幅图像的加密,本文算法对视频按帧进行加密,所需要处理的数据量更大,更适用于对包含重要信息的短视频进行加密。后续将把算法推广到对时长更长、清晰度更高的视频进行加密,并进一步提高加密效率。

参考文献
[1]
周峰, 金蒙, 鄂姝. 视频图像篡改鉴定技术[J]. 中国公共安全(学术版), 2016(4): 112-115.
ZHOU F, JIN M, E S. Identication techniques of video image tampering[J]. China Public Security, 2016(4): 112-115. (in Chinese)
[2]
武剀, 李国东. 用细胞神经网络与无限折叠映射对图像加密[J]. 哈尔滨理工大学学报, 2015, 20(3): 30-34.
WU K, LI G D. A scheme on image encryption based on dimensional chaotic system[J]. Journal of Harbin University of Science and Technology, 2015, 20(3): 30-34. (in Chinese)
[3]
沈淑涛, 尼玛扎西. 基于区块链技术的双混沌可识篡改图像加密方法[J]. 吉林大学学报(工学版), 2021, 51(3): 1055-1059.
SHEN S T, NIMA Z X. Double chaos identifiable tampering image encryption method based on blockchain technology[J]. Journal of Jilin University(Engineering and Technology Edition), 2021, 51(3): 1055-1059. (in Chinese)
[4]
谢国波, 王添. 一种新的基于比特置乱的超混沌图像加密算法[J]. 微电子学与计算机, 2016, 33(7): 28-32, 38.
XIE G B, WANG T. A novel hyperchaotic image encryption algorithm based on bit scrambling[J]. Microelectronics & Computer, 2016, 33(7): 28-32, 38. (in Chinese)
[5]
赵锋, 吴成茂. 自编码和超混沌映射相结合的图像加密算法[J]. 计算机辅助设计与图形学学报, 2016, 28(1): 119-128.
ZHAO F, WU C M. Image encryption algorithm combined self-encoded theory with super-chaotic mapping[J]. Journal of Computer-Aided Design & Computer Graphics, 2016, 28(1): 119-128. (in Chinese)
[6]
张勋才, 刘奕杉, 崔光照. 基于DNA编码和超混沌系统的图像加密算法[J]. 计算机应用研究, 2019, 36(4): 1139-1143.
ZHANG X C, LIU Y S, CUI G Z. Image encryption algorithm based on DNA encoding and hyper-chaotic system[J]. Application Research of Computers, 2019, 36(4): 1139-1143. (in Chinese)
[7]
魏慧, 李国东. 基于细胞神经网络超混沌特性的图像加密算法[J]. 微电子学与计算机, 2020, 37(5): 43-48, 53.
WEI H, LI G D. Image encryption algorithm based on hyperchaotic characteristics of cellular neural networks[J]. Microelectronics & Computer, 2020, 37(5): 43-48, 53. (in Chinese)
[8]
曾祥秋, 叶瑞松. 基于改进Logistic映射的混沌图像加密算法[J]. 计算机工程, 2021, 47(11): 158-165, 174.
ZENG X Q, YE R S. Chaotic image encryption algorithm based on improved logistic map[J]. Computer Engineering, 2021, 47(11): 158-165, 174. (in Chinese)
[9]
郭媛, 周艳艳, 敬世伟. 基于图像重组和比特置乱的多图像加密[J]. 光子学报, 2020, 49(4): 174-186.
GUO Y, ZHOU Y Y, JING S W. Multiple-image encryption based on image recombination and bit scrambling[J]. Acta Photonica Sinica, 2020, 49(4): 174-186. (in Chinese)
[10]
FARAH M A B, FARAH A, FARAH T. An image encryption scheme based on a new hybrid chaotic map and optimized substitution box[J]. Nonlinear Dynamics, 2020, 99(4): 3041-3064. DOI:10.1007/s11071-019-05413-8
[11]
ZHENG J Y, LIU L F. Novel image encryption by combining dynamic DNA sequence encryption and the improved 2D logistic sine map[J]. IET Image Processing, 2020, 14(11): 2310-2320. DOI:10.1049/iet-ipr.2019.1340
[12]
CUN Q Q, TONG X J, WANG Z, et al. Selective image encryption method based on dynamic DNA coding and new chaotic map[J]. Optik, 2021, 243: 1-10.
[13]
WEI D Y, JIANG M J. A fast image encryption algorithm based on parallel compressive sensing and DNA sequence[J]. Optik, 2021, 238: 1-10.
[14]
温贺平, 禹思敏, 吕金虎. 基于Hadoop大数据平台和无简并高维离散超混沌系统的加密算法[J]. 物理学报, 2017, 66(23): 76-89.
WEN H P, YU S M, LÜ J H. Encryption algorithm based on Hadoop and non-degenerate high-dimensional discrete hyperchaotic system[J]. Acta Physica Sinica, 2017, 66(23): 76-89. (in Chinese)
[15]
LI W, CHANG X Y, YAN A M, et al. Asymmetric multiple image elliptic curve cryptography[J]. Optics and Lasers in Engineering, 2021, 136: 1-10.
[16]
刘博, 刘建东, 陈飞, 钟鸣, 张世博, 等. 基于整数动态耦合帐篷映射的视频加密算法[J]. 计算机应用与软件, 2019, 36(12): 309-315, 328.
LIU B, LIU J D, CHEN F, et al. A video encryption algorithm based on integer dynamic coupling tent map[J]. Computer Applications and Software, 2019, 36(12): 309-315, 328. (in Chinese)
[17]
CHUA L, YANG L. Cellular neural networks: theory[J]. IEEE Transactions on Circuits and Systems, 1988, 35(10): 1257-1272. DOI:10.1109/31.7600
[18]
WANG X Y, XU B, ZHANG H G. A multi-ary number communication system based on hyperchaotic system of 6th-order cellular neural network[J]. Communications in Nonlinear Science and Numerical Simulation, 2010, 15(1): 124-133. DOI:10.1016/j.cnsns.2009.03.035
[19]
PHATAK S C, RAO S S. Logistic map: a possible random-number generator[J]. Physical Review E, Statistical Physics, Plasmas, Fluids, and Related Interdisciplinary Topics, 1995, 51(4): 3670-3678.
[20]
赵凤, 梁静. 一种混合级联混沌的伪随机序列生成方法[J]. 洛阳师范学院学报, 2019, 38(8): 8-11.
ZHAO F, LIANG J. Pseudo-random sequence generation method for hybrid cascade chaos[J]. Journal of Luoyang Normal University, 2019, 38(8): 8-11. (in Chinese)
[21]
赵晓龙, 李博, 贾芃, 等. 改进约瑟夫遍历和分段Logistic映射的图像加密算法[J]. 电子器件, 2021, 44(1): 125-130.
ZHAO X L, LI B, JIA P, et al. Image encryption algorithm based on improved Joseph traversal and piecewise logistic mapping[J]. Chinese Journal of Electron Devices, 2021, 44(1): 125-130. (in Chinese)
[22]
FIRDOUS A, UR REHMAN A, SAAD MISSEN M M. A highly efficient color image encryption based on linear transformation using chaos theory and SHA-2[J]. Multimedia Tools and Applications, 2019, 78(17): 24809-24835. DOI:10.1007/s11042-019-7623-3
[23]
KHAN J S, AHMAD J. Chaos based efficient selective image encryption[J]. Multidimensional Systems and Signal Processing, 2019, 30(2): 943-961. DOI:10.1007/s11045-018-0589-x