1、本科毕业论文题 目:基于 Matlab 的光学图像加密解密技术院 (部): 理学院专 业: 光信息科学与技术班 级: 光信 122姓 名: 韩硕学 号: 20121212082指导教师: 王惠临完成日期: 2016 年 6 月 4 日山东建筑大学毕业论文II目 录摘 要 .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 RG
2、B 图像 .42.1.4 二值图像 .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山东建筑大学毕业论文III3.4 基于秘密分割加密解密技术 .203.4.1 秘密分割加密算法
3、的原理 .203.4.2 秘密分割加密算法的 Matlab 实现 .204结 论 .244.1 总结 .244.2 展望 .24谢 辞 .26参考文献 .27山东建筑大学毕业论文IV摘 要社会在进步,时代在发展,计算机技术在飞速发展,互联网技术也在日益进步,各种迹象都表明着我们已经进入了一个信息大爆炸的时代。人们每天通过互联网获取大量的数字图像的信息,然而在信息的传送中,未经加密的原始的数据非常容易遭受非法途径的截取并被恶意更改。因此,互联网时代如何确保图像信息安全传送越来越受到人们的重视。基于此,也提出了不少图形加密解密的算法。本文基于 Matlab 语言的编程环境,对图像的加密和解密的技术
4、进行了相关验证性的研究。论文的主要工作有:一、对 Matlab 编程语言环境进行了简要介绍,并对基于 Matlab 语言环境中,图形图像的格式及其变换处理的功能实现进行了深入分析。二、基于 Matlab 语言编程,实现了随机打乱各层的行或列、像素点随机打乱、像素点 RGB 值缩放、灰度变换置乱等加密解密算法,并对加密算法进行了总结分析。三、基于 Maltab 语言编程,实现了基于混沌的图像加密解密和基于秘密分割加密解密算法,并对其进行了总结分析。关键词:信息安全;加密解密;Matlab山东建筑大学毕业论文VMatlab-based Optical Image Encryption and De
5、cryption TechnologyABSTRACTSocial progress, era in the development of computer technology in the rapid development of Internet technology is increasingly progressive, all indications are that we have entered with an information explosion era. every day get a lot of information on digital images over
6、 the Internet, but in the transmission of information in unencrypted raw data is very vulnerable interception of illegal means and malicious changes. Therefore, how the Internet era of information security to ensure the image transfer more and more peoples attention. Based on this, it made a lot of
7、graphics encryption and decryption algorithms. Based on Matlab programming environment, technology for encrypting and decrypting images were studied related confirmatory. The main work of this thesis are:First, the Matlab programming language environment is briefly introduced, and based on Matlab la
8、nguage environment, the format and function transformation processing graphic images to achieve in-depth analysis.Second, based on Matlab language programming, random layers disrupted row or column of pixels randomly disrupted, pixel RGB value scales, and other gray-scale transformation scrambling e
9、ncryption and decryption algorithms, and encryption algorithms analyzed.Third, based on Maltab language programming, decryption and encryption and decryption algorithm based on segmentation secret, and it was analyzed based on chaotic image encryption.Key Words: Information security; encryption and
10、decryption; Matlab山东建筑大学毕业论文11前 言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 这种语言的特点是编程效率非常高,数值计算速度比较快,用户使用起来相对方便,具有良好的交互能力,并且在图形图像处理方面占有很大的优势。 山东建筑大学毕业论文21.3 Matlab 语言主要的特点Matlab 语言最大的特点就是方便和快捷,这也是本文要使用 Matlab 实现图形图像加密解密的原因。就和第三时代的计算机编程语言让人们脱离对着计算机硬件操作这种不方便的操作方式一样,Matlab 语言让大家可以简单快捷的进行编程。Matlab 语言具有大量的函数命令可以让程序员简单的调用,直接跳过了复杂的反复编程。Ma
14、tlab 这种语言主要的特点有下面几点:(1)编程效率很高Matlab 是高级计算语言,它主要面对的是科学与工程等方面的计算,能通过使用数字形式的语言来对程序进行编写,这种编写方式和我们在纸上运算公式的思维方式更接近,运用 Matlab 编程就像是在草稿纸上计算式子和解答题目,所以,就简单的称Matlab 语言是草稿纸上的科学算法语言 3。因为它很容易写,所以程序设计效率高,易于学习,易于理解。所以人们即使没有高级语言编辑能力,也可以快速掌握 Matlab 使用方法,从而完成对图形图像的加密解密。(2)使用方便Matlab 编程是一个简单快捷的编程语言,它简单、方便,编写程序函数很多,方便测试
15、哪里出错。M 文件编译器使用起来方便快捷,省去了重复编码和编译链接的时间。即使输入的代码存在错误,计算机上也会快速的给出出错代码的位置,方便修改。(3)扩充能力较强,具有良好的交互性能在比较高的版本的 Matlab 软件中函数命令具有很多种,我们在运算相对较复杂的计算处理的时候能够直接调用过来直接运用,而且 Matlab 软见是通过 M 文件的格式保存函数库的,所有自建函数也能当成 Matlab 的库函数调用。还可以使用其他语言中编写好的命令,例如在进行图形图像的加密解密过程中,可以将源代码存在 M 文件编译器里面,在对不同的图像加密过程中直接在 M 文件编译器里面做出相应的修改就可以了。(4
16、)语句相对简单,但有丰富的内含Matlab 语言是由函数命令这种最简单但是也最重要的形式构成的,每个函数由函数名称、输入输出变量组成。对于同一个函数,输入变量不同执行的命令也就不相同。基于这些,会使 Matlab 库中函数命令更丰富,还可以大程度的缩小占用计算机的资源,这些让我们在运用 Matlab 书写的 M 文件的时候简单、快捷。丰富的函数命令,在进行山东建筑大学毕业论文3图形图像的加密解密过程中不存在障碍。(5)高效方便的矩阵和数组运算Matlab 软件中可以方便的进行矩阵、数组、逻辑和算数运算,而且在进行数组间的运算的时候直接套用相应的运算符就可以。这是其他高级语言所不能比的。因此我们
17、使用 Matlab 来计算图形图像的加密解密过程会更加的简单方便。(6)方便快捷并且强大的绘图功能Matlab 软件具有很强大的绘图能力,可以简单快捷的制作图表和显示图像。这也使得对图形图像的加密解密处理事半功倍。1.4 本文结构安排文章主要由 4 个章节组成,主要安排和内容如下所示:第一章,前言。主要介绍了选题背景和意义,简要描述了 Matlab 语言的起源、发展和主要特点。第二章,基于 Matlab 进行处理图形处理的基础。主要介绍了在 Matlab 语言中图形的不同类型和在 Matlab 语言中使用频率较大的图形处理的编程函数命令。第三章,图形图像的加密解密技术。主要介绍了图形图像加密传
18、输理论框图以及图形图像加密特点,详细介绍了置乱加密、混沌加密和秘密分割加密的原理及用 Matlab实现的方法,并对其做了总结分析。第四章,结语。主要是对全文的总结,还介绍了对未来图形图像加密解密技术的展望。山东建筑大学毕业论文42基于 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 的三层数据矩阵。矩阵
20、中每个值定义了每一个像素的 RGB 颜色值。RGB 图像是一个三层的数据矩阵,每一层分别代表着红、绿、蓝三种颜色,矩阵中前两维代表着像素的位置,第三维代表了每个像素的颜色数据。2.1.4 二值图像二值图像类似于灰度图像,也是只包含一个数据矩阵,矩阵中每一个像素,只包含0 或 1 两个值,每个值代表黑、白两种颜色。2.2 Matlab 常用的图形图像处理函数(命令)1、图像的读入在 Matlab 软件中读入一幅图像,就会使用到 imread 这个函数,其格式为A=imread(A,jpg)。其中 A 是这幅图像的文件名,jpg 是这幅图像的文件类型,文件类山东建筑大学毕业论文5型支持好多中图形格
21、式,不仅仅局限于 jpg 格式。2、图像的显示在 Matlab 中显示图像主要有 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)%通过 imwrite 函数可以将图像保存为文件,其中 A 为文件名。6、生成随机数(1)均匀分布 r=rand(size)。(2)正态分布 r=randn(size)。7、离散余弦变换D=dct2(A,m,n)。 8、矩阵的基本算术运算(1)Matlab 的基本算术运算有: (加)、(减)、*(乘)、/(右除)、( 左除)、( 乘方)。(2)点运算符有.*、./、.和.。