文档库 最新最全的文档下载
当前位置:文档库 › 基于MATLAB的混沌序列图像加密程序

基于MATLAB的混沌序列图像加密程序

基于MATLAB的混沌序列图像加密程序
基于MATLAB的混沌序列图像加密程序

设计题目:基于MATLAB的混沌序列图像加密程序

一.设计目的

图像信息生动形象,它已成为人类表达信息的重要手段之一,网络上的图像数据很多是要求发送方和接受都要进行加密通信,信息的安全与保密显得尤为重要,因此我想运用异或运算将数据进行隐藏,连续使用同一数据对图像数据两次异或运算图像的数据不发生改变,利用这一特性对图像信息进行加密保护。

熟练使用matlab运用matlab进行编程,使用matlab语言进行数据的隐藏加密,确保数字图像信息的安全,混沌序列具有容易生成,对初始条件和混沌参数敏感等特点,近年来在图像加密领域得到了广泛的应用。使用必要的算法将信息进行加解密,实现信息的保护。

二.设计内容和要求

使用混沌序列图像加密技术对图像进行处理使加密后的图像

使用matlab将图像信息隐藏,实现信息加密。

三.设计思路

1.基于混沌的图像置乱加密算法

本文提出的基于混沌的图像置乱加密算法示意图如图1所示。

加密算法如下:首先,数字图像B大小为M×N(M是图像B的行像素数,N是图像B的列像素数),将A的第j行连接到j-1行后面(j=2,3,A,M),形成长度为M×N的序列C。其次,用Logistic混沌映射产生一个长度为的混沌序列{k1,k2,A,kM×N},并构造等差序列D:{1,2,3,A,M×N-1,M×N}。

再次,将所产生的混沌序列{k1,k2,A,kM×N}的M×N个值由小到大排序,形成有序序列{k1′,k2′,A’,kM×N’},确定序列{k1,k2,A,kM×N}中的每个ki在有序序列{k1′,k2′,A’,kM×N’}中的编号,形成置换地址集合{t1,t2,A,tM×N},其中ti为集合{1,2,A,M×N}中的一个;按置换地址集合{t1,t2,A,tM×N}对序列C进行置换,将其第i个像素置换至第ti列,i=1,2,A,M×N,得到C’。将等差序列D做相同置换,得到D’。

最后,B’是一个M×N的矩阵,B’(i ,j)=C’((i-1)×M+j),其中i=1,2,A,M;j=i=1,2,A,N,则B’就是加密后的图像文件。

解密算法与加密算法相似,不同之处在于第3步中,以序列C’代替随机序列{k1,k2,A,kM×N},即可实现图像的解密。

2.用MATLAB的实现基于混沌的图像置乱加密算法

本文借助MATLAB软件平台,使用MATLAB提供的文本编辑器进行编程实现加密功能。根据前面加密的思路,把加密算法的编程分为三个主要模块:首先,构造一个与原图a等高等宽的矩阵b加在图像矩阵a后面形成复合矩阵c:

b=zeros(m1,n1);

ifm1>=n1

ifm1>n1

fore=1:n1

b=(e,e);

end

……

else

fore=1:n1

end

fore=1:(n1-m1)

b((m1+e-1),e)=m1+e-1

end

end

c=zeros(m1*2,n1);

c=zeros(m1*2,1);

c=[b,a];

然后,用Logitic映射产生混沌序列:

……

forn=1:n1+100x(n+1)=q*x(n)*(1-x(n));

endn=101:1:n1+100;

y(n-100)=x(n);

……

最后,采用冒泡法将产生的混沌序列值由小到大进行排序,并利用同样的换序条理依次对复合矩阵的列和行进行打乱排序:

forf=1:n1-1forh=f:n1ify(f)>y(h)k=y(f);

y(f)=y(h);

y(h)=k;

c1=c(:,f);

c(:,f)=c(:,h);

c(:,h)=c1;

end

……

forh=g:m1

if y(f>y

k=y(f)

y(f)=y(h)

y(h)=k;

d1=d(:,f);

d(:,f)=d(:,h);

d(:h)=d;

end

……

解密的程序与加密的相反。

3.基于混沌的图像置乱加密算法效果分析

利用Logistic混沌序列对图像像素点置乱对图像文件加密,其效果要比用Logistic混沌序列直接对图像文件加密好,令x0=0.3001,图2(b)为用Logistic 混沌序列直接对图像文件爱你进行加密的图像,图2(c)为用Logistic混沌序列对图像像素点置乱对图像文件进行加密的图像,图2(d)为其的解密图像文件。

4.设计原理

运用异或运算将数据进行隐藏,连续使用同一数据对图像数据两次异或运算图像的数据不发生改变,利用这一特性对图像信息进行加密保护。用户输入的密码必须在0~1之间任何一个数据进行加密,并且加密的程序与解密的程序输入的密码必须一致才能正确解密。

四.源程序

加密密钥

密码生成算

混沌序号

序列

明文

明文

混沌序号序

密码生成

算法

解密密钥

%该程序针对图像近似系数和高频系数进行加密,以达到加密的效果clear all;

t0 = clock; %测试程序运行时间

im=imread('tank.jpg');

im1=rgb2gray(im); %图像灰度化

im1=medfilt2(im1,[3 3]); %图像平滑处理

figure;

imshow(im1);

title('灰度化处理');

im1=double(im1);

%小波变换,获取图像的低频高频系数

[ca1,ch1,cv1,cd1]=dwt2(im1,'bior3.7');

figure(3);

subplot(231);

imshow(ca1,[]);

title('图像近似');

subplot(232);

imshow(ch1);

title('低频水平分量');

subplot(233);

imshow(cv1);

title('低频垂直分量');

subplot(234);

imshow(cd1),;

title('高频分量');

%%%%%%以下为混沌加密算法%%%%%%

[M,N]=size(ca1);

e=hundungen(M,N,0.1);

tt=0.1;

fca1=mod(tt*ca1+(1-tt)*e,256);

subplot(235);

imshow(fca1,[]);

title('加密');

im2=idwt2(ca1,ch1,cv1,cd1,'bior3.7'); figure(4);

imshow(uint8(im2),[]);

title('灰度图像小波重构');

im3=idwt2(fca1,ch1,cv1,cd1,'bior3.7'); figure(5);

imshow(uint8(im3),[]);

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),[]);

title('解密图像小波重构');

%置乱后图像的均值

figure(7);

subplot(221)

imhist(uint8(im1));

title('初始图像的直方图');

subplot(222)

imhist(uint8(fca1));

title('ca1系数加密之后的直方图');

subplot(223)

imhist(uint8(im3));

title('加密之后的直方图'); subplot(224)

imhist(uint8(im4));

title('解密之后的直方图');

ssy=sum(sum(im3));

%置乱后图像的均值

uy=ssy/(M*N);

vy=sum(sum((im3-uy)^2));

ssx=sum(sum(im1));

%原图像的均值

ux=ssx/(M*N);

vx=sum(sum((im1-ux)^2)); Variancey=vy/uy; %置乱后图像的方差Variancex=vx/ux; %原图像的方差

%置乱度

DDD=Variancey/Variancex;

etime(clock,t0)

五.运行结果及分析总结

1.运行结果:

灰度化处理

图像近似低频水平分量低频垂直分量

高频分量加密

灰度图像小波重构

加密图像小波重构

解密图像小波重构

020004000

初始图像的直方图

100

200

500

1000

ca1系数加密之后的直方图

100

200

02000

400060008000加密之后的直方图

100

200

02000

4000

解密之后的直方图

0100200

2.结果分析:

由程序的运行结果来看,原图被加密后在显示出来,已经无法辨别其内容,实现了图像数据的隐藏,这种混沌序列方法对图像数据的加密是十分有用,实现了信息的保密,在网络传输中能够很好地保护图像数据不被第三方轻易获取其内容,实现数据的隐藏保护。

3.心得体会

通过运用matlab语言进行图像数据的加解密,不仅了解了matlab本身处理信息的优越性也了解了信息安全的必要性,对于信息的保密是十分重要的,尤其是一些安全部门。对于图像信息的加密了解了混沌序列的一些初步知识,对于混沌序列的思想有的一些了解,本程序是通过异或运算的特性对图像信息进行加解密,使图像信息的到保护。

(完整版)基于MATLAB的混沌序列图像加密程序

设计题目:基于MATLAB的混沌序列图像加密程序 一.设计目的 图像信息生动形象,它已成为人类表达信息的重要手段之一,网络上的图像数据很多是要求发送方和接受都要进行加密通信,信息的安全与保密显得尤为重 要,因此我想运用异或运算将数据进行隐藏,连续使用同一数据对图像数据两次异或运算图像的数据不发生改变,利用这一特性对图像信息进行加密保护。 熟练使用matlab运用matlab进行编程,使用matlab语言进行数据的隐藏加密,确保数字图像信息的安全,混沌序列具有容易生成,对初始条件和混沌参数敏感等特点,近年来在图像加密领域得到了广泛的应用。使用必要的算法将信息进行加解密,实现信息的保护。 .设计内容和要求 使用混沌序列图像加密技术对图像进行处理使加密后的图像 使用matlab将图像信息隐藏,实现信息加密。 三.设计思路 1. 基于混沌的图像置乱加密算法 本文提出的基于混沌的图像置乱加密算法示意图如图1所示 加密算法如下:首先,数字图像B大小为MX N( M是图像B的行像素数,N是图像B的列像素数),将A的第j行连接到j-1行后面(j=2,3, A,M,形成长度为MX N的序列C。其次,用Logistic混沌映射产生一个长度为的混沌序列{k1,k2,A,kMX N},并构造等差序列D: {1,2,3, A,MX N-1,MX N}。再次,将所

产生的混沌序列{kl, k2. A, kMX N}的M N个值由小到大排序,形成有序序列{k1', k2'. A' kMX N' },确定序列{k1, k2, A, kMX N}中的每个ki在有序序列{k1', k2', A , kMX N' }中的编号,形成置换地址集合 {t1 , t2 , A, tM X N},其中ti为集合{1 , 2, A, MX N}中的一个;按置换地址集合{t1 , t2 , A, tM X N}对序列C进行置换,将其第i个像素置换至第ti列, i=1 , 2, A, MX N,得到C'。将等差序列D做相同置换,得到D'。 最后,B'是一个MX N 的矩阵,B' (i ,j)=C ' ((i-1) X M+j),其中i=1 , 2, A, M j=i=1 , 2, A, N,则B'就是加密后的图像文件。 解密算法与加密算法相似,不同之处在于第3步中,以序列C'代替随机序列{k1, k2, A, kMX N},即可实现图像的解密。 2. 用MATLAB勺实现基于混沌的图像置乱加密算法 本文借助MATLAB^件平台,使用MATLAB!供的文本编辑器进行编程实现加密功能。根据前面加密的思路,把加密算法的编程分为三个主要模块:首先,构造一个与原图a等高等宽的矩阵b加在图像矩阵a后面形成复合矩阵c: b=zeros(m1, n1); ifm1>=n1 ifm1> n1 fore=1: n1 b=(e,e); end else fore=1: n1 end fore=1:( n1-m1) b((m1+e-1),e)=m1+e-1 end end c=zeros(m1*2, n1); c=zeros(m1*2,1); c=[b,a]; 然后,用Logitic映射产生混沌序列:

混沌时间序列分析

第四章
混沌时间序列分析
一.相空间重建 二.相关维数 三.最优延迟时间 四. Lyapunov特征指数 五.应用举例
一、相空间重建
1

2

Embedding
Φ
A M System with dynamics f has an attractor A ? M
Z ?d
A is transformed into a set Z ? ?d such that the all the important geometric characteristics of A will be preserved. Lets also assume Φ is invertible.
Ruelle(1981),法国科学家
对m维动力系统:
? x1 = f1 ( x1 , x 2 , .... x m ) ? ? x 2 = f 2 ( x1 , x 2 , ... x m ) ? ? ................... ? ? x m = f m ( x1 , x 2 , ... x m )
( x1 , x2 ,.....xm )
是状态空间坐标
x(t ), x(t + τ), x(t + 2τ),......., x [t + (m ? 1)τ]
3

Phase Space Reconstruction
一个单变量时间序列:x0 , x1 , x2 ,...
?τ = 1.?t ? ?n = 3 ( x0 , x1 , x2 ) ( x1 , x2 , x3 ) ( x2 , x3 , x4 ) ............... ( xn ?1 , xn , xn +1 )
4

混沌序列产生及其在图像

混沌序列产生及其在图像、视频加密中 的应用研究 左建政 【摘要】:伴随着科技的不断进步,信息技术已经渗透进人们生活的各个方面,信息安全问题已经引起越来越多的关注,因此如何加强信息的保密性就成为了一个急需解决的难题。混沌信号所固有的非周期, 宽频谱和对初始值非常敏感等突出特征,使得其在信息加密中有着良好的应用前景。而要想提高混沌在信息加密中的保密性以及实用性,需要做的工作主要是以下两个方面:一方面,提高混沌自身的性能;另一方面,提高加密系统的性能。本文以此为背景,分别从上述两方面着手进行研究,取得了一系列新的结果。本文的主要工作和创新体现在以下几个方面: (1)系统地研究了各种混沌序列的产生方式。混沌序列的产生是混沌应用到信息加密的前提也是一项关键技术。从最初的模拟电路到现在数字系统,在不断地进步,当然也会产生一系列新的问题。本文总结以前所做的研究,系统地介绍了各种混沌序列的产生方式,包括模拟电路、FPGA、LabVIEW、DSP等。通 过分析和比较,为以后的继续深入研究发挥重要的参考作用。 (2)设计了一个新的混沌系统。从混沌信息加密工程的观点考虑,构造一个庞大的混沌函数库是必要的。为了设计性能良好的混沌系统,在研究Sprott系统的基础上,构造了一个新的混沌系统。对构造的混沌系统进行了动力学分析,其中包括分岔特性以及Ly apunov指数等特性分析,同时设计了相应的模拟电路,通过电路实验获得了与 仿真相符的混沌吸引子,验证了混沌系统的特性。 (3)设计了一个新的分数阶混沌系统。并且介绍了两种分数阶微积分的分析方法,时域求解法对其进行数值仿真,时频域转换法对其进行电路仿真。数值仿真结果表明系统存在混沌的最低阶数是2.31。设计了该系统的分数阶混沌振荡电路,电路仿真与数值仿真结果相符,证实了该分数阶混沌振荡电路的可行性。分数阶混沌系统更能反映系统呈现的工程物理现象,一个确定的分数阶混沌系统随着其阶数即分数值的不同而呈现不同的状态,因而这种系统具有更大的密钥空间,不容易被复制。 (4)首次利用数字系统产生分数阶混沌序列。对分数阶混沌系统的广泛研究开始于最近十几年,目前的研究大多处于理论阶段。本文通过利用LabVIEW等数字系统,获得了真实的分数阶混沌序列。通过LabVIEW与MATLAB的接口,首先利用MATLAB编程计算混沌状态方程,然后再在LABVIEW平台设计前面板,调节参数,最后通过数据采集卡即可实现分数阶混沌序列输出。数字系统可以做到参数相同,并且精度可控,容易控制。 (5)借助DSP平台,利用分数阶混沌序列,成功实现了图像、视频的实时加密、解密。利用前面得到的分数阶混沌序列作为图像、视频加密的密钥流,对图像、视频中每一帧图像的像素点进行异或加密。分数阶混沌系统密钥空间大,因此安全性高,需要考虑的主要就是实时性的问题,而借助于运算速度非常快的DSP芯片,能很好地满足实时性的要求。这种加密方式突破了传统软件加密时,加密速度慢、容易被破译的缺点,具有广阔的应用前景

基于混沌序列的密钥生成新方法

第36卷第12期2006年12月数学的实践与认识M A TH EM A T I CS I N PRA CT I CE AND TH EO R Y V o l 136 N o 112  D ecem.,2006  基于混沌序列的密钥生成新方法杨文安, 袁德明 (徐州建筑职业技术学院计算机技术工程系,江苏徐州 221008) 摘要: 设计了一种从混沌序列生成密钥的新方法.其基本原理是从混沌序列依次取若干数据构成实值序列,将其按非线性规则映射成二值序列,再用实值序列和任意指定序列分别置乱这个二值序列,被置乱后的二值序列即为所生成密钥.实验表明,在混沌密码体制研究中,这种密钥较一般序列密钥更具有独立性、均匀性和不可预测性. 关键词: 混沌序列;密码体制;密钥 1 引 言 收稿日期:2006209216 基金项目:徐州建筑职业技术学院自然科学基金(JYA 30409) 随着网络技术发展,网络安全问题成为当今社会的焦点.人们也在不断寻求解决网络安全问题的有效方法[1].混沌密码体制[2,3]就是适应网络安全的需要应运而生的. 混沌是确定性系统中具有理论意义上的完全随机运动,而不是通常所用的伪随机[4]运动.混沌系统具有确定性、有界性、初值敏感性、拓朴传递性与混合性、宽带性、快速衰退的自相关性和长期不可预测性[5]等.它所具有的基本特性恰好满足了信息保密通信和密码学的基本要求(即Shannon 提出的密码系统设计的基本原则:扩散原则和混淆原则,以及加 解密过程中的可靠性).在著名的L ogistic 混沌映射的基础上,作者设计了一种新型密码体制.该密码体制利用非线性变换从双混沌序列中产生两个二值序列,并对其进行置乱得到两组密钥,由这两组密钥构成密钥矩阵作用于明 密文信息实现信息的加 解密操作,进而达到信息保密的目的.有关新型密码体制的详细内容将另文介绍,本文重点介绍利用非线性变换从混沌序列中生成一组密钥的方法.利用文中方法生成的密钥较一般序列密钥更具有独立性、均匀性和不可预测性. 2 L og istic 混沌映射 美国普林斯顿大学的生态学家R .M ay 在研究昆虫群体繁殖规律时提出的L ogistic 混沌模型的离散形式为: x i +1=Λx i (1-x i ), 1<Λ<4, 0

混沌映射(序列)matlab算法“小全”:Logistic、Henon、帐篷、kent(含混沌二值图像生成函数)

混沌映射(序列)matlab 算法“小全”:Logistic 、Henon 、帐篷、kent (含 混沌二值图像生成函数) 1.Logistic (罗切斯特)映射 变换核: ) 1(1n n n x ax x ?=+绘图程序: n=64; key=0.512; an=linspace(3.1,3.99,400); hold on;box on;axis([min(an),max(an),-1,2]);N=n^2; xn=zeros(1,N);for a=an; x=key;for k=1:20; x=a*x*(1-x);%产生公式end; for k=1:N; x=a*x*(1-x);xn(k)=x; b(k,1)=x;%一维矩阵记录迭代结果end; plot(a*ones(1,N),xn,'k.','markersize',1);end; %figure;%imhist(b) 实用混沌加密函数: function ichao_ans=ichaos_logistic(varargin)%logistic 序列生成算法%函数名: %logistic 混沌序列生成函数%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。%(n ),n 为矩阵阶数,key=0.600。 %()或(n ,key ,...),n=64,key=0.600。switch nargin; case 1; n=varargin{1};key=0.600;case 2; n=varargin{1}; key=varargin{2};otherwise key=0.600;n=64;end N=n^2; xn=zeros(1,N);a=4; x=key;for k=1:20; x=a*x*(1-x);%产生公式end; for k=1:N; x=a*x*(1-x); xn(k)=x;%一维矩阵记录迭代结果end;c=reshape(xn,n,n);%一维矩阵转换二维矩阵d=zeros(n,n); %二维混沌矩阵调制for a1=1:n; for a2=1:n; if c(a1,a2)>=0.5;d(a1,a2)=1;else d(a1,a2)=0;end;end;end; %figure;title('logistic 映射');%imshow(d);ichao_ans=d;

混沌时间序列分析

第四章 混沌时间序列分析
一.相空间重建 二.相关维数 三.最优延迟时间 四. Lyapunov特征指数 五.应用举例
一、相空间重建
1

2

Embedding
Φ
A
Z
M
?d
System with dynamics f has an attractor A ? M
A is transformed into a set Z ? ?d such that the all the important geometric characteristics of A will be preserved.
Lets also assume Φ is invertible.
Ruelle(1981),法国科学家
对m维动力系统:
JG
? ?
JxJ1G
=
f1 ( x1 , x 2 ,....x m )
? ?
x
2
=
f 2 ( x1 , x 2 ,...x m )
? ? ?
.J. x
J.G.
m
.
.. =
.
.
. f
..
m
.. (
... x1
. ,
. x
2
, ...x m
)
(x1, x2 ,.....xm ) 是状态空间坐标
x(t), x(t + τ), x(t + 2τ),......., x[t + (m ?1)τ]
3

相关文档
相关文档 最新文档