基于课程设计MATLAB的混沌序列图像加密程序
设计主题:基于MATLAB的混沌序列图像加密程序
设计的目的
信息的生动形象已经成为人类表达信息的重要手段之一。 很多互联网上的图像数据都需要发送方和接收方进行加密通信,信息的安全性和机密性尤为重要。 因此,我们希望利用异或运算隐藏数据,连续使用同一数据,不更改图像数据的异或运算图像数据两次的特性,对图像信息进行加密保护。
熟练使用matlab使用matlab进行编程,使用matlab语言进行数据保密加密,具有确保数字图像信息安全、容易生成混沌序列、对初始条件和混沌参数敏感等特点,近年来广泛应用于图像加密领域使用必要的算法解密信息,实现信息的保护。
设计的内容和要求
采用混沌序列图像加密技术处理图像,加密后的图像
使用matlab隐藏图像信息,实现信息加密。
设计的想法
1 .基于混沌的图像置乱加密算法
本文提出的基于混沌的图像置乱加密算法示意图如图1所示。
加密算法首先将数字图像b的尺寸设为MN(m是图像b的行数,n是图像b的列像素数),在第j-1行之后) j=2,3,a,m )连接a的第j行,形成长度为mn的系列c 其次,利用Logistic混沌映射生成长度为1个混沌序列{k1,k2,a,kMN},构造等差序列d:{ 1,2,3,a,MN-1,MN}。
再次,按照从小到大的顺序对产生的混沌序列{k1,k2,a,kMN}的MN个值进行排序,形成有序序列{k1 ',k2 ',a’,kmn’},形成序列{k1,k2,a,kMN} 用同样的方法置换等差序列d,得到d’。
最后,b是MN的矩阵,b(I,j )=c) I-1 )M j ),其中I=1,2,a,m; j=i=1,2、2、2、a、n、b’是加密后的图像文件。
解密算法与加密算法相似,但在第三步中可以用序列c’代替随机序列{k1,k2,a,kMN}来解密图像。
基于MATLAB的基于混沌的图像置乱加密算法实现
本文利用MATLAB软件平台,用MATLAB提供的文本编辑器进行编程,实现加密功能。 根据前面的加密思路,将加密算法的编程分为三个主要模块。 首先,在原图像a等的高宽度的矩阵b和图像矩阵a的后面制作复合矩阵c :
B=Zeros(M1,n1);
ifm1=n1
ifm1n1
fore=1:n1
b=(e,e );
结束
.
else
fore=1:n1
结束
fore=1:(N1-M1 ) )
b ()=m1 e-1 ),e )=m1 e-1
结束
结束
c=Zeros(m1*2,n1 );
c=zeros (m1 * 2,1 );
c=[b,a];
然后,用Logitic映射生成混沌序列:
.
forn=1:n1100x(n1 )=q*x(n ) n ) (1-x ) n );
endn=101:1:n1 100;
y(n-100 )=x ) n;
.
最后,按照从小到大的顺序对利用冒泡法生成的混沌序列的值进行排序,并按照相同的顺序依次打乱复合矩阵的列和行进行排序。
forf=1: n1-1 forh=f : n1 ify (f ) y ) h ) k=y ) f;
y(f )=y ) h;
y(h )=k;
C1=C(3360,f );
c(:f(=c65:h );
c(3360,h )=c1;
结束
.
forh=g:m1
ify(fy
k=y(f )
y(f )=y (h ) )。
y(h )=k;
D1=D(3360,f );
d(:f )=d(:h );
d(3360h )=d;
结束
.
解密的步骤与加密相反。
3 .基于混沌的图像置乱加密算法效果分析
与直接用逻辑混沌序列加密图像文件相比,用逻辑混沌序列加密图像文件更有效。 设x0=0.3001,则图2(b )是用逻辑混沌序列直接加密图像文件后图像,图2(b )是用逻辑混沌序列直接加密图像文件后的图像
4 .设计原理
利用异或运算隐藏数据,利用同一数据对图像数据不连续两次改变异或运算图像数据的特性对图像信息进行加密保护。 用户输入的密码用0~1之间的任意一个数据加密,且加密的程序和解密的程序输入的密码不一致,才能正确解密。
源程序
%此程序加密图像的近似系数和高频系数,以实现加密效果
clear all;
t0=锁定; %测试程序的执行时间
im=imrea