洪苑玲-视频加密

漳州师范学院

毕业论文

基于超混沌Lorenz 系统的视频加密

Video Encryption Based on Hyperchaos Lorenz System

姓 名: 洪苑玲

学 号: 080401404

系 别: 数学与信息科学系

专 业: 数学与应用数学

年 级: 2008级

指导教师: 蔡建平教授

2012年1月5日

摘 要

视频加密技术在安全通信中应用广泛。本文基于超混沌Lorenz 系统,采用四阶龙格库塔算法产生的伪随机混沌序列对视频进行编码和解码,实现了视频加密的效果,保证传输的保密性。以原始视频“clock.avi ”为例,利用Matlab 运行编码和解码的程序,我们得到了结论来验证这个方法的可行性。仿真实验证明,该方法具有良好的加密效果及较强的安全性。

关键词:Lorenz 系统;伪随机序列;视频加密;

Abstract

Video encryption is widely used in information security.Based on Lorenz hyper-chaotic system ,the paper encodes and decodes video by adopting the pseudo-random chaotic sequence engendered by the fourth order Runge-Kutta,thus realizing the video encryption to which can guarantee the confidentiality of transmission.Take the video “clock.avi ”as an example.We will use matlab to run the encoded and decoded program,and get the conclusion to verify the feasibility of this method. Simulation experiments show that the method has a good effect on encryption and the stronger security.

Key words: Lorenz system; Pseudo-random sequence; Video encryption

中英文摘要………………………………………………………………………………………(I ) 引 言…………………………………………………………………………………………… (1) 1 AVI 视频文件结构特点………………………………………………………………………(2) 2 系统模型与问题陈述……………………………………………………………………… (2) 3 基于超混沌Lorenz 系统的视频加密算法…………………………………………………( 3)

3.1 AVI 视频文件的读入……………………………………………………………………(3)

3.2视频加密原理图…………………………………………………………………………(4) 3.3视频加密算法……………………………………………………………………………(4) 4 基于超混沌Lorenz 系统的视频解密算法…………………………………………………(7) 4.1视频解密原理图……………………………………………………………………… (7) 4.2视频解密算法………………………………………………………………………… (7) 4.3视频的读出…………………………………………………………………………… (9) 5 Matlab中的仿真实验结果与安全性分析…………………………………………………(10)

5.1加密和解密效果分析…………………………………………………………………(10)

5.2密钥敏感性分析………………………………………………………………………(11) 6 结论…………………………………………………………………………………………(12) 参考文献……………………………………………………………………………………… (14) 致谢…………………………………………………………………………………………… (15)

目前,随着网络通信技术和视频编码技术的快速发展,视频多媒体信息得到了广泛应用,非法拷贝、盗版、剽窃和篡改等成为当前关注的重要问题,因此有必要对视频编码进行深入研究。视频具有数据量大、编码结构特殊、实时性要求高等特点,尤其在网络媒体环境下视频的实时性要求更高,这些特点对现有加密算法提出了新要求。尽管此前也提出了很多MEPG 视频加密算法[1],如完全加密算[2]法、之字形扫描置乱算法[3]、VEA (Video Encryption Algorithm )[4]、选择性加密[5]等,但是本文提出了一种基于混沌系统的视频加密方案。

混沌序列在密码学方面的应用起源于80年代末期,由英国数学家Matthews 首先提出[6], 其后得到了一定的发展[7 8]。国内南京大学声学研究所倪皖荪等也应用混沌序列实现了对汉语语音信号的加密、解密及传输[9] 以及广西大学计算机与信息工程学院的唐秋玲等利用混沌系统对图像加密进行加密[10] 。在保密通信以及控制工程等方面混沌系统具有潜在的应用能力,混沌系统有着复杂的动力学行为。理论分析和数值仿真发现,混沌系统具有对初值/参数的高度敏感性、长期不可预测性和遍历性等特性,和密码学有着紧密的联系。因此,近年来基于混沌系统产生的伪随机序列引起了研究人员的极大兴趣。已有文献提出基于混沌系统的加密算法有:基于Logistic 映射、Henon 映射以及基于混沌系统生成二进制序列的方法[11]等。然而对于低维混沌的加密方案,已经有一些攻击方法可以将其破解[12]。考虑到超混沌系统具有比混沌系统更复杂的结构,类随机性更强,因此更适合用于保密通信。

基于上述的研究,本文以著名的Lorenz 混沌系统为研究对象, 先大体地介绍超混沌Lorenz 系统的模型,然后对视频进行帧处理,采用四阶龙格库塔产生的混沌序列完成对视频帧图像的编码和解码,从而实现了视频加密的效果,保证传输的保密性。本文所提出的加密算法的密钥是由产生混沌序列的初值构成,利用Matlab 实现了对视频的加密和解密,同时也证明了该方法的可行性与安全性。

1. AVI 视频文件结构特点[13]

音频视频交错格式AVI (Audio Video Interleaved )是将语音和影像同步组合在一起的文件格式。它对视频文件采用了一种有损压缩方式,但压缩比较高,AVI 支持256色和RLE 压缩,一个AVI 文件可以包含多个不同类型的媒体流,它以一系列的位图来存储视频信息,并在文件中加入以数字形式存储的数字化视频信息。

AVI 包含三部分:文件头、数据块和索引块。其中文件头包快文件的通用信息,定义数据格式及压缩算法等参数。数据块包含实际数据流,即图像和声音序列数据,是文件的主体,也是决定文件容量的主要部分。索引块包括数据块列表和它们在文件中的位置,以提供文件内数据随机存取能力。

2. 系统模型与问题陈述

超混沌Lorenz 系统的动力学方程为:

1=a (x 2-x 1) +x 4⎧x ⎪x ⎪ 2=cx 3-x 2-x 1x 3

⎨x (1) ⎪ 3=x 1x 2-bx 3

⎪ 4=-x 1x 3+rx 4⎩x

其中x =(x 1, x 2, x 3, x 4) T 为系统的状态变量,L =(a , b , c , r ) T 为系统的控制参数,选取参数(a , b , c , r )=(10, 8, 28, -1) 时,该系统处于混沌状态。采用四阶龙格库塔算法产生混沌迭代序列3

D ,其具体形式如下:

⎧K 1=f (x i , y i ) ⎪K =f (x +h /2, y +K *h /2) 2i i 1⎪⎪⎨K 3=f (x i +h /2, y i +K 2*h /2) (2) ⎪K =f (x +h , y +K +h ) i i 3⎪4

⎪⎩y i +1=y i +h /6(K 1+2K 2+2K 3+K 4)

根据式(1)和式(2)以及上述参数,可以得到Lorenz 混沌系统中吸引子的数值仿真结果,令初始条件x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458},t =1040时,图1所示为混沌吸引子的三维图形以及分别在(x , y ), (x , z ), (y , z )平面投影。

图1超混沌Lorenz 系统的混沌吸引子

3. 基于超混沌Lorenz 系统的视频加密算法

3.1 AVI 视频文件的读入

利用随机采样到的一段AVI 视频进行混沌加密,由于Matlab 中只支持ZJmedia Umcompress RGB24编码方式的AVI 视频文件,因此有必要把采集到的这段视频文件进行转换处理,使其能够无障碍地载入到Matlab 工具中。本文采用的是Matlab 默认的视频“clock.avi ”,运用mmread 工具包读入视频,将视频分别转存为video 和audio 。

3.2 视频加密原理图

本文基于超混沌Lorenz 系统采用四阶龙格库塔算法产生用于视频加密的混沌序列,并使用此混沌序列对视频的图像数据进行了加密,由于希望加密所用的混沌序列能够对明文的变化具有敏感性,因此将明文属性叠加到混沌映射的初值和参数中。视频编码如图所示:

图2 系统的编码模型

3.3 视频加密算法

视频加密的过程中,主要是针对读入视频的图片文件进行加密。具体操作过程如下:

(1)对原始视频进行帧处理。主要是读入视频,将视频的每帧转化为图片。相关程序如下:

[vid,audio]=mmread(’clock.avi ’); %读取视频; fnum=size(vid.frames,2); %读取视频的帧数; for i=1:fnum

strtemp=strcat(’c:\转换的图片\’,int2str(i),’. ’, ’bmp ’);

imwrite(vid.frames(i).cdata(:,:,:),strtemp);

end

(2)将每张彩色图片的像素矩阵分为R 、G 、B 三个分量。

I=cell(1,12);

for p=1:12

imageName=strcat('c:\转换的图片\',num2str(p),'.bmp');

I{p} = imread(imageName);

R=I{p}(:,:,1);

G=I{p}(:,:,2);

B=I{p}(:,:,3); %将像素矩阵分成R,G,B 三个分量

end

(3) 设定Lorenz 超混沌系统的初值x 0,步长h ,及运行时间t 1。由龙格库塔法产生迭代矩阵D 。

D=zeros(n,4);

for i=1:n

k1=xprim(t,x);

k2=xprim(t+h/2,x+(h/2)*k1);

k3=xprim(t+h/2,x+(h/2)*k2);

k4=xprim(t+h,x+h*k3);

k=h/6*(k1+2*k2+2*k3+k4); %4阶龙格库塔算法 t=t+h;

x=x+k;

D(i,:)=x;

end

其中xprim 函数为:

function xprim=xprim(t,x)

xprim(1)=a*(x(2)-x(1))+x(4);

xprim(2)=c*x(1)-x(2)-x(1)*x(3);

xprim(3)=x(1)*x(2)-b*x(3);

xprim(4)=-x(1)*x(3)+r*x(4);

(4)Q =round (D ) ,D =D -Q , D =abs (round (rem ((D *1000), 256)) )。取矩阵D 的小数部分,这样处理后得到的非负整数矩阵的元素值在0到255(包括0和255) 上均匀分布。

Q=round(D);

D=Q-D; %对数据进行处理

D=abs(round(rem(D*1000,256)));

(5)分别取出矩阵D 的第1,2,3列的后M*N个数据。

[a ,b]=size(R);

for i=1:a

A(i,1)=D(i+n-a,1);

C(i,1)=D(i+n-a,2); %取矩阵D 的后103041行作为保密序列 E(i,1)=D(i+n-a,3);

end

(6)将(5)得到的数据分别与经处理过的R,G,B 分量的数据做加法。

R=uint8(rem(R+A,256));

G=uint8(rem(G+C,256));

B=uint8(rem(B+E,256));

(7)将(6)得到的数据还原成三维加密像素矩阵,写入并保存图像。

R1=reshape(R,321,321);

G1=reshape(G,321,321);

B1=reshape(B,321,321);

F=cat(3,R1,G1,B1); %得到加密像素矩阵 strtemp=strcat('c:\加密的图片\',int2str(p),'.','bmp');

imwrite(F,strtemp) %写入图像

(8)将(7)得到的图像写入视频。

im=imread(['c:\加密的图片\', int2str(1) '.bmp']);

[imind,map2] = rgb2ind(im,256);

imwrite(imind,map2,'c:\jiami.gif','gif','writeMode','overwrite','delay

time',0.1,'loopcount',Inf);

pic_Num=12; %根据要制作的图片数决定 for iter=2:pic_Num

im=imread(['c:\加密的图片\',int2str(iter) '.bmp']);

[imind,map2] = rgb2ind(im,256);

imwrite(imind,map2,'c:\jiami.gif','gif','writeMode','append','delay

time',1);

end

4. 基于超混沌Lorenz 系统的视频解密算法

4.1 视频解密原理图

视频的解密过程是加密过程的逆运算。很据收发两端参数达到匹配并且同步后,选取参

8数(a , b , c , r )=(10, , 28, -1) ,初始值x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458},t =1040时,可将信号3

调制出来。视频解码如图所示:

图3 系统的解码模型

4.2 视频解密算法

视频的解密过程具体操作如下:

(1)读入经过加密的彩色图像,将每张彩色图像的像素矩阵分为R 、G 、B 三个分量。相关程序如下:

M=cell(1,12);

for p=1:12

imageName=strcat('c:\加密的图片\',num2str(p),'.bmp');

M{p} = imread(imageName);

R=M{p}(:,:,1);

G=M{p}(:,:,2);

B=M{p}(:,:,3);

(2)设定Lorenz 超混沌系统的初值x 0,步长h ,及运行时间t 1。由四阶龙格库塔法算法产生迭代矩阵D 。

D=zeros(n,4); for i=1:n

k1=xprim(t,x);

k2=xprim(t+h/2,x+(h/2)*k1); k3=xprim(t+h/2,x+(h/2)*k2); k4=xprim(t+h,x+h*k3);

k=h/6*(k1+2*k2+2*k3+k4); %4阶龙格库塔算法 t=t+h; x=x+k; D(i,:)=x; end

(3)Q =round (D ) ,D =D -Q , D =abs (round (rem ((D *1000), 256)) )。取矩阵D 的小数部分,这样处理后得到的非负整数矩阵的元素值在0到255(包括0和255) 上均匀分布。

Q=round(D);

D=Q-D;

D=abs(round(rem(D*1000,256)));

(4)分别取出矩阵D 的第1,2,3列的后M*N个数据。 [a ,b]=size(R);

for i=1:a

A(i,1)=D(i+n-a,1); C(i,1)=D(i+n-a,2); E(i,1)=D(i+n-a,3);

end

(5)将(4)得到的数据分别与经处理过的R,G,B 分量的数据做减法。

R=uint8(rem(R+256-A,256)); G=uint8(rem(G+256-C,256)); B=uint8(rem(B+256-E,256));

(6)将(5)得到的数据还原成三维解密像素矩阵,写入并保存图像。 R1=reshape(R,321,321); G1=reshape(G,321,321);

B1=reshape(B,321,321);

F=cat(3,R1,G1,B1); %得到解密像素矩阵 (7)将(6)得到的图像写入视频。

im=imread(['c:\解密的图片\', int2str(1) '.bmp']); [imind,map2] = rgb2ind(im,256);

imwrite(imind,map2,'c:\jiemi.gif','gif','writeMode','overwrite','delayt

ime',0.1,'loopcount',Inf);

pic_Num=12; for iter=1:pic_Num

im=imread(['c:\解密的图片\',int2str(iter) '.bmp']); [imind,map2] = rgb2ind(im,256);

imwrite(imind,map2,'c:\jiemi.gif','gif','writeMode','append','delay

time',1);

end

4.3视频的读出

本文重点处理了将加解密的图片转化成可视的视频。在此过程中,主要是读入一帧帧彩色图像,然后转换图片的类型格式,将所有图片做成一个整体结构一帧帧连续播放出来,形成最后的avi 视频文件。

5. Matlab中的仿真实验结果及安全性分析

5.1加密和解密效果分析

在Matlab7.1的工作平台下, 按照上文提出的加密方案编写相应的程序对视频文件

8

“clock.avi ”进行加密与解密, Lorenz超混沌系统参数为a =10, b =, c =28, r =-1,

3

初始值x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458},t =1040。图4-图5是加解密的实验结果,其中图4显示的是原始视频的最后一帧原始图像经过混沌系统加密后的效果图,图5实现的是最后一帧加密图像经过混沌系统解密后的效果图。

加密前最后一帧图像 加密后的最后一帧图像

图4

解密前最后一帧图像 图5 解密后最后一帧图像

5.2 密钥敏感性分析

5.2.1 初值敏感性

此时我们用上述编码程序chuanshu1.m 编码产生的视频jiami 来作为待还原的 视频,测试密钥敏感性时,保持超混沌Lorenz 系统参数(此时的参数与之前一样)

8

a =10, b =, c =28, r =-1 取初始值为:x 0={1. 2157001, 3. 0436, 1. 8573, 2. 9458}与正确

3

密钥初始值x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458}作对照测验,如图6所示。

正确解密后的最后一帧图像 改变初始值解密后的最后一帧图像

图6

5.2.2 系统参数敏感性

保持超混沌Lorenz 系统初始值x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458}不变,取其系统参数为

88

a =10. 0001, b =, c =28, r =-1与正确参数a =10, b =, c =28, r =-1做对照测验,如图7所示。

33

正确解密后的最后一帧图像 改变系统参数解密后的最后一帧图像

图7

在采用上述加密算法之后,用Matlab 仿真工具编程对“clock.avi ”进行仿真实现,由结果可以发现,由于是视频加密,因此只能分析单一的一帧图像,如图4所示,是加密后视频的最后一帧图像,加密效果相当不错,完全看不出视频文件的内容。当在超混沌Lorenz 系统初始值x 0={1. 2157001, 3. 0436, 1. 8573, 2. 9458}与正确密钥初始值不同而系统参数完全匹配的情况下,得到解密的最后一帧图像如图6所示,从图6可见即使使用的密钥与正确密钥十分接近(仅差10-7),解密所得的依然是杂乱无章的错误图像,说这明混沌系统对密钥初始值极具高度的敏感性。然后,调整系统参数a =10. 0001,得到如图7所示的解密效果图,解密出来的图像已经无法看清了,杂乱无章,这说明此种加密算法具有很高的安全性,该系统的安全性主要来自于发送端与接收端参数适配的高度敏感性。

6. 总结

本文研究了超混沌Lorenz 系统在视频保密通信中的应用。仿真实验结果和分析表明,混沌本身具有实现对视频加密、解密的良好效果。从对算法的安全性分析可以看出,改算法密钥空间大,有极强的密钥敏感性。混沌其内在带有确定性的随机性和计算复杂度低的特点具

有很大的吸引力。

目前,国内外学者将混沌加密理论应用到视频加密的还不多,主要集中在直接加密方面,没有利用视频数据本身的特性和选择性加密的优点,没有很好地结合视频压缩标准方面的研究,因此很难提高其实用性和实时性。本文由于研究范围的局限性,Matlab 只支持ZJmedia Umcompress RGB24编码方式的AVI 视频文件,对于一般的视频文件还没进一步深入研究,并且在本文中未能将视频文件的声音部分有效的加载进视频加密、解密中,但是,我相信随着科学的不断发展,不久的将来会在视频文件处理方面更加完善。

7. 参考文献

[1] ISO/IEC 14496-2 Information technology-Coding of audio-visual objects-Part 2:

Visual Second edition [S].2001:121~130.

[2] AGI, I GONG, L. An empirical study of MPEG video Transmission [C] // Proceedings

of the Internet Society Symposium on Network and Distributed System Security. San Diego: [s.n.],1996:137~144.

[3] Tang, L ,: Methods for encrypting and decrypting MPEG video data efficiently.

In:Proceedings of the Fourth ACM Intermational Multimedia Conference (ACM Multimedia ’96),Boston,MA,1996:219~230.

[4] Qiao, L., Nahrstedt, K.: A new algorithm for MPEG video encryption. In: Proceeding

of the First International Conference on Imaging Science, Systems and Technology(CISST’97),Las Vegas,Nevada,1997:21~29.

[5] T. B. Maples and G. A. Spanos. Performance study of a selective encryption scheme

for the security of networked,Real-Time video.In Proceedings of 4th Intemational Conference on Computer Communications and Networks, Las Vegas, Nevaga, September 1995:30~41.

[6] Matthews.On the derivation of a chaotic encryption algorithm. Cryptologia,1989:

4:29~42.

[7] Bernstein GM ,Lieberm an MA. Secure random number generation using chaotic circuit.

IEEE Transactions on CAS,1990,37(9):1157~1164.

[8] Carroll JM,Verhagen J,Wong PT. Chaos in crypo graphy:theescape from the strange

attractor.The Frontiers of Cryptology,1992,2:84~104.

[9] 倪皖荪, 华一满, 邓浩等. 混沌通讯. 物理性进展,1996,16(3,4):645~655.

[10] 唐秋玲, 覃团发, 陈光旨. 混沌图像加密[J].广西大学学报(自然科学版),1999,24(1):

61~64.

[11] 陈翎,潘中良,一种基于Logistic 与Henon 混沌系统的彩色图像加密方法[J].装备制造

技术,2010,4:97~99.

[12] Shihong Wang,Jinyu Kuang,Jinghua Li,et al.Chaos based communications in a

large community[J].Phys Rev,2002,66(6):1~4.

[13] 姚翔辉,禹思敏, 基于Lorenz 混沌系统的数字视频加密[J]. 微型机与应用,2011,

4:1~6.

致 谢

在我论文的选题、开题到成文全过程,得到导师蔡建平教授的悉心指导,在老师的指导下,我才能如期顺利完成论文,特此感谢,同时也非常感谢研究生王锦成助教给予我的支持和帮助。

心 得 体 会

经过两个月的折腾,总算把毕业论文给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,论文可是第一次写。看着劳动成果,很欣慰!在这个过程中,让我了解到要设计一个程序,查找资料是至关重要的。这过程虽然艰辛,但只要你持之以恒,成功指日可待。

刚刚开始时我可以说是完全没有头绪,于是就去图书馆找资料,看一些关于matlab 编程的书,可是这点小进展是远远不够的,这只是小小的开始。下一步就是上网查,找到了些与我研究的题目相似的论文,那时我很高兴,于是就根据里面的资料一步步的去搜索如何在matlab 读入视频、编写视频。后来折腾了一星期才发现并不是所有的视频matlab 都能读入,matlab 对视频要求很高,只支持ZJmedia Umcompress RGB24编码方式的AVI 视频文件。于是我用各种转换软件将随机采集到的视频进行转换,最后我用了matlab 默认视频“clock.avi ”。

接下来摆在我眼前的又是一大难题。如何把视频成功的加密呢?我上网四处搜集资料,将搜集到的关于视频加密的资料一份份打印出来研究,自己看不懂就问同学、找助教请教,认真的琢磨。把别人的论文吃透后我便开始思考我做加密的方向,于是在蔡老师提供的思路帮助下,我开始着手做程序。但是做程序对于我这之前连碰都没碰过matlab 的人来说实在是煎熬啊,在这期间我研究程序摸索了好几星期都没有啥进展,眼看着论文交稿的日子就要到了,舍友们也一遍遍的给自己的导师发粗稿,而我还是一无所获,我急了,一心想着放弃,换个容易的题目试试,于是我便狠下心告诉老师说想放弃。经过老师的一番鼓励和指导后,我重新拾起了希望,反复的尝试各种想法,经过不懈的努力后,我的视频加密程序终于在12月10日历时一个月二十天的日子里完成了。

一个多月的努力中, 我经历过山穷水尽的困惑;遭遇过柳暗花明的惊喜;接受过相互鼓励的安慰。一个多月的时间我经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是毅力的考验。经过这次论文设计,我不仅学到了很多知识和技能, 更重要的是我学会了如何运用所学知识去解决实际问题.

现在,我的心情是如鱼得水,干涩的眼睛前方是万里晴空。终于,所有的努力即将化成一个个铅字,打印机“滋滋”的声音仿佛已经宛如天籁般悦耳地在耳畔响起。此时此刻,真想把一切抛上天空。高呼:“出来了!我的成果即将出来了!”,心里也在默默的感慨着:“有志者,事竟成”。

漳州师范学院

毕业论文

基于超混沌Lorenz 系统的视频加密

Video Encryption Based on Hyperchaos Lorenz System

姓 名: 洪苑玲

学 号: 080401404

系 别: 数学与信息科学系

专 业: 数学与应用数学

年 级: 2008级

指导教师: 蔡建平教授

2012年1月5日

摘 要

视频加密技术在安全通信中应用广泛。本文基于超混沌Lorenz 系统,采用四阶龙格库塔算法产生的伪随机混沌序列对视频进行编码和解码,实现了视频加密的效果,保证传输的保密性。以原始视频“clock.avi ”为例,利用Matlab 运行编码和解码的程序,我们得到了结论来验证这个方法的可行性。仿真实验证明,该方法具有良好的加密效果及较强的安全性。

关键词:Lorenz 系统;伪随机序列;视频加密;

Abstract

Video encryption is widely used in information security.Based on Lorenz hyper-chaotic system ,the paper encodes and decodes video by adopting the pseudo-random chaotic sequence engendered by the fourth order Runge-Kutta,thus realizing the video encryption to which can guarantee the confidentiality of transmission.Take the video “clock.avi ”as an example.We will use matlab to run the encoded and decoded program,and get the conclusion to verify the feasibility of this method. Simulation experiments show that the method has a good effect on encryption and the stronger security.

Key words: Lorenz system; Pseudo-random sequence; Video encryption

中英文摘要………………………………………………………………………………………(I ) 引 言…………………………………………………………………………………………… (1) 1 AVI 视频文件结构特点………………………………………………………………………(2) 2 系统模型与问题陈述……………………………………………………………………… (2) 3 基于超混沌Lorenz 系统的视频加密算法…………………………………………………( 3)

3.1 AVI 视频文件的读入……………………………………………………………………(3)

3.2视频加密原理图…………………………………………………………………………(4) 3.3视频加密算法……………………………………………………………………………(4) 4 基于超混沌Lorenz 系统的视频解密算法…………………………………………………(7) 4.1视频解密原理图……………………………………………………………………… (7) 4.2视频解密算法………………………………………………………………………… (7) 4.3视频的读出…………………………………………………………………………… (9) 5 Matlab中的仿真实验结果与安全性分析…………………………………………………(10)

5.1加密和解密效果分析…………………………………………………………………(10)

5.2密钥敏感性分析………………………………………………………………………(11) 6 结论…………………………………………………………………………………………(12) 参考文献……………………………………………………………………………………… (14) 致谢…………………………………………………………………………………………… (15)

目前,随着网络通信技术和视频编码技术的快速发展,视频多媒体信息得到了广泛应用,非法拷贝、盗版、剽窃和篡改等成为当前关注的重要问题,因此有必要对视频编码进行深入研究。视频具有数据量大、编码结构特殊、实时性要求高等特点,尤其在网络媒体环境下视频的实时性要求更高,这些特点对现有加密算法提出了新要求。尽管此前也提出了很多MEPG 视频加密算法[1],如完全加密算[2]法、之字形扫描置乱算法[3]、VEA (Video Encryption Algorithm )[4]、选择性加密[5]等,但是本文提出了一种基于混沌系统的视频加密方案。

混沌序列在密码学方面的应用起源于80年代末期,由英国数学家Matthews 首先提出[6], 其后得到了一定的发展[7 8]。国内南京大学声学研究所倪皖荪等也应用混沌序列实现了对汉语语音信号的加密、解密及传输[9] 以及广西大学计算机与信息工程学院的唐秋玲等利用混沌系统对图像加密进行加密[10] 。在保密通信以及控制工程等方面混沌系统具有潜在的应用能力,混沌系统有着复杂的动力学行为。理论分析和数值仿真发现,混沌系统具有对初值/参数的高度敏感性、长期不可预测性和遍历性等特性,和密码学有着紧密的联系。因此,近年来基于混沌系统产生的伪随机序列引起了研究人员的极大兴趣。已有文献提出基于混沌系统的加密算法有:基于Logistic 映射、Henon 映射以及基于混沌系统生成二进制序列的方法[11]等。然而对于低维混沌的加密方案,已经有一些攻击方法可以将其破解[12]。考虑到超混沌系统具有比混沌系统更复杂的结构,类随机性更强,因此更适合用于保密通信。

基于上述的研究,本文以著名的Lorenz 混沌系统为研究对象, 先大体地介绍超混沌Lorenz 系统的模型,然后对视频进行帧处理,采用四阶龙格库塔产生的混沌序列完成对视频帧图像的编码和解码,从而实现了视频加密的效果,保证传输的保密性。本文所提出的加密算法的密钥是由产生混沌序列的初值构成,利用Matlab 实现了对视频的加密和解密,同时也证明了该方法的可行性与安全性。

1. AVI 视频文件结构特点[13]

音频视频交错格式AVI (Audio Video Interleaved )是将语音和影像同步组合在一起的文件格式。它对视频文件采用了一种有损压缩方式,但压缩比较高,AVI 支持256色和RLE 压缩,一个AVI 文件可以包含多个不同类型的媒体流,它以一系列的位图来存储视频信息,并在文件中加入以数字形式存储的数字化视频信息。

AVI 包含三部分:文件头、数据块和索引块。其中文件头包快文件的通用信息,定义数据格式及压缩算法等参数。数据块包含实际数据流,即图像和声音序列数据,是文件的主体,也是决定文件容量的主要部分。索引块包括数据块列表和它们在文件中的位置,以提供文件内数据随机存取能力。

2. 系统模型与问题陈述

超混沌Lorenz 系统的动力学方程为:

1=a (x 2-x 1) +x 4⎧x ⎪x ⎪ 2=cx 3-x 2-x 1x 3

⎨x (1) ⎪ 3=x 1x 2-bx 3

⎪ 4=-x 1x 3+rx 4⎩x

其中x =(x 1, x 2, x 3, x 4) T 为系统的状态变量,L =(a , b , c , r ) T 为系统的控制参数,选取参数(a , b , c , r )=(10, 8, 28, -1) 时,该系统处于混沌状态。采用四阶龙格库塔算法产生混沌迭代序列3

D ,其具体形式如下:

⎧K 1=f (x i , y i ) ⎪K =f (x +h /2, y +K *h /2) 2i i 1⎪⎪⎨K 3=f (x i +h /2, y i +K 2*h /2) (2) ⎪K =f (x +h , y +K +h ) i i 3⎪4

⎪⎩y i +1=y i +h /6(K 1+2K 2+2K 3+K 4)

根据式(1)和式(2)以及上述参数,可以得到Lorenz 混沌系统中吸引子的数值仿真结果,令初始条件x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458},t =1040时,图1所示为混沌吸引子的三维图形以及分别在(x , y ), (x , z ), (y , z )平面投影。

图1超混沌Lorenz 系统的混沌吸引子

3. 基于超混沌Lorenz 系统的视频加密算法

3.1 AVI 视频文件的读入

利用随机采样到的一段AVI 视频进行混沌加密,由于Matlab 中只支持ZJmedia Umcompress RGB24编码方式的AVI 视频文件,因此有必要把采集到的这段视频文件进行转换处理,使其能够无障碍地载入到Matlab 工具中。本文采用的是Matlab 默认的视频“clock.avi ”,运用mmread 工具包读入视频,将视频分别转存为video 和audio 。

3.2 视频加密原理图

本文基于超混沌Lorenz 系统采用四阶龙格库塔算法产生用于视频加密的混沌序列,并使用此混沌序列对视频的图像数据进行了加密,由于希望加密所用的混沌序列能够对明文的变化具有敏感性,因此将明文属性叠加到混沌映射的初值和参数中。视频编码如图所示:

图2 系统的编码模型

3.3 视频加密算法

视频加密的过程中,主要是针对读入视频的图片文件进行加密。具体操作过程如下:

(1)对原始视频进行帧处理。主要是读入视频,将视频的每帧转化为图片。相关程序如下:

[vid,audio]=mmread(’clock.avi ’); %读取视频; fnum=size(vid.frames,2); %读取视频的帧数; for i=1:fnum

strtemp=strcat(’c:\转换的图片\’,int2str(i),’. ’, ’bmp ’);

imwrite(vid.frames(i).cdata(:,:,:),strtemp);

end

(2)将每张彩色图片的像素矩阵分为R 、G 、B 三个分量。

I=cell(1,12);

for p=1:12

imageName=strcat('c:\转换的图片\',num2str(p),'.bmp');

I{p} = imread(imageName);

R=I{p}(:,:,1);

G=I{p}(:,:,2);

B=I{p}(:,:,3); %将像素矩阵分成R,G,B 三个分量

end

(3) 设定Lorenz 超混沌系统的初值x 0,步长h ,及运行时间t 1。由龙格库塔法产生迭代矩阵D 。

D=zeros(n,4);

for i=1:n

k1=xprim(t,x);

k2=xprim(t+h/2,x+(h/2)*k1);

k3=xprim(t+h/2,x+(h/2)*k2);

k4=xprim(t+h,x+h*k3);

k=h/6*(k1+2*k2+2*k3+k4); %4阶龙格库塔算法 t=t+h;

x=x+k;

D(i,:)=x;

end

其中xprim 函数为:

function xprim=xprim(t,x)

xprim(1)=a*(x(2)-x(1))+x(4);

xprim(2)=c*x(1)-x(2)-x(1)*x(3);

xprim(3)=x(1)*x(2)-b*x(3);

xprim(4)=-x(1)*x(3)+r*x(4);

(4)Q =round (D ) ,D =D -Q , D =abs (round (rem ((D *1000), 256)) )。取矩阵D 的小数部分,这样处理后得到的非负整数矩阵的元素值在0到255(包括0和255) 上均匀分布。

Q=round(D);

D=Q-D; %对数据进行处理

D=abs(round(rem(D*1000,256)));

(5)分别取出矩阵D 的第1,2,3列的后M*N个数据。

[a ,b]=size(R);

for i=1:a

A(i,1)=D(i+n-a,1);

C(i,1)=D(i+n-a,2); %取矩阵D 的后103041行作为保密序列 E(i,1)=D(i+n-a,3);

end

(6)将(5)得到的数据分别与经处理过的R,G,B 分量的数据做加法。

R=uint8(rem(R+A,256));

G=uint8(rem(G+C,256));

B=uint8(rem(B+E,256));

(7)将(6)得到的数据还原成三维加密像素矩阵,写入并保存图像。

R1=reshape(R,321,321);

G1=reshape(G,321,321);

B1=reshape(B,321,321);

F=cat(3,R1,G1,B1); %得到加密像素矩阵 strtemp=strcat('c:\加密的图片\',int2str(p),'.','bmp');

imwrite(F,strtemp) %写入图像

(8)将(7)得到的图像写入视频。

im=imread(['c:\加密的图片\', int2str(1) '.bmp']);

[imind,map2] = rgb2ind(im,256);

imwrite(imind,map2,'c:\jiami.gif','gif','writeMode','overwrite','delay

time',0.1,'loopcount',Inf);

pic_Num=12; %根据要制作的图片数决定 for iter=2:pic_Num

im=imread(['c:\加密的图片\',int2str(iter) '.bmp']);

[imind,map2] = rgb2ind(im,256);

imwrite(imind,map2,'c:\jiami.gif','gif','writeMode','append','delay

time',1);

end

4. 基于超混沌Lorenz 系统的视频解密算法

4.1 视频解密原理图

视频的解密过程是加密过程的逆运算。很据收发两端参数达到匹配并且同步后,选取参

8数(a , b , c , r )=(10, , 28, -1) ,初始值x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458},t =1040时,可将信号3

调制出来。视频解码如图所示:

图3 系统的解码模型

4.2 视频解密算法

视频的解密过程具体操作如下:

(1)读入经过加密的彩色图像,将每张彩色图像的像素矩阵分为R 、G 、B 三个分量。相关程序如下:

M=cell(1,12);

for p=1:12

imageName=strcat('c:\加密的图片\',num2str(p),'.bmp');

M{p} = imread(imageName);

R=M{p}(:,:,1);

G=M{p}(:,:,2);

B=M{p}(:,:,3);

(2)设定Lorenz 超混沌系统的初值x 0,步长h ,及运行时间t 1。由四阶龙格库塔法算法产生迭代矩阵D 。

D=zeros(n,4); for i=1:n

k1=xprim(t,x);

k2=xprim(t+h/2,x+(h/2)*k1); k3=xprim(t+h/2,x+(h/2)*k2); k4=xprim(t+h,x+h*k3);

k=h/6*(k1+2*k2+2*k3+k4); %4阶龙格库塔算法 t=t+h; x=x+k; D(i,:)=x; end

(3)Q =round (D ) ,D =D -Q , D =abs (round (rem ((D *1000), 256)) )。取矩阵D 的小数部分,这样处理后得到的非负整数矩阵的元素值在0到255(包括0和255) 上均匀分布。

Q=round(D);

D=Q-D;

D=abs(round(rem(D*1000,256)));

(4)分别取出矩阵D 的第1,2,3列的后M*N个数据。 [a ,b]=size(R);

for i=1:a

A(i,1)=D(i+n-a,1); C(i,1)=D(i+n-a,2); E(i,1)=D(i+n-a,3);

end

(5)将(4)得到的数据分别与经处理过的R,G,B 分量的数据做减法。

R=uint8(rem(R+256-A,256)); G=uint8(rem(G+256-C,256)); B=uint8(rem(B+256-E,256));

(6)将(5)得到的数据还原成三维解密像素矩阵,写入并保存图像。 R1=reshape(R,321,321); G1=reshape(G,321,321);

B1=reshape(B,321,321);

F=cat(3,R1,G1,B1); %得到解密像素矩阵 (7)将(6)得到的图像写入视频。

im=imread(['c:\解密的图片\', int2str(1) '.bmp']); [imind,map2] = rgb2ind(im,256);

imwrite(imind,map2,'c:\jiemi.gif','gif','writeMode','overwrite','delayt

ime',0.1,'loopcount',Inf);

pic_Num=12; for iter=1:pic_Num

im=imread(['c:\解密的图片\',int2str(iter) '.bmp']); [imind,map2] = rgb2ind(im,256);

imwrite(imind,map2,'c:\jiemi.gif','gif','writeMode','append','delay

time',1);

end

4.3视频的读出

本文重点处理了将加解密的图片转化成可视的视频。在此过程中,主要是读入一帧帧彩色图像,然后转换图片的类型格式,将所有图片做成一个整体结构一帧帧连续播放出来,形成最后的avi 视频文件。

5. Matlab中的仿真实验结果及安全性分析

5.1加密和解密效果分析

在Matlab7.1的工作平台下, 按照上文提出的加密方案编写相应的程序对视频文件

8

“clock.avi ”进行加密与解密, Lorenz超混沌系统参数为a =10, b =, c =28, r =-1,

3

初始值x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458},t =1040。图4-图5是加解密的实验结果,其中图4显示的是原始视频的最后一帧原始图像经过混沌系统加密后的效果图,图5实现的是最后一帧加密图像经过混沌系统解密后的效果图。

加密前最后一帧图像 加密后的最后一帧图像

图4

解密前最后一帧图像 图5 解密后最后一帧图像

5.2 密钥敏感性分析

5.2.1 初值敏感性

此时我们用上述编码程序chuanshu1.m 编码产生的视频jiami 来作为待还原的 视频,测试密钥敏感性时,保持超混沌Lorenz 系统参数(此时的参数与之前一样)

8

a =10, b =, c =28, r =-1 取初始值为:x 0={1. 2157001, 3. 0436, 1. 8573, 2. 9458}与正确

3

密钥初始值x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458}作对照测验,如图6所示。

正确解密后的最后一帧图像 改变初始值解密后的最后一帧图像

图6

5.2.2 系统参数敏感性

保持超混沌Lorenz 系统初始值x 0={1. 2157, 3. 0436, 1. 8573, 2. 9458}不变,取其系统参数为

88

a =10. 0001, b =, c =28, r =-1与正确参数a =10, b =, c =28, r =-1做对照测验,如图7所示。

33

正确解密后的最后一帧图像 改变系统参数解密后的最后一帧图像

图7

在采用上述加密算法之后,用Matlab 仿真工具编程对“clock.avi ”进行仿真实现,由结果可以发现,由于是视频加密,因此只能分析单一的一帧图像,如图4所示,是加密后视频的最后一帧图像,加密效果相当不错,完全看不出视频文件的内容。当在超混沌Lorenz 系统初始值x 0={1. 2157001, 3. 0436, 1. 8573, 2. 9458}与正确密钥初始值不同而系统参数完全匹配的情况下,得到解密的最后一帧图像如图6所示,从图6可见即使使用的密钥与正确密钥十分接近(仅差10-7),解密所得的依然是杂乱无章的错误图像,说这明混沌系统对密钥初始值极具高度的敏感性。然后,调整系统参数a =10. 0001,得到如图7所示的解密效果图,解密出来的图像已经无法看清了,杂乱无章,这说明此种加密算法具有很高的安全性,该系统的安全性主要来自于发送端与接收端参数适配的高度敏感性。

6. 总结

本文研究了超混沌Lorenz 系统在视频保密通信中的应用。仿真实验结果和分析表明,混沌本身具有实现对视频加密、解密的良好效果。从对算法的安全性分析可以看出,改算法密钥空间大,有极强的密钥敏感性。混沌其内在带有确定性的随机性和计算复杂度低的特点具

有很大的吸引力。

目前,国内外学者将混沌加密理论应用到视频加密的还不多,主要集中在直接加密方面,没有利用视频数据本身的特性和选择性加密的优点,没有很好地结合视频压缩标准方面的研究,因此很难提高其实用性和实时性。本文由于研究范围的局限性,Matlab 只支持ZJmedia Umcompress RGB24编码方式的AVI 视频文件,对于一般的视频文件还没进一步深入研究,并且在本文中未能将视频文件的声音部分有效的加载进视频加密、解密中,但是,我相信随着科学的不断发展,不久的将来会在视频文件处理方面更加完善。

7. 参考文献

[1] ISO/IEC 14496-2 Information technology-Coding of audio-visual objects-Part 2:

Visual Second edition [S].2001:121~130.

[2] AGI, I GONG, L. An empirical study of MPEG video Transmission [C] // Proceedings

of the Internet Society Symposium on Network and Distributed System Security. San Diego: [s.n.],1996:137~144.

[3] Tang, L ,: Methods for encrypting and decrypting MPEG video data efficiently.

In:Proceedings of the Fourth ACM Intermational Multimedia Conference (ACM Multimedia ’96),Boston,MA,1996:219~230.

[4] Qiao, L., Nahrstedt, K.: A new algorithm for MPEG video encryption. In: Proceeding

of the First International Conference on Imaging Science, Systems and Technology(CISST’97),Las Vegas,Nevada,1997:21~29.

[5] T. B. Maples and G. A. Spanos. Performance study of a selective encryption scheme

for the security of networked,Real-Time video.In Proceedings of 4th Intemational Conference on Computer Communications and Networks, Las Vegas, Nevaga, September 1995:30~41.

[6] Matthews.On the derivation of a chaotic encryption algorithm. Cryptologia,1989:

4:29~42.

[7] Bernstein GM ,Lieberm an MA. Secure random number generation using chaotic circuit.

IEEE Transactions on CAS,1990,37(9):1157~1164.

[8] Carroll JM,Verhagen J,Wong PT. Chaos in crypo graphy:theescape from the strange

attractor.The Frontiers of Cryptology,1992,2:84~104.

[9] 倪皖荪, 华一满, 邓浩等. 混沌通讯. 物理性进展,1996,16(3,4):645~655.

[10] 唐秋玲, 覃团发, 陈光旨. 混沌图像加密[J].广西大学学报(自然科学版),1999,24(1):

61~64.

[11] 陈翎,潘中良,一种基于Logistic 与Henon 混沌系统的彩色图像加密方法[J].装备制造

技术,2010,4:97~99.

[12] Shihong Wang,Jinyu Kuang,Jinghua Li,et al.Chaos based communications in a

large community[J].Phys Rev,2002,66(6):1~4.

[13] 姚翔辉,禹思敏, 基于Lorenz 混沌系统的数字视频加密[J]. 微型机与应用,2011,

4:1~6.

致 谢

在我论文的选题、开题到成文全过程,得到导师蔡建平教授的悉心指导,在老师的指导下,我才能如期顺利完成论文,特此感谢,同时也非常感谢研究生王锦成助教给予我的支持和帮助。

心 得 体 会

经过两个月的折腾,总算把毕业论文给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,论文可是第一次写。看着劳动成果,很欣慰!在这个过程中,让我了解到要设计一个程序,查找资料是至关重要的。这过程虽然艰辛,但只要你持之以恒,成功指日可待。

刚刚开始时我可以说是完全没有头绪,于是就去图书馆找资料,看一些关于matlab 编程的书,可是这点小进展是远远不够的,这只是小小的开始。下一步就是上网查,找到了些与我研究的题目相似的论文,那时我很高兴,于是就根据里面的资料一步步的去搜索如何在matlab 读入视频、编写视频。后来折腾了一星期才发现并不是所有的视频matlab 都能读入,matlab 对视频要求很高,只支持ZJmedia Umcompress RGB24编码方式的AVI 视频文件。于是我用各种转换软件将随机采集到的视频进行转换,最后我用了matlab 默认视频“clock.avi ”。

接下来摆在我眼前的又是一大难题。如何把视频成功的加密呢?我上网四处搜集资料,将搜集到的关于视频加密的资料一份份打印出来研究,自己看不懂就问同学、找助教请教,认真的琢磨。把别人的论文吃透后我便开始思考我做加密的方向,于是在蔡老师提供的思路帮助下,我开始着手做程序。但是做程序对于我这之前连碰都没碰过matlab 的人来说实在是煎熬啊,在这期间我研究程序摸索了好几星期都没有啥进展,眼看着论文交稿的日子就要到了,舍友们也一遍遍的给自己的导师发粗稿,而我还是一无所获,我急了,一心想着放弃,换个容易的题目试试,于是我便狠下心告诉老师说想放弃。经过老师的一番鼓励和指导后,我重新拾起了希望,反复的尝试各种想法,经过不懈的努力后,我的视频加密程序终于在12月10日历时一个月二十天的日子里完成了。

一个多月的努力中, 我经历过山穷水尽的困惑;遭遇过柳暗花明的惊喜;接受过相互鼓励的安慰。一个多月的时间我经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是毅力的考验。经过这次论文设计,我不仅学到了很多知识和技能, 更重要的是我学会了如何运用所学知识去解决实际问题.

现在,我的心情是如鱼得水,干涩的眼睛前方是万里晴空。终于,所有的努力即将化成一个个铅字,打印机“滋滋”的声音仿佛已经宛如天籁般悦耳地在耳畔响起。此时此刻,真想把一切抛上天空。高呼:“出来了!我的成果即将出来了!”,心里也在默默的感慨着:“有志者,事竟成”。


相关文章

  • 数字媒体技术导论-课后习题参考答案
  • 数字媒体技术导论-习题参考答案 Chap1 P13~P14页 一填空题 1. 传递信息的载体 存储信息的的实体 2. 感觉媒体 表示媒体 显示媒体 存储媒体 传输媒体 3. 比特(bit ) 4. 数字化 交互性 趣味性 集成性 技术与艺术 ...查看


  • 网络会议系统设计方案
  • 网络会议系统设计方案 云屋科技 目 录 第一章 系统整体架构...................................................... 4 1.1总体架构设计 . ..................... ...查看


  • 迅流视频会议软件技术指标
  • XView软件系统技术要求      视频采用且H.264视频编码技术,保证带宽占用最小,保证图像质量. 要求支持在同一屏幕同时显示大于16路视频. 视频查看.自动轮巡时图像平滑,不能出现马赛克现象. 能够自由选择视频布局,视频图 ...查看


  • 有线电视数字机顶盒维修教程
  • 有线电视数字机顶盒维修教程 第1节 数字机顶盒的故障分析诊断和检修单元 单元数字机顶盒工作原理和电路分析 一.有线电视系统 1有线电视系统的组成 有线电视系统是由前端.干线传输和用户分配三大部分组成. (1) 前端部分 前端部分是有 ...查看


  • 录播教室解决方案_160512
  • 华唐万达录播教室解决方案 2016年5月 目录 一. 概述 .......................................................................................... ...查看


  • 无线网络技术的发展 国内外的现状
  • 在结束与WAP的短暂接触之后,无线应用终于迎来其真正意义上的高潮.看看照片上这些正在无线上网的人有多惬意,就知道无线网络已经以迅雷不及掩耳之势进入我们的生活了.但无线网络究竟是何方神圣?它在国内的应用状况如何?它将如何改变我们的网络使用习惯 ...查看


  • 电力二次系统安全防护的学习
  • 二.电力系统通信和电网调度自动化的分级管理 1.通信电路分三级管理: 一级通信电路:国家电力调度中心到各跨省电网网调和直属省网省调的电路,以及跨大区网间的电路: 二级通信电路:跨省电网网调到省调和直属厂.站的电路,以及网内跨省电路: 三级通 ...查看


  • 视频会议和视频接访系统设计中注意事项以及特点
  • 如皋市公安局四级网电视电话会议及视频接访系统 工程招标文件 一. 项目综合说明 1. 项目概况 ①项目名称:如皋市公安局四级网电视电话会议及视频接访系统. ②项目地点:如皋市公安局及下属41个单位. ③项目内容:如皋市公安局电视四级网电话会 ...查看


  • 计算机应用基础网上测试题-提交
  • 计算机应用基础网上测试题(主观题部分201605最新版) 满分100分 一.填空题(每题2分,共20分) 1.在Windows XP中,打开[开始]菜单的组合键是(Ctrl + Esc ). 2.选定连续的多个文件夹或文件夹时,可以先按住( ...查看


热门内容