基于混沌序列和扫描模式的视频序列加密算法是利用扫描模式通过对二维存储空间的不同访问方法来产生非常大的扫描路径或空间填充曲线,并使用正规语言来确定扫描模式。视频加密的过程通过求解视频序列中的相邻帧之间的差值矩阵,然后压缩该差值矩阵,最后再用扫描模式和混沌序列对该差值矩阵进行加密。基于混沌序列和扫描模式的置换和替代操作,组合成了具有良好密码特性的非线性耦合结构,而且在每次迭代过程中使用了密钥的融合操作,提高了视频加密算法的安全性。

一、扫描模式的原理

重排视频中每一帧视频图像的像素点的位置可以通过一系列的扫描模式(密钥)来完成,该扫描模式由一个具有加密特性的扫描语言来产生。通常我们用一个文法G=(τ,∑,A,Ⅱ)来定义扫描语言‘盯,非终结符τ ={A,S,P,U,V,T}终结符∑={c,d,o,s,r,a,e,m,y,w,b,z,x,B,Z,X,(,),spac, o,1,2,3,4,5,6,7},起始标识符是A,产生式规则Ⅱ如下:

视频加密算法之基于混沌序列和扫描模式的加密

上述具有加密特性的扫描语言的具体语义描述如下:

(a) A→S IP表示通过扫描模式5或者剖分模式P来处理像素块。

(b)S→UT表示通过扫描模式u和变换模式T来处理像素块。

(c)P→VT(AAAA)表示通过剖分模式y和变换模式T来处理像素块,然后再分别对每一个子区域从左到右进行A次剖分模式处理。

(d)U→c|d|o| s| r|a|e|m|y|w|b|z|x表示用连续光栅或对角或连续正交等经典扫描模式分别对像素块进行扫描处理(见图1)。

视频加密算法之基于混沌序列和扫描模式的加密
(e)V→B|Z|X表示用字母B或者字母z或者字母x分别对像素块进行剖分。

(f) T→0|1|2|3|4|5|6|7表示用8种扫描或剖分方式中的一种变换模式进行处理。

对于所有的扫描模式,0表示如图1所示的恒等变换,而2

表示对其进行90度的顺时针旋转。对于扫描模式c,o,s,a,e,m,y,w,b,x,4表示顺时针旋转270度;而对于扫描模式r,z,4表示对其做垂直映像,6表示对其做水平映像,然后再顺时针旋转90度。对于扫描模式d,4表示顺时针旋转90度,然后再对其做水平映像;6表示顺时针旋转180度,然后对其做垂直映像。

二、基于混沌序列和扫描模式的视频序列加密算法

本文提出的基于混沌序列和扫描模式的视频序列加密算法的核心思想是先求解相邻帧之间的差值矩阵,然后再压缩该差值矩阵,最后再加密该差值矩阵。

视频文件加密算法流程如下:

(1)求解相邻帧之间的差异矩阵G= (G1,G2,…,GN)。输入:视频文件V=(F1,F2,…,FN);输出:差异矩阵G=(G1,G2,…,Q)。定义视频序列的帧数为N,G=F1,G1=F1,
阈值矩阵T= F1,阈值TH由用户指定。对视频中的每相邻两帧进行如下运算:如果|Fk[i,j]- T[i,j]|≤TH,那么Gk[i,j]=-1,否则q[i,j]=0;其中1≤i≤h,1≤j≤w,2≤k≤N;w,h分
别为单帧图像的宽度和高度。

(2)压缩上述差异矩阵G,求得差异压缩矩阵X。

输入:差异矩阵G:输出:差异压缩矩阵X。

定义X=φ,Count=0,分解G为4×4大小的窗口。对其中每一个窗口W进行计算,如果W中包含至少一个不是-1的元素,那么X =Append (X,EncodeW indow (W)),Count=Count+1;
然后赋值X =Append (BaCount+n-4,X)。此处符号m,n分别表示用于表述横坐标x和纵坐标y的位数,C =Append (A,B)表示合并矩阵A,B得到C的操作。

函数EncodeW indow (W)的计算如下:定义U=φ(x,y)为W的左上角的坐标位置,U =Append (U,B。/4,m -2),U=Append(U,By/4,n-2),以光栅扫描顺序访问W中的每一个元素p,如果p= - 1,U =Append (U,O),否则U=Append (U,1),U=Append(U,Bp.k)。

(3)对视频序列V=(F1,F2,…,FN)进行加密,得到加密后的视频差异压缩矩阵。

输入:视频序列V=(F1,F2,…,FN);输出:加密后的差异压缩矩阵X和加密后的第一帧F,1。加密密钥K= {k1,k2,n,xo}由四部分组成,其中k1,b是扫描加密密钥,n是加密迭代次数,X是混沌序列的初始值,O<xo <1,利用Logistic映射产生密码流。函数J= Encrpt(L K)具体的加密算法如下:

输入矩阵A,由用户输入初始密钥K和迭代次数n以及初始值xo,由(2)式和k1生成混沌序列{X’k |k =0,1,2,…3 (w+h) n-1}。

定义矩阵A,D,G为二维矩阵,大小是w Xh;定义B,C,E,F为一维向量,长度为:

视频加密算法之基于混沌序列和扫描模式的加密

G= scan_decryp t(F,Xk2);J=G;对上述得到的矩阵J进行多次迭代加密,运算次数由用户输入的密钥迭代次数n决定,就可以得到多次加密后的矩阵J。

运用步骤(1),(2)对原始视频序列V进行加密,求得差异压缩矩阵,然后再用加密密钥K对x和F1进行加密得到X'=Encript(X,K),F,1=EncI)pt(F,K)。

反之亦然,视频文件解密过程是视频文件加密过程的逆运算。

三、实验结果与分析

为验证本文提出的视频加密算法和解密算法的正确性,应用本文提出的视频加密算法,在PInL 8GHz +512 MRAM的计算机上进行了算法仿真实验,实验结果见图2。

视频加密算法之基于混沌序列和扫描模式的加密

图2是对一段352×240×20(w=352,h=240,帧数20)的彩色Tennis标准视频序列进行加密和解密实验的结果,扫描加密密钥分别为:B2(x0,y3 ,s6,r 4),c4,加密迭代次数n=10。xo=0 73152836。从仿真结果可以看出,k1,k2的初值的微小差别都会造成不能正确解密,实验结果表明了本文提出的视频加密算法的可行性。

小知识之扫描模式

扫描模式是指条码设备在读取条码信息时所采用的方式,一般的划分方式如下: 按照读取设备所采用的读取方式可分为:CCD和激光两种扫描模式。