毕业论文基于Matlab的光学图像加密解密技术范本模板.docx
- 文档编号:11046253
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:39
- 大小:1.34MB
毕业论文基于Matlab的光学图像加密解密技术范本模板.docx
《毕业论文基于Matlab的光学图像加密解密技术范本模板.docx》由会员分享,可在线阅读,更多相关《毕业论文基于Matlab的光学图像加密解密技术范本模板.docx(39页珍藏版)》请在冰豆网上搜索。
毕业论文基于Matlab的光学图像加密解密技术范本模板
本科毕业论文
题目:
基于Matlab的光学图像
加密解密技术
院(部):
理学院
专业:
光信息科学与技术
班级:
光信122
姓名:
韩硕
学号:
20121212082
指导教师:
王惠临
完成日期:
2016年6月4日
摘要
社会在进步,时代在发展,计算机技术在飞速发展,互联网技术也在日益进步,各种迹象都表明着我们已经进入了一个信息大爆炸的时代。
人们每天通过互联网获取大量的数字图像的信息,然而在信息的传送中,未经加密的原始的数据非常容易遭受非法途径的截取并被恶意更改。
因此,互联网时代如何确保图像信息安全传送越来越受到人们的重视。
基于此,也提出了不少图形加密解密的算法.本文基于Matlab语言的编程环境,对图像的加密和解密的技术进行了相关验证性的研究。
论文的主要工作有:
一、对Matlab编程语言环境进行了简要介绍,并对基于Matlab语言环境中,图形图像的格式及其变换处理的功能实现进行了深入分析。
二、基于Matlab语言编程,实现了随机打乱各层的行或列、像素点随机打乱、像素点RGB值缩放、灰度变换置乱等加密解密算法,并对加密算法进行了总结分析。
三、基于Maltab语言编程,实现了基于混沌的图像加密解密和基于秘密分割加密解密算法,并对其进行了总结分析。
关键词:
信息安全;加密解密;Matlab
Matlab-basedOpticalImageEncryptionandDecryptionTechnology
ABSTRACT
Socialprogress,erainthedevelopmentofcomputertechnologyintherapiddevelopmentofInternettechnologyisincreasinglyprogressive,allindicationsarethatwehaveenteredwithaninformationexplosionera。
everydaygetalotofinformationondigitalimagesovertheInternet,butinthetransmissionofinformationinunencryptedrawdataisveryvulnerableinterceptionofillegalmeansandmaliciouschanges.Therefore,howtheInterneteraofinformationsecuritytoensuretheimagetransfermoreandmorepeople'sattention.Basedonthis,itmadealotofgraphicsencryptionanddecryptionalgorithms。
BasedonMatlabprogrammingenvironment,technologyforencryptinganddecryptingimageswerestudiedrelatedconfirmatory。
Themainworkofthisthesisare:
First,theMatlabprogramminglanguageenvironmentisbrieflyintroduced,andbasedonMatlablanguageenvironment,theformatandfunctiontransformationprocessinggraphicimagestoachievein-depthanalysis.
Second,basedonMatlablanguageprogramming,randomlayersdisruptedroworcolumnofpixelsrandomlydisrupted,pixelRGBvaluescales,andothergray-scaletransformationscramblingencryptionanddecryptionalgorithms,andencryptionalgorithmsanalyzed.
Third,basedonMaltablanguageprogramming,decryptionandencryptionanddecryptionalgorithmbasedonsegmentationsecret,anditwasanalyzedbasedonchaoticimageencryption.
KeyWords:
Informationsecurity;encryptionanddecryption;Matlab
1前言
1.1选题背景及意义
随着科学技术的不断进步,网络化的时代慢慢来临,互联网开始走入家家户户,并且开始与人们的生活密不可分。
互联网带领我们进入信息大爆炸的时代,每天生活中面对的信息越来越多,并且信息阅读的方式也随着发生变化。
图像作为一种更加形象直观的方式也越来越受到人们的重视,图像比单纯的文字更加准确和形象。
随着越来越多的图像在互联网络中传播并且逐渐成为人们获取信息的主要途径之一,对于信息安全的考虑下,就需要对发送的图片进行加密,来保护自身的利益,使信息不是那么容易被别人截获。
比如在非面对面医疗中(如网上医院,远程医疗等等),病号的病例等图形信息需要在加密后才可以在公共信道中传输;国家军事上那些军用设施的图纸,以及各种军事图像都需要在加密的基础上确保安全的情况下才能传输。
然后,图像加解密技术应运而生。
图像加解密起源初期的经典加密理论,它的作用是是遮挡图形自身本来的信息,让不法分子或不相关的人员,在收到加密后的消息后不能从中得到原本图像的信息,而接收方,就可以使用提前预定好的的密钥和解密方法,顺利地把接收到的加密后图像信息解密出来[1]—[2]。
本文使用Matlab语言编程环境对图形图像的信息打乱变换等方式进行加密.
1。
2Matlab软件介绍
Matlab软件是在20世纪70年代,由美国墨西哥大学计算机科学系教授编写的,最初Matlab软件是为了学生计算方便免费给大学里的学生使用,得到了广大学生的认可。
到了1984年的时候,通过MathWorks公司,开发者继续对Matlab语言进行开发,把Matlab语言的使用推向了市场。
Matlab拥有很强大的数据处理能力,并且Matlab处理数据的效率非常高。
MathWork公司通过不断的开发和研究,不断提高Matlab在数值运算、文字处理、数据图像处理等方面的市场竞争力,最终在开发人员的不断努力下,Matlab软件终于成为在市场中使用率最高的语言软件之一[3]。
Matlab软件不同于其他的语言环境,它拥有着自己独特的特点和优势,现在Matlab语言被人们叫做第四时代的计算机编程语言。
Matlab这种语言的特点是编程效率非常高,数值计算速度比较快,用户使用起来相对方便,具有良好的交互能力,并且在图形图像处理方面占有很大的优势。
1.3Matlab语言主要的特点
Matlab语言最大的特点就是方便和快捷,这也是本文要使用Matlab实现图形图像加密解密的原因。
就和第三时代的计算机编程语言让人们脱离对着计算机硬件操作这种不方便的操作方式一样,Matlab语言让大家可以简单快捷的进行编程。
Matlab语言具有大量的函数命令可以让程序员简单的调用,直接跳过了复杂的反复编程。
Matlab这种语言主要的特点有下面几点:
(1)编程效率很高
Matlab是高级计算语言,它主要面对的是科学与工程等方面的计算,能通过使用数字形式的语言来对程序进行编写,这种编写方式和我们在纸上运算公式的思维方式更接近,运用Matlab编程就像是在草稿纸上计算式子和解答题目,所以,就简单的称Matlab语言是草稿纸上的科学算法语言[3]。
因为它很容易写,所以程序设计效率高,易于学习,易于理解。
所以人们即使没有高级语言编辑能力,也可以快速掌握Matlab使用方法,从而完成对图形图像的加密解密。
(2)使用方便
Matlab编程是一个简单快捷的编程语言,它简单、方便,编写程序函数很多,方便测试哪里出错。
M文件编译器使用起来方便快捷,省去了重复编码和编译链接的时间。
即使输入的代码存在错误,计算机上也会快速的给出出错代码的位置,方便修改。
(3)扩充能力较强,具有良好的交互性能
在比较高的版本的Matlab软件中函数命令具有很多种,我们在运算相对较复杂的计算处理的时候能够直接调用过来直接运用,而且Matlab软见是通过M文件的格式保存函数库的,所有自建函数也能当成Matlab的库函数调用。
还可以使用其他语言中编写好的命令,例如在进行图形图像的加密解密过程中,可以将源代码存在M文件编译器里面,在对不同的图像加密过程中直接在M文件编译器里面做出相应的修改就可以了。
(4)语句相对简单,但有丰富的内含
Matlab语言是由函数命令这种最简单但是也最重要的形式构成的,每个函数由函数名称、输入输出变量组成。
对于同一个函数,输入变量不同执行的命令也就不相同。
基于这些,会使Matlab库中函数命令更丰富,还可以大程度的缩小占用计算机的资源,这些让我们在运用Matlab书写的M文件的时候简单、快捷。
丰富的函数命令,在进行图形图像的加密解密过程中不存在障碍。
(5)高效方便的矩阵和数组运算
Matlab软件中可以方便的进行矩阵、数组、逻辑和算数运算,而且在进行数组间的运算的时候直接套用相应的运算符就可以.这是其他高级语言所不能比的。
因此我们使用Matlab来计算图形图像的加密解密过程会更加的简单方便。
(6)方便快捷并且强大的绘图功能
Matlab软件具有很强大的绘图能力,可以简单快捷的制作图表和显示图像。
这也使得对图形图像的加密解密处理事半功倍。
1.4本文结构安排
文章主要由4个章节组成,主要安排和内容如下所示:
第一章,前言.主要介绍了选题背景和意义,简要描述了Matlab语言的起源、发展和主要特点。
第二章,基于Matlab进行处理图形处理的基础.主要介绍了在Matlab语言中图形的不同类型和在Matlab语言中使用频率较大的图形处理的编程函数命令。
第三章,图形图像的加密解密技术。
主要介绍了图形图像加密传输理论框图以及图形图像加密特点,详细介绍了置乱加密、混沌加密和秘密分割加密的原理及用Matlab实现的方法,并对其做了总结分析.
第四章,结语。
主要是对全文的总结,还介绍了对未来图形图像加密解密技术的展望.
2基于Matlab进行图形图像处理基础
2.1Matlab中图形图像的分类
在Matlab软件中中,图像是由矩阵的形式显示出来,位置信息由数据矩阵显示,颜色信息由颜色矩阵显示。
Matlab中有四种几本图像类型:
灰度图像、真彩(RGB)图像、索引色图像、二值图像。
2。
1。
1索引图像
只需要两个简单的矩阵就组成了索引图像,这两种不同的矩阵就是颜色矩阵映射和数据矩阵.数据矩阵显示图像的像素位置,并且映射出相应的颜色矩阵。
颜色映射矩阵是一个三列*若干行的矩阵,其中的每一列都代表着红(R)、蓝(B)、绿(G)三种颜色值,矩阵中的值的范围在[01]之间.
2。
1.2灰度图像
灰度图像在Matlab中显示为一个数据矩阵,矩阵中的值都表示这幅图像相应位置上的灰度值范围。
一般时候,灰度图像保存的时候不会有颜色映射矩阵。
在Matlab中读入灰度图像的时候,需要调用函数imagese(X,[01])。
Imagese函数中[01]代表灰度值范围。
2。
1.3RGB图像
真彩图像就是RGB图像,在Matlab中读入后是一个m*n*3的三层数据矩阵。
矩阵中每个值定义了每一个像素的RGB颜色值。
RGB图像是一个三层的数据矩阵,每一层分别代表着红、绿、蓝三种颜色,矩阵中前两维代表着像素的位置,第三维代表了每个像素的颜色数据。
2。
1。
4二值图像
二值图像类似于灰度图像,也是只包含一个数据矩阵,矩阵中每一个像素,只包含0或1两个值,每个值代表黑、白两种颜色。
2.2Matlab常用的图形图像处理函数(命令)
1、图像的读入
在Matlab软件中读入一幅图像,就会使用到imread这个函数,其格式为A=imread('A',jpg)。
其中A是这幅图像的文件名,jpg是这幅图像的文件类型,文件类型支持好多中图形格式,不仅仅局限于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)点运算符有.*、。
/、.\和。
^。
3图形图像的加密解密技术
3。
1图形图像加密传输理论框图以及图形图像加密特点
安全信道
密钥K
图3—1图形图像加密传输的理论框图
图像加密有着和文字信息不同的独特特点:
如数据量庞大,冗余度高[4],像素间相关性强等等。
图形图像加密不同于传统文本加密的特殊点如下:
(1)图像信息不同于文本,一幅图像往往具有庞大的数据量,这样在加密后,会存在一个庞大的加密文本,不仅会造成传输方面的困难,而且还回造成保密性不高,这种加密后的图像信息在被攻击者截获后,不法分子可以通过这庞大的数据信息来进行密码分析,增加了破解出密码的可能性.冗余量高使得相邻像素点灰度值差别小,甚至具有相同的灰度值,容易被攻击破解[5].
(2)与传统文本信息加密不同,图像的加密具有数据量庞大的特点,一幅图像在读入Matlab后显示为矩阵的形式,并且这个矩阵量非常庞大。
计算机在对这些庞大的矩阵进行相关计算的时候就会占用更多的资源,这对计算机的硬件有着更高的要求。
(3)图像学阐述了一副图像在水平、竖直、对角线方向上相邻的16个像素内都存在相关性。
将一幅图像进行放大后我们可以发现,相邻的像素点之间存在着一定的近似,相关性较强,我们在快速进行变换加密的时候就会因此而使得加密效果变差,在很大程度上变换后的图像中,相邻像素点与变换前类似[6]—[7].
(4)图像可以存在一定的失真度。
图像在进行加密的过程中会丢失一定的像素值,在进行传输的过程中也会丢失一部分,这些都会造成图像的失真。
只要将图像的失真控制在人眼能够分辨出来的基础上就可以。
并且在大部分情况下,人眼甚至可以接受一定程度上的失真。
一般来说,我们使用的普通的图像信息的价值不是特别大,没有必要运用特别复杂的加密算法。
除非是军事应用等特殊领域的图像.基于以上图像加密的特点,我们需要找到一种最合适的图像加密方案。
下面简要介绍几种常用的图形图像加密解密技术。
3。
2置乱加密技术
置乱加密技术的思想可以说是在古罗马时期就存在了,当时古罗马皇帝恺撒聪明的想出的一种保护战争中命令顺利传输的方式,就是将需要传达的命令,将其中的某几个字母移动位置,将命令转化成敌人看不懂的乱码,在一定程度上达到了保护战中命令的安全。
随着随着计算机科技和互联网技术的快速进步,信息的安全传输就变得越来越重要。
对图形图像进行安全传输和保密存储的技术有很多,其中主要手段之一就包含图形图像置乱加密技术。
它主要的原理就是利用相关的知识,对一幅图像中像素点的位置或者颜色灰度值进行打乱,把原有的图像信息置乱成非法人员看不懂的信息,通过这种方式来达到迷惑不法分子的目的。
对于图像信息的加密传输来说,为了保密程度更高,一般会使用密钥来进行加解密。
真正的接收方会收到这个密钥,并运用相同的加密算法对加密后的图像进行解密,这一过程又称去乱[8]。
到现在为止,图形图像置乱加密的方法已经发展处很多种类,本文简单列举了四种置乱加密的技术.这些加密技术针对不同的图像有着很好的加密保护作用.由于置乱加密不仅可以用于图像信息的保密,同时也在图像信息隐藏、图像信息分存、数字水印技术[9]-[10]等基础性工作中起到很大的作用,因此,置乱加密算法的优点和缺点也直接影响到其他处理的结果。
3。
2。
1随机打乱各层的行或列
随机打乱各层的行或列这种图像加密方法运算步骤少,简单快捷,运算速度快,适合于信息含量较大的图像,因为信息量大的图像重复率较低,加密效果较好。
缺点是对于一些特殊的图像加密效果极低。
通过imread函数将一副图像信息读入到计算机Matlab软件中,图像信息在Matlab中显示为数据矩阵的形式,将读入的矩阵保存在A中,假设矩阵A是一个m*n*3的3层数据矩阵。
Randsample这个函数能够生成随机的数据变量,用此函数产生一个与图像矩阵A的行数m相等的整数随机数列并返回到r中.通过这样的变换,便能够把原来的图像矩阵的行向量位置顺序随机打乱,把打乱后的数据矩阵信息保存在B中,就完成了把图像信息加密的目的。
用find函数找出向量r内从1到m的元素的位置并返回到向量f。
至此就可以将打乱的图像还原[11]。
3.2.1.1基于Matlab实现打乱各层的行
首先清空Matlab中函数命令。
clear
然后引入图像.
A=imread(’C:
\Users\Administrator\Desktop\毕业论文相关\tank.jpg’);
s=size(A);
用randsample函数产生一个与图像矩阵A的行数m相等的整数随机数列并返回到r中,这样就可以打乱矩阵中的行向量的位置顺序。
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;
end
f;
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将两幅不同的图像进行加密,对比加密后的图像可以发现,像图3—2这种信息量较大的图像使用这种方法加密更为合适,不仅程序简单快捷,运算速度较快,而且还可以保证一定的加密效果。
但是对于图3—5这种特殊类型的图像来说,信息含量较少,图像的各行之间重复率较高,加密后的效果不明显,甚至可以直接猜测出加密前原有图像的信息,所以说随机打乱图像各层中的行这种加密技术不适用这种特殊类型的图像的加密.
3。
2.1。
2基于Matlab实现打乱各层的列
基于Matlab实现打乱各层的列这种操作方法类似于打乱各行的加密方法。
clear
A=imread('C:
\Users\Administrator\Desktop\毕业论文相关\tank。
jpg');
s=size(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;
end
f;
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解密后
通过对比可以发现,随机打乱图像各层中的列这种加密方式原理类似于行打乱加密,只是将图像中列向量的位置顺序进行了打乱.同样通过对两幅不同类型加密后的效果进行对比分析可以发现,这种加密方式适用于信息含量较大的图像的加密,而对于信息含量少,在图像的列向量中信息重复率很高的图像信息就不适合这种加密方式了.
3。
2。
1。
3基于Matlab实现打乱各层的行和列
打乱各层的行和列这种加密方式类似于打乱各行与列的叠加,相对而言代码稍多一点,但是其加密效果比上述两种加密方式都要好,因为是将图像中的行和列向量的位置顺序都被打乱,可以极大程度上隐藏图像原有的信息.因此,该方法加密效果很好,但方法简单,容易被攻击破解,不适合重要图像的加密。
Matlab实现代码如下:
clear
A=imread('C:
\Users\Administrator\Desktop\毕业论文相关\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;
end
i1=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,:
:
);
subplot(1,2,1);imshow(C);
title(’加密',’fontsize',15);
subplot(1,2,2);imshow(D);
title(’解密’,’fontsize',15);
图3-14原图图3—15加密后图3-16解密后
对比三种机密方式我们可以发现,随机打乱各层中的行和随机打乱各层中的列这种加密方式相对简单,加密程度较低,但是其加密简单,运算速度快,可以适用于信息含量较多、像素重复率较低的图像加密。
而随机打乱各层中的行和列这种加密技术结合了行打乱和列打乱两种加密技术,加密效果较好,可以适用于大部分的图像,并且这种加密方式相对而言比较简单,速度快,但是它的缺点是保密性不高,在受到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 基于 Matlab 光学 图像 加密 解密 技术 范本 模板
![提示](https://static.bdocx.com/images/bang_tan.gif)