毕业论文—基于Matlab的光学图像加密解密技术

上传人:人*** 文档编号:568432299 上传时间:2024-07-24 格式:PDF 页数:32 大小:2.62MB
返回 下载 相关 举报
毕业论文—基于Matlab的光学图像加密解密技术_第1页
第1页 / 共32页
毕业论文—基于Matlab的光学图像加密解密技术_第2页
第2页 / 共32页
毕业论文—基于Matlab的光学图像加密解密技术_第3页
第3页 / 共32页
毕业论文—基于Matlab的光学图像加密解密技术_第4页
第4页 / 共32页
毕业论文—基于Matlab的光学图像加密解密技术_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业论文—基于Matlab的光学图像加密解密技术》由会员分享,可在线阅读,更多相关《毕业论文—基于Matlab的光学图像加密解密技术(32页珍藏版)》请在金锄头文库上搜索。

1、-本科毕业论文题目:基于 Matlab 的光学图像加密解密技术院 (部) :理学院专业:光信息科学与技术班级:光信 122姓名:韩硕学号:20121212082指导教师:王惠临完成日期:2016 年 6 月 4 日-目录摘 要. IVABSTRACT . V1 前 言. 11.1 选题背景及意义. 11.2 Matlab 软件介绍 . 11.3 Matlab 的主要特点 . 21.4 本文结构安排. 32 基于 Matlab 进行图形图像处理基础. 42.1 Matlab 中图形图像的分类 . 42.1.1 索引图像. 42.1.2 灰度图像. 42.1.3 RGB 图像 . 42.1.4 二

2、值图像. 42.2 Matlab 常用的图形图像处理函数(命令) . 43 图形图像的加密解密技术 . 63.1 图形图像加密传输理论框图以及图形图像加密特点. 63.2 置乱加密技术. 73.2.1 随机打乱各层的行或列. 73.2.2 像素点随机打乱. 123.2.3 像素点 RGB 值的放大. 143.2.4 灰度变换置乱. 163.3 基于混沌的图像加密解密技术. 173.3.1 混沌加密原理. 173.3.2 用 Matlab 的实现基于混沌的图像置乱加密算法. 18-3.4 基于秘密分割加密解密技术. 203.4.1 秘密分割加密算法的原理. 203.4.2 秘密分割加密算法的 M

3、atlab 实现 . 204 结 论. 244.1 总结. 244.2 展望. 24谢 辞. 26参考文献 . 27-摘 要社会在进步,时代在发展,计算机技术在飞速发展,互联网技术也在日益进步,各种迹象都表明着我们已经进入了一个信息大爆炸的时代。人们每天通过互联网获取大量的数字图像的信息,然而在信息的传送中,未经加密的原始的数据非常容易遭受非法途径的截取并被恶意更改。因此,互联网时代如何确保图像信息安全传送越来越受到人们的重视。基于此,也提出了不少图形加密解密的算法。本文基于 Matlab 语言的编程环境,对图像的加密和解密的技术进行了相关验证性的研究。论文的主要工作有:一、对Matlab 编

4、程语言环境进行了简要介绍,并对基于Matlab 语言环境中,图形图像的格式及其变换处理的功能实现进行了深入分析。二、基于 Matlab 语言编程,实现了随机打乱各层的行或列、像素点随机打乱、像素点 RGB 值缩放、灰度变换置乱等加密解密算法,并对加密算法进行了总结分析。三、基于 Maltab 语言编程,实现了基于混沌的图像加密解密和基于秘密分割加密解密算法,并对其进行了总结分析。关键词:信息安全;加密解密;Matlab-Matlab-based Optical Image Encryption and Decryption TechnologyMatlab-based Optical Imag

5、e Encryption and Decryption TechnologyABSTRACTABSTRACTSocial progress, era in the development of computer technology in the rapiddevelopment of Internet technology is increasingly progressive, all indications are that wehave entered with an information explosion era. every day get a lot of informati

6、on on digitalimages over the Internet, but in the transmission of information in unencrypted raw data isvery vulnerable interception of illegal means and malicious changes. Therefore, how theInternet era of information security to ensure the image transfer more and more peoplesattention. Based on th

7、is, it made a lot of graphics encryption and decryption algorithms.Based on Matlab programming environment, technology for encrypting and decryptingimages were studied related confirmatory. The main work of this thesis are:First, the Matlab programming language environment is briefly introduced, and

8、 basedon Matlab language environment, the format and function transformation processing graphicimages to achieve in-depth analysis.Second, based on Matlab language programming, random layers disrupted row orcolumn of pixels randomly disrupted, pixel RGB value scales, and other gray-scaletransformati

9、on scrambling encryption and decryption algorithms, and encryption algorithmsanalyzed.Third, based on Maltab language programming, decryption and encryption anddecryption algorithm based on segmentation secret, and it was analyzed based on chaoticimage encryption.Key Words:Key Words:Information secu

10、rity; encryption and decryption; Matlab- 1 前 言1.1 选题背景及意义随着科学技术的不断进步,网络化的时代慢慢来临,互联网开始走入家家户户,并且开始与人们的生活密不可分。互联网带领我们进入信息大爆炸的时代,每天生活中面对的信息越来越多,并且信息阅读的方式也随着发生变化。图像作为一种更加形象直观的方式也越来越受到人们的重视,图像比单纯的文字更加准确和形象。随着越来越多的图像在互联网络中传播并且逐渐成为人们获取信息的主要途径之一,对于信息安全的考虑下,就需要对发送的图片进行加密,来保护自身的利益,使信息不是那么容易被别人截获。比如在非面对面医疗中(如网上

11、医院,远程医疗等等) ,病号的病例等图形信息需要在加密后才可以在公共信道中传输;国家军事上那些军用设施的图纸,以及各种军事图像都需要在加密的基础上确保安全的情况下才能传输。然后,图像加解密技术应运而生。图像加解密起源初期的经典加密理论,它的作用是是遮挡图形自身本来的信息,让不法分子或不相关的人员,在收到加密后的消息后不能从中得到原本图像的信息,而接收方,就可以使用提前预定好的的密钥和解密方法,顺利地把接收到的加密后图像信息解密出来1-2。本文使用 Matlab 语言编程环境对图形图像的信息打乱变换等方式进行加密。1.2 Matlab 软件介绍Matlab 软件是在 20 世纪 70 年代,由美

12、国墨西哥大学计算机科学系教授编写的,最初 Matlab 软件是为了学生计算方便免费给大学里的学生使用,得到了广大学生的认可。到了 1984 年的时候,通过 Math Works公司,开发者继续对 Matlab 语言进行开发,把 Matlab 语言的使用推向了市场。Matlab 拥有很强大的数据处理能力,并且 Matlab处理数据的效率非常高。Math Work公司通过不断的开发和研究,不断提高 Matlab 在数值运算、文字处理、数据图像处理等方面的市场竞争力,最终在开发人员的不断努力下,Matlab 软件终于成为在市场中使用率最高的语言软件之一3。Matlab 软件不同于其他的语言环境, 它

13、拥有着自己独特的特点和优势, 现在 Matlab语言被人们叫做第四时代的计算机编程语言。Matlab 这种语言的特点是编程效率非常高,数值计算速度比较快,用户使用起来相对方便,具有良好的交互能力,并且在图形图像处理方面占有很大的优势。-1.3 Matlab 语言主要的特点Matlab 语言最大的特点就是方便和快捷,这也是本文要使用Matlab 实现图形图像加密解密的原因。就和第三时代的计算机编程语言让人们脱离对着计算机硬件操作这种不方便的操作方式一样,Matlab 语言让大家可以简单快捷的进行编程。Matlab 语言具有大量的函数命令可以让程序员简单的调用,直接跳过了复杂的反复编程。Matla

14、b 这种语言主要的特点有下面几点:(1)编程效率很高Matlab 是高级计算语言,它主要面对的是科学与工程等方面的计算,能通过使用数字形式的语言来对程序进行编写,这种编写方式和我们在纸上运算公式的思维方式更接近,运用 Matlab 编程就像是在草稿纸上计算式子和解答题目,所以,就简单的称Matlab 语言是草稿纸上的科学算法语言3。因为它很容易写,所以程序设计效率高,易于学习,易于理解。所以人们即使没有高级语言编辑能力,也可以快速掌握 Matlab使用方法,从而完成对图形图像的加密解密。(2)使用方便Matlab 编程是一个简单快捷的编程语言,它简单、方便,编写程序函数很多,方便测试哪里出错。

15、M 文件编译器使用起来方便快捷,省去了重复编码和编译链接的时间。即使输入的代码存在错误,计算机上也会快速的给出出错代码的位置,方便修改。(3)扩充能力较强,具有良好的交互性能在比较高的版本的 Matlab 软件中函数命令具有很多种,我们在运算相对较复杂的计算处理的时候能够直接调用过来直接运用, 而且 Matlab 软见是通过 M 文件的格式保存函数库的,所有自建函数也能当成 Matlab 的库函数调用。还可以使用其他语言中编写好的命令,例如在进行图形图像的加密解密过程中,可以将源代码存在M 文件编译器里面,在对不同的图像加密过程中直接在 M 文件编译器里面做出相应的修改就可以了。(4)语句相对

16、简单,但有丰富的内含Matlab 语言是由函数命令这种最简单但是也最重要的形式构成的,每个函数由函数名称、输入输出变量组成。对于同一个函数,输入变量不同执行的命令也就不相同。基于这些, 会使 Matlab 库中函数命令更丰富, 还可以大程度的缩小占用计算机的资源,这些让我们在运用 Matlab 书写的 M 文件的时候简单、快捷。丰富的函数命令,在进行-图形图像的加密解密过程中不存在障碍。(5)高效方便的矩阵和数组运算Matlab 软件中可以方便的进行矩阵、数组、逻辑和算数运算,而且在进行数组间的运算的时候直接套用相应的运算符就可以。这是其他高级语言所不能比的。因此我们使用 Matlab 来计算

17、图形图像的加密解密过程会更加的简单方便。(6)方便快捷并且强大的绘图功能Matlab 软件具有很强大的绘图能力,可以简单快捷的制作图表和显示图像。这也使得对图形图像的加密解密处理事半功倍。1.4 本文结构安排文章主要由 4 个章节组成,主要安排和内容如下所示:第一章,前言。主要介绍了选题背景和意义,简要描述了 Matlab 语言的起源、发展和主要特点。第二章,基于 Matlab 进行处理图形处理的基础。主要介绍了在 Matlab 语言中图形的不同类型和在 Matlab 语言中使用频率较大的图形处理的编程函数命令。第三章,图形图像的加密解密技术。主要介绍了图形图像加密传输理论框图以及图形图像加密

18、特点, 详细介绍了置乱加密、 混沌加密和秘密分割加密的原理及用 Matlab实现的方法,并对其做了总结分析。第四章,结语。主要是对全文的总结,还介绍了对未来图形图像加密解密技术的展望。-2 基于 Matlab 进行图形图像处理基础2.1 Matlab 中图形图像的分类在 Matlab 软件中中,图像是由矩阵的形式显示出来,位置信息由数据矩阵显示,颜色信息由颜色矩阵显示。Matlab 中有四种几本图像类型:灰度图像、真彩(RGB)图像、索引色图像、二值图像。2.1.1 索引图像只需要两个简单的矩阵就组成了索引图像,这两种不同的矩阵就是颜色矩阵映射和数据矩阵。数据矩阵显示图像的像素位置,并且映射出

19、相应的颜色矩阵。颜色映射矩阵是一个三列*若干行的矩阵,其中的每一列都代表着红(R) 、蓝(B) 、绿(G)三种颜色值,矩阵中的值的范围在0 1之间。2.1.2 灰度图像灰度图像在 Matlab 中显示为一个数据矩阵,矩阵中的值都表示这幅图像相应位置上的灰度值范围。一般时候,灰度图像保存的时候不会有颜色映射矩阵。在 Matlab 中读入灰度图像的时候,需要调用函数imagese(X,0 1) 。Imagese 函数中0 1代表灰度值范围。2.1.3 RGB 图像真彩图像就是 RGB 图像,在 Matlab 中读入后是一个 m*n*3 的三层数据矩阵。矩阵中每个值定义了每一个像素的 RGB 颜色值

20、。RGB 图像是一个三层的数据矩阵,每一层分别代表着红、绿、蓝三种颜色,矩阵中前两维代表着像素的位置,第三维代表了每个像素的颜色数据。2.1.4 二值图像二值图像类似于灰度图像,也是只包含一个数据矩阵,矩阵中每一个像素,只包含 0 或 1 两个值,每个值代表黑、白两种颜色。2.2Matlab 常用的图形图像处理函数(命令)1、图像的读入在 Matlab 软件中读入一幅图像,就会使用到imread 这个函数,其格式为A=imread(A,jpg)。其中 A 是这幅图像的文件名,jpg 是这幅图像的文件类型,文件类-型支持好多中图形格式,不仅仅局限于 jpg 格式。2、图像的显示在 Matlab

21、中显示图像主要有 image 和 imshow 两个函数, image 函数主要属于图像缩放函数,而imshow 函数命令较为强大,对于灰度图像、真彩(RGB)图像、索引色图像、二值图像都可以显示。3、矩阵的翻转和转置(1)A1=A%矩阵转置,即共轭转置,A2=A.%数组转置,即非共轭转置。(2)A3=fliplr(A)%将矩阵 A 左右翻转,A4=flipud(A)%将矩阵 A 上下翻转。4、查看图像信息(1)A=size(m)%size 函数可以显示图像的尺寸,A 为向量。(2)iminfo(文件名)%iminfo 函数可以显示图像的更多信息。5、图像的储存A=imwrite(A,jpg)

22、%通过 imwrite 函数可以将图像保存为文件,其中 A 为文件名。6、生成随机数(1)均匀分布 r=rand(size)。(2)正态分布 r=randn(size)。7、离散余弦变换D=dct2(A,m,n)。8、矩阵的基本算术运算(1)Matlab 的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。(2)点运算符有.*、./、.和.。-3 图形图像的加密解密技术3.1 图形图像加密传输理论框图以及图形图像加密特点攻击者加图密信像算道法安全信道加密密钥密钥 K解密算法图像图像加密有着和文字信息不同的独特特点:如数据量庞大,冗余度高4,像素间相关性强等等。图形图像加

23、密不同于传统文本加密的特殊点如下:(1)图像信息不同于文本,一幅图像往往具有庞大的数据量,这样在加密后,会存在一个庞大的加密文本,不仅会造成传输方面的困难,而且还回造成保密性不高,这种加密后的图像信息在被攻击者截获后,不法分子可以通过这庞大的数据信息来进行密码分析,增加了破解出密码的可能性。冗余量高使得相邻像素点灰度值差别小,甚至具有相同的灰度值,容易被攻击破解5。(2)与传统文本信息加密不同,图像的加密具有数据量庞大的特点,一幅图像在读入 Matlab 后显示为矩阵的形式,并且这个矩阵量非常庞大。计算机在对这些庞大的矩阵进行相关计算的时候就会占用更多的资源,这对计算机的硬件有着更高的要求。(

24、3)图像学阐述了一副图像在水平、竖直、对角线方向上相邻的 16 个像素内都存在相关性。将一幅图像进行放大后我们可以发现,相邻的像素点之间存在着一定的近似,相关性较强,我们在快速进行变换加密的时候就会因此而使得加密效果变差,解密密钥图 3-1 图形图像加密传输的理论框图-在很大程度上变换后的图像中,相邻像素点与变换前类似6-7。(4) 图像可以存在一定的失真度。 图像在进行加密的过程中会丢失一定的像素值,在进行传输的过程中也会丢失一部分,这些都会造成图像的失真。只要将图像的失真控制在人眼能够分辨出来的基础上就可以。并且在大部分情况下,人眼甚至可以接受一定程度上的失真。一般来说,我们使用的普通的图

25、像信息的价值不是特别大,没有必要运用特别复杂的加密算法。除非是军事应用等特殊领域的图像。基于以上图像加密的特点,我们需要找到一种最合适的图像加密方案。下面简要介绍几种常用的图形图像加密解密技术。3.2 置乱加密技术置乱加密技术的思想可以说是在古罗马时期就存在了,当时古罗马皇帝恺撒聪明的想出的一种保护战争中命令顺利传输的方式,就是将需要传达的命令,将其中的某几个字母移动位置,将命令转化成敌人看不懂的乱码,在一定程度上达到了保护战中命令的安全。随着随着计算机科技和互联网技术的快速进步,信息的安全传输就变得越来越重要。对图形图像进行安全传输和保密存储的技术有很多,其中主要手段之一就包含图形图像置乱加

26、密技术。它主要的原理就是利用相关的知识,对一幅图像中像素点的位置或者颜色灰度值进行打乱,把原有的图像信息置乱成非法人员看不懂的信息,通过这种方式来达到迷惑不法分子的目的。对于图像信息的加密传输来说,为了保密程度更高,一般会使用密钥来进行加解密。真正的接收方会收到这个密钥,并运用相同的加密算法对加密后的图像进行解密,这一过程又称去乱8。到现在为止,图形图像置乱加密的方法已经发展处很多种类,本文简单列举了四种置乱加密的技术。这些加密技术针对不同的图像有着很好的加密保护作用。由于置乱加密不仅可以用于图像信息的保密,同时也在图像信息隐藏、图像信息分存、数字水印技术9-10等基础性工作中起到很大的作用,

27、因此,置乱加密算法的优点和缺点也直接影响到其他处理的结果。3.2.1 随机打乱各层的行或列随机打乱各层的行或列这种图像加密方法运算步骤少,简单快捷,运算速度快,适合于信息含量较大的图像,因为信息量大的图像重复率较低,加密效果较好。缺点-是对于一些特殊的图像加密效果极低。通过 imread 函数将一副图像信息读入到计算机 Matlab 软件中, 图像信息在 Matlab中显示为数据矩阵的形式,将读入的矩阵保存在A 中,假设矩阵A 是一个 m*n*3 的 3层数据矩阵。Randsample 这个函数能够生成随机的数据变量,用此函数产生一个与图像矩阵 A 的行数 m 相等的整数随机数列并返回到 r

28、中。通过这样的变换,便能够把原来的图像矩阵的行向量位置顺序随机打乱,把打乱后的数据矩阵信息保存在 B 中,就完成了把图像信息加密的目的。用 find 函数找出向量 r 内从 1 到 m 的元素的位置并返回到向量 f。至此就可以将打乱的图像还原11。3.2.1.1 基于 Matlab 实现打乱各层的行首先清空 Matlab 中函数命令。clear然后引入图像。A=imread(C:UsersAdministratorDesktop毕业论文相关tank.jpg);s=size(A);用 randsample函数产生一个与图像矩阵 A的行数 m 相等的整数随机数列并返回到r 中,这样就可以打乱矩阵中

29、的行向量的位置顺序。r=randsample(s(1),s(1);B=A(r,:,:);过程逆推,完成解密。t=1;j=1;f=1:r;whilet=length(r)f(j)=find(r=t);t=t+1;j=j+1;endf;C=B(f,:,:);subplot(1,2,1);imshow(B);title(加密,fontsize,15);-subplot(1,2,2);imshow(C);title(解密,fontsize,15);图 3-2 原图图 3-3 加密后图 3-4 解密后图 3-5 原图图 3-6 加密后图 3-7 解密后通过Matlab将两幅不同的图像进行加密,对比加密后

30、的图像可以发现,像图3-2这种信息量较大的图像使用这种方法加密更为合适,不仅程序简单快捷,运算速度较快,而且还可以保证一定的加密效果。 但是对于图3-5这种特殊类型的图像来说, 信息含量较少,图像的各行之间重复率较高,加密后的效果不明显,甚至可以直接猜测出加密前原有图像的信息,所以说随机打乱图像各层中的行这种加密技术不适用这种特殊类型的图像的加密。3.2.1.2 基于 Matlab 实现打乱各层的列基于 Matlab 实现打乱各层的列这种操作方法类似于打乱各行的加密方法。clearA=imread(C:UsersAdministratorDesktop毕业论文相关tank.jpg);s=siz

31、e(A);i=randsample(s(2),s(2);B=A(:,i,:);-t=1;j=1;f=1:i;whilet=length(i)f(j)=find(i=t);t=t+1;j=j+1;endf;C=B(:,f,:);subplot(1,2,1);imshow(B);title(加密,fontsize,15);subplot(1,2,2);imshow(C);title(解密,fontsize,15);程序运行结果显示如下:图 3-8 原图图 3-9 加密后图 3-10 解密后图 3-11 原图图 3-12 加密后图 3-13 解密后通过对比可以发现,随机打乱图像各层中的列这种加密方式

32、原理类似于行打乱加-密,只是将图像中列向量的位置顺序进行了打乱。同样通过对两幅不同类型加密后的效果进行对比分析可以发现,这种加密方式适用于信息含量较大的图像的加密,而对于信息含量少,在图像的列向量中信息重复率很高的图像信息就不适合这种加密方式了。3.2.1.3 基于 Matlab 实现打乱各层的行和列打乱各层的行和列这种加密方式类似于打乱各行与列的叠加,相对而言代码稍多一点,但是其加密效果比上述两种加密方式都要好,因为是将图像中的行和列向量的位置顺序都被打乱,可以极大程度上隐藏图像原有的信息。因此,该方法加密效果很好,但方法简单,容易被攻击破解,不适合重要图像的加密。Matlab实现代码如下:

33、clearA=imread(C:UsersAdministratorDesktop毕业论文相关guangxue.jpg);s=size(A);i=randsample(s(1),s(1);B=A(i,:,:);t=1;j=1;f=1:i;whilet=length(i)f(j)=find(i=t);t=t+1;j=j+1;endi1=randsample(s(2),s(2);C=B(:,i1,:);t1=1;j1=1;f1=1:i1;whilet1=length(i1)f1(j1)=find(i1=t1);t1=t1+1;j1=j1+1;end-RGB=C(:,f1,:);D=RGB (f,:

34、,:);subplot(1,2,1);imshow(C);title(加密,fontsize,15);subplot(1,2,2);imshow(D);title(解密,fontsize,15);图 3-14 原图图 3-15 加密后图 3-16 解密后对比三种机密方式我们可以发现,随机打乱各层中的行和随机打乱各层中的列这种加密方式相对简单,加密程度较低,但是其加密简单,运算速度快,可以适用于信息含量较多、像素重复率较低的图像加密。而随机打乱各层中的行和列这种加密技术结合了行打乱和列打乱两种加密技术,加密效果较好,可以适用于大部分的图像,并且这种加密方式相对而言比较简单,速度快,但是它的缺点是

35、保密性不高,在受到不法分子的攻击后,容易被破解,不适用于一些比较重要的图像加密。3.2.2 像素点随机打乱像素,又称画素,为图像显示的基本单位。每一个像素点都存在一个特定的颜色值,可采三原色显示。像素点随机打乱算法就是把一幅图像中像素点的位置进行随机打乱。这种图像的加密算法的加密后效果非常好,在图像的加密过程中使用随机产生的数列更是提高了保密性,但是这种加密技术也存在缺点,就是图像的元素一般特别多,这就使得加密速度特别慢,对计算机要求较高12-15。用Matlab中的imread函数将图像信息读入到计算机中Matlab软件中,图像信息在Matlab中显示为一个m*n*3的三层数据矩阵。用 ra

36、ndsample函数可以产生随机生成的数值,用此函数产生一个值为从1到m*n*3的行向量并返回到r中。这样就可以将原图像数据矩阵的所有像素点位置信息随机打乱, 把打乱后的数据矩阵保存到B中, 再使用reshape-函数把B中的所有元素重置为新的m*n*3的矩阵并返回到C中,就完成了对一幅图像信息的加密过程。用find函数找出向量r内从1到m的元素的位置并返回到向量f。至此就可以将打乱的图像还原。3.2.2.1 基于 Matlab 实现像素点随机打乱clearA=imread(C:UsersAdministratorDesktop毕业论文相关guangxue.jpg);s=size(A); %获

37、取维数n=s(1)*s(2)*s(3);r=randsample(n,n); %B=A(r);C=reshape(B,s(1),s(2),s(3);%调整 RGBS 与 RGB 维数相同t=1;j=1;f=1:n;whilet=length(r)f(j)=find(r=t);t=t+1;j=j+1;endRGBE=B(f);RGBEE=reshape(RGBE,s(1),s(2),s(3);subplot(1,2,1);imshow(C);title(加密后,fontsize,20);subplot(1,2,2);imshow(RGBEE);title(解密后,fontsize,20);-图

38、3-17 原图图 3-18 加密后图 3-19 解密后图 3-20 原图图 3-21 加密后图 3-22 解密后如图 3-18 和图 3-21 所见, 这种加密方法加密后的图像根本上不能分辨出原有图像的信息,可以极大程度上保全信息的安全,几乎适用于所有的图像,但是这种加密技术也有缺点,现在互联网中传输的图片信息大部分上是分辨率较高的真彩图像,数据量大,像素点较多,所以在 Matlab 中运算量极大,一些大型图片运算时间太长,会占用计算机的大量资源。3.2.3 像素点 RGB 值的放大图像中每个像素都有相应的颜色值,我们将像素点上的颜色值进行放大,并相互重合叠加覆盖,隐藏图像原有的信息,达到加密

39、的效果。放大的倍数越大,加密后的图像越不容易分辨出图像原有的信息, 但是因为它太简单, 容易被破解, 保密性不高16。通过 imread 函数把图像信息读入到计算机并保存为矩阵 A,假设 A 是一个 m*n*3的三层的数据矩阵。通过rand 函数可以产生一个 m*n*3 层数据矩阵,这个矩阵是由随机数列组成, 然后将随机矩阵返回到 r 中暂存, 再返回时可以数乘一个数值改变矩阵放大倍数。用矩阵的点运算,通过点乘、点除,可得到加密解密图像。3.2.3.1 基于 Matlab 实现像素点 RGB 值的放大-Matlab 实现代码如下:clearRGB=imread(C:UsersAdministr

40、atorDesktop毕业论文相关baby.jpg);s=size(RGB);r=rand(s(1),s(2),s(3)*5000;RGBD=im2double(RGB);RGBS=RGBD.*r;RGBE=RGBS./r;subplot(1,2,1);imshow(RGBS);title(加密后,fontsize,20);subplot(1,2,2);imshow(RGBE);title(解密后,fontsize,20);图 3-23 原图图 3-24 加密后图 3-25 解密后图 3-26 原图图 3-27 加密后图 3-28 解密后通过对比两幅信息含量不同的图像加密后的效果我们发现,信息

41、含量较少的图像加密效果较差,如图3-27 所示,我们可以依稀分辨出原本图像中的信息。对于信息含量较大的图像来说,加密效果就比较明显,如图3-24 所示,图像经过加密后,完全隐藏了原有的信息,达到了加密的效果。这种加密技术的缺点是加密算法比较简单,在-被不法分子截取后,容易被破解。3.2.4 灰度变换置乱灰度变换置乱这种图像加密技术和像素点随机打乱加密技术不同,灰度置乱加密技术17是对图像的灰度值进行打乱的图像加密技术。图像中的灰度值或色彩值,也可以隐藏原有的信息。为了使加密算法具有更强大的保密程度,在密码学中具有很多加密算法,我们可以引用其中额一些具有优势的加密方法对图形中的灰度值信息进行打乱

42、加密。这种加密技术给人们开拓出一种新思路,对图像的加密技术也具有传统文本信息不能比的优势,不仅仅可以对图像中像素点的各自的位置信息进行打乱处理,像素的颜色信息也能够通过置乱等方式进行处理。本文主要是把图像转换为灰度图像,运用二维坐标的方式对图像进行加密研究。3.2.4.1 基于 Matlab 实现灰度置乱Matlab 实现代码如下I=imread(C:UsersAdministratorDesktop毕业论文相关baby.jpg);A=rgb2gray(I);%读取C盘相应位置中的图片,并且转化为灰度图像。subplot(1,3,1);%最终显示图像为一行三列,原始图像保存在第一个位置。ims

43、how(A);%显示转化为灰度后的图像。title(原图)%在显示的图像下面加上标题“原图” 。Gadd=fix(255*rand(255,255,3);%产生一个随机矩阵进行置乱。for m=1:255%for函数运算。for n=1:255A1(m,n)=0.1*A(m,n)+0.9*Gadd(m,n);endendsubplot(1,3,2);%将图像保存在第二个位置。imshow(A1);%显示加密后的图像。title(加密后)%将图像标题显示为“加密后” 。for m=1:256for n=1:256%for函数运算。A2(m,n)=(A1(m,n)-0.9*Gadd(m,n)./0

44、.1; %反向运算,对图像进行还原。-endendsubplot(1,3,3)%将图像显示在第三个位置。imshow(A2);%显示解密后的图像title(解密后);%将图像标题显示为“加密后” 。图 3-29 原图图 3-30 加密后图 3-31 解密后灰度变换置乱这种加密方式可以极大程度上隐藏原图中的信息,如图 3-30 所示,加密后的图像完全分辨不出原有的信息。这种加密方式的缺点是在解密的过程中容易丢失原图的颜色信息,会造成颜色上的失真。灰度变换置乱这种加密方式有着独特的优点,特别是适用于一些非彩色图像的加密研究。3.3 基于混沌置乱的图形加解密技术在现阶段的密码加密技术中,存在着一种基

45、于混沌序列的加密方式,可以用来进行对图像的加密解密。混沌的加密方法就是把一幅图像中的所有信息转化为矩阵序列,通过混沌信号覆盖叠加或调制来对图像序列进行加密的。3.3.1 混沌加密原理混沌加密的原理11就是在发送端把需要发送的图像序列信息,叠加覆盖上一层按照特定的方式进行重新排列后的混沌序列,这样重新排列后的信息进行传输的时候,在公共信道上的信号会以一种随机噪声的特点传输,这样的信号在网络中大量存在,攻击者不能确定这是属于加密信息还是无用信息,降低了加密后的图像被攻击的可能性,这样在最大程度上保存了图像信息的保密传输的性能。接收方接收到加密后的信息后,使用提前预定好的方式重新排列混沌序列,并将其

46、从加密序列中去除掉,在经过一定程度上的运算,恢复图像原始的图像序列信息,从而显示出原始的图像信息17。-基于混沌置乱的图形加解密算法原理示意图如下所示:混沌序列重排列重排列混沌序列原始图像序列加密图像序列解密图像3.3.2 用 Matlab 的实现基于混沌的图像置乱加密算法Matlab 实现代码如下18:clear all;t0 = clock;%测试程序运行时间。A=imread(C:UsersAdministratorDesktop毕业论文相关tank.jpg);A1=rgb2gray(A);%将图像转化为灰度图像。A1=medfilt2(A1,3 3);%对图像进行处理。figure;i

47、mshow(A1);%显示转化后的图像。title(灰度图像);%将图像标题表示为“灰度图像” 。A1=double(A1);ca1,cb1,cc1,cd1=dwt2(A1,bior3.7);figure(3);subplot(2 3 1);imshow(ca1,);subplot(2 3 2);imshow(cb1);subplot(2 3 3);imshow(cc1);subplot(2 3 4);imshow(cd1),;Q,W=size(ca1);e=hundungen(Q,W,0.1);-tt=0.1;fca1=mod(tt*ca1+(1-tt)*e,256);subplot(2 3

48、 5);imshow(f ca1,);title(加密后);e=hundungen(M,N,0.1);fca1,ch1,cv1,cd1=dwt2(im3,bior3.7);fca2=(fca1-(1-tt)*e)/tt;im4=idwt2(fca2,ch1,cv1,cd1,bior3.7);figure(6);imshow(uint8(im4),);程序运行结果如下:图 3-32 原图图 3-33 加密后图 3-34 解密后图 3-35 灰度图像小波重构图图 3-36 加密图像小波重构图 3-37 灰度图像小波重构混沌加密算法采用混沌序列的加密算法,序列随机度比较高,算法相对复杂,这就使得加密

49、后的图像即使被非法截取,也不会轻易破解,很大程度上保护了图像的信息。并且混沌加密后的图像加密效果较好,几乎适用于所有图像的加密,缺点是算法-复杂,加密解密速度较慢。3.4 基于秘密分割加密解密技术3.4.1 秘密分割加密算法的原理秘密分割的原理就是把需要进行传输的图像信息分割成若干不等的小份,每一份中信息量很少,只有在集全所有的数量后,才能完整的恢复原来传输的信息。这好比是把某种武器的图纸分别交由不同的人员保存管理,每个人手中的图纸看不出是什么武器,只有把所有人保存的图纸集合在一起才是一个完整的武器图纸。这种对信息进行保密的思想可以运用在对图像数据的加解密处理上,主要方法就是把需要进行保密传送

50、的图像信息,通过某种安全的方式切割成不同大小不同数量的小块,然后把切割后的图像分别进行加密保存,只有保存图像的所有人的共同参与,才能将传输的图像信息完整恢复出来。秘密分割的优点就是将密钥分割保存,某一种密钥的丢失不会影响信息的安全性。这种加密技术简单方便,其缺点是图像数据量在加密后会增大储存量,由于图像数据本身数据量就很庞大,不仅仅是限制了加密后的图像的传输,制造了很大的困难,从而在我们实际运用的过程中需要良好的计算机硬件和优秀的带宽。而且使用秘密分割加密技术加密后的图像信息,在解密后会有一定程度的失真。在运用 Matlab 实现过程中,先将图像进行分割,分割成 4*4 或 16*16 等小块

51、,然后分别对其进行转置、水平翻转、垂直翻转等,形成新的矩阵,实现对图像的加密。3.4.2 秘密分割加密算法的 Matlab 实现Matlab 实现代码如下:a=imread(C:UsersAdministratorDesktop毕业论文相关baby.jpg);subplot(2,2,1);imshow(a);title(原图)l,m,n=size(a);x=l/4;y=m/4;for i=0:3for j=0:3-a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),1)=a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),1);a(j*x+1):(j+1)*

52、x),(i*y+1):(i+1)*y),2)=flipud(a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),2);a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),3)=fliplr(a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),3);endendsubplot(2,2,3);imshow(a);title(4*4加密后)x=l/16;y=m/16;a(:,:,1)=flipud(a(:,:,1);a(:,:,2)=fliplr(a(:,:,2);a(:,:,3)=a(:,:,3);for i=0:15for j=0:15a(j

53、*x+1):(j+1)*x),(i*y+1):(i+1)*y),1)=a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),1);a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),2)=flipud(a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),2);a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),3)=fliplr(a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),3);endendsubplot(2,2,2);imshow(a);title(16*16加密后);for i=0:15for

54、j=0:15a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),1)=a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),1);a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),2)=flipud(a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),2);a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),3)=fliplr(a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),3);endend-a(:,:,1)=flipud(a(:,:,1);a(:,:,2)=fliplr(a(:,

55、:,2);a(:,:,3)=a(:,:,3);x=l/4;y=m/4;for i=0:3for j=0:3a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),1)=a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),1);a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),2)=flipud(a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),2);a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),3)=fliplr(a(j*x+1):(j+1)*x),(i*y+1):(i+1)*y),3);enden

56、dsubplot(2,2,4);imshow(a); title(解密后);程序运行结果如下:图 3-38 原图图 3-39 4*4 加密图 3-40 16*16 加密图 3-41 解密后-图 3-42 原图图 3-43 4*4 加密图 3-44 16*16 加密图 3-45 解密后通过对两幅信息含量不同的图像进行加密,对加密后的图像(图3-40和图3-44)进行对比分析我们发现,信息含量较大的图像的加密效果较好,基本上能够隐藏图像原有的信息,信息含量较少的图像加密效果就不是很明显。如图3-43和图3-44,针对与同一幅图像的不同分割次数对比分析可以发现,分割次数越多,加密后对信息的隐藏程度越

57、高,加密效果越好。秘密分割这种加密方式可以极大程度上保障图像传输的安全性,保密度较高,适用于一些相对较重要的图像的加密传输。-4 结 论4.1 总结随着计算机网络技术的快速发展,人们越来越喜欢使用图像传送信息,但是人们使用的互联网是一个开放的大环境,图像信息如果不经过任何加密措施就传输很容易被不法分子截取查看甚至修改信息,所以,在对图像的传输过程中,怎样才能安全性的传输给接收方成为国际社会上很热门的一个研究课题。 本文在基于 Matlab 的基础上,对比较热门的几种加密方式进行了相关研究。1、简要地介绍了 Matlab 软件的起源和发展、图像加密的特点、图像加密技术的背景、发展现状及应用情况,

58、点明了在现实社会中对图像加密进行保密传输的必要性和其所具有的广阔发展应用前景。现阶段来说,图像加解密处理技术已经成为深受大家关注的话题,现代计算机技术和网络信息技术的发展与进步,也对图像加密技术提出了越来越高的要求。2、由于图像的计算量很大,所以本文借用于 Matlab 软件对图像信息进行处理,Matlab 软件的基本数据单位是矩阵,将图像转化成矩阵数据,可以方便对图像进行各种处理,并且 Matlab 软件对数据处理速度快,可以很大程度上减少加密解密过程中运算时间。文章中概述了 Matlab 语言的起源、发展和主要特点。并且简要介绍了使用MATLAB处理图形图像的基础。3、主要介绍了图形加解密

59、传输的理论原理框图以及图形图像加解密传输不同于传统文字加密传输的特点,并且比较详细的介绍了置乱加密、混沌加密和秘密分割加密的原理及用 Matlab 实现的方法。4.2 展望在对图像的传输过程中,怎样才能安全性的传输给接收方成为国际社会上很热门的一个研究课题。鉴于图像加密不同于传统文字加密的独特特点,对图形图像加解密传输的深入研究和探讨将是未来安全领域中一个具有很深的研究价值的热点。就现阶段来看,为了加密程度更好,加密更方便,图形图像加解密技术会在加密算法方面继续深入研究寻找一种合适于图形加密的特殊算法,继续就保密性方面深入提高,在保持加密效果和保密性的前提下继续降低图形加密对于计算机硬件和网络

60、带宽等方面的要求。图形图像加解密技术现在尚处于初级阶段,还存在着大量的问题需要进一步的研究和探讨。-本文基于 Matlab 软件对图像进行加密研究,加密速度快,使用方便,简单易学,但是其也有相应的缺点。1、 解密过程比较复杂, 完成一副图像的加密传输需要双方都有一定的 Matlab 基础才可以实现。2、Matlab 将图像信息转化为矩阵,在计算机中进行运算完成加密,然而随着科技的发展,现在传输的图像信息大部分都是高分辨度的真彩图像,数据量庞大, Matlab运算就需要花费大量的时间和计算机资源,无法达到快捷方便的使用效果。3、本文中的加密算法只是针对于数学知识上的密码学算法,相对而言比较简单,

61、单一,这就需要我们在今后的研究中,继续发现合适的加密算法,选择合适的加密软件渠道。-谢 辞时光飞逝,大学生活已经快接近尾声,四年的大学生活要感谢身边的老师同学对自己成长的帮助,这些都是自己生活的财富,非常感谢他们。本论文是在王惠临老师的指导下完成,从最初修改到定稿都是王老师亲力亲为,为了能够让我们的论文顺利通过并且具有一定的价值,王老师牺牲了很多自己休息的时间来对我们进行指导,经常很晚还在和我们讨论论文,这种敬业精神让人敬佩,真的很感谢王老师的指导。同时借此机会感谢大学四年的所有任课老师和身边的同学们,感谢他们对我生活和学习上的帮助,四年的大学生活中我能够在各方面全面发展和进步,在很大程度上受

62、到他们的帮助和指导,我在这里再次对他们表示由衷的谢谢,并祝有更多的学子在他们的培养下成为栋梁之才!-参考文献1 张博.基于 Matlab 的数字图像置乱方法研究J.计算机与数字工程,2010,38(7):139-142.2 刘卫国.Matlab 程序设计与应用M.北京:高等教育出版社,2006.3 丁炜,齐东旭.数字图像变换及信息隐藏与伪装技术J.计算机学报.1998,21(9).839-843.4 博森,曹长修.图像置乱程度研究A.全国第二届信息隐藏学术研讨会论文集 C,北京,2000.148-152.5 陈鲁生等编著.现代密码学M.北京:科学出版社.2002.6 齐东旭.矩阵变换及其在图像

63、信息隐藏中的应用研究N.北方工业大学学报,1999,11(1):24-28.7 李昌刚,韩正之.图像加密技术新进展J.信息与控制,2003, 32(4):339-343.8 李昌刚,韩正之.图像加密技术综述J.计算机研究与发展.2002,39(10):1317-1324.9 商艳红.数字图像加密技术的研究N.中国图像图形学报.2006,(8):1076-1080.10 丁玮,齐东旭.数字图像变换及信息隐藏与伪装技术J.计算机学报,1998,21(9);838-843.11 叶永伟,杨庆华,王颖玉.用混沌序列对数字图像进行魔方加密 J.浙江工业大学学报,2003,31(2);173-176.12

64、 Ding Wei, Yan Weiqi, Qi Dongxu. Digital Image Scrambling Technology Based on GrayCodeA,Proc. of the 6th International Conference on CAD/CG.,Shanghai,1999:900-904.13 王丽娜等编著.信息隐藏技术实验教程M.武汉:武汉大学出版社.2004.14 刘振华等编著.信息隐藏技术及其应用M.北京:北京科学出版社.2002.15 Stefan Katzenbeisser et al 编,吴秋新,钮心忻等译.信息隐藏技术M.北京人民邮电出版社,2001.16 黄晓生.数字图像安全技术研究进展J.华东交通大学学报.2006,23(1):82-85.17赵学峰.基于面包师变换的数字图像置乱J.西北师范大学学报,2003,39(2):26-29.18苏莉萍,冯健.基于混沌的图像置乱加密算法及MATLAB实现N.装备制造技术,2007.-

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号