- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验项目与实验报告( 1 )
学科:信息与网络安全 学号:20134088141 姓名:羊波 时间:11月3 日
实验项目: 混沌密码与数字图像加密应用、信息隐藏 实验目的:利用Matlab软件基于Logistic映射的加密算法对图像进行加密和解密,以及利用DEV C++软件、Excel表格绘制图像基于Logistic映射的算法产生的混沌现象。理解Logistic加密算法,掌握加密过程。
一、实验步骤:
1. 完成实验教程1-3
2. 登录网络平台修改作业发布密码,上传实验报告一
3. 注册百度知道号,并加入知行网络团队。
一、实验原理
1.混沌的定义
混沌(Chaos)是非线性确定性系统中具有的内在随机现象,具有运动轨迹的不可预测性、对系统初值和控制参数的敏感性以及运动轨迹的遍历特性等。
第一种定义是基于混沌的“蝴蝶效应”,即倘若一个非线性系统的行为对初始条件的微小变化具有高度敏感的依赖性,则称混沌运动。这就是说,一个系统的混沌行为对初始条件的变化具有高度敏感性,表现出极端的不稳定性。这种高度不稳定性,是指在相空间内初始极其邻近的两条轨道,随着时间的推进,两条轨道的距离彼此以指数形式迅速分离而永不相遇,它们的行为具有局部不稳定性。
第二种混沌定义是基于Li-Yorke定理,从数学上严格定义。Li-Yorke定理为:设f(x)是[a,b]上的连续自映射,若f(x)有3个周期点,则对任何正整数n,f(x)有n周期点。混沌定义如下:闭区间I上的连续自映射f(x),倘若满足条件,则一定出现混沌现象:
(1)f周期点的周期无上界;
(2)闭区间I上存在不可数子集S。
2. Logisitc 混沌模型
由于混沌系统具有伪随机性、不确定性和对初始条件与系统参数的极为敏感性,其自身的动力学特性使混沌现象天生具备了应用于保密安全的条件,在图像加密领域表现出良好的应用前景。Logistic混沌系统有一个自变量,是一维混沌系统。含有两个自变量的混沌系统是二维的,含有三维系统及多于三维的混沌系统是高位混沌系统。Logistic混沌系统由下式给出:
,n=1,2,…… (1)
研究表明,式(1)这个看似极为简单的方程当参数λ变化时有极复杂的动态行为。当0λ≤3时,该模型性态简单;当3λ≤3.75时,系统处于倍周期状态;当λ3.57时,系统处于混沌状态。
二、实验步骤
下面以一副256×256的图像test.gif 为例,利用MATLAB软件进行图像加密,加密程序如下:
%混沌加密Logisitc加密算法,图片像素为256*256,可直接放在work子文件夹中
clc;
clear all;
global M;
global N;
global Ximage;
global Yimage;
global sy;
Ximage=double(imread(test.gif));
key1=0.1;
key=4;
[M,N]=size(Ximage);
figure(1)
imshow(Ximage,[]);
Ximage=double(Ximage);
for(i=1:M)
for(j=1:N)
key1=key*key1*(1-key1);
a(i,j)=key1;
end
end
key2=0.2;
for(i=1:M)
for(j=1:N)
key2=key*key2*(1-key2);
b(i,j)=key2;
end
end
x=0.4*a+0.6*b;
e=round(x*256);
tt=0.01;
Yimage=tt*Ximage+(1-tt)*e;
figure(2)
imshow(Yimage,[]);
figure(3)
imhist(uint8(Ximage));
title(原图像的直方图);
figure(4)
imhist(uint8(Yimage));
title(加密之后的直方图);
%%置乱度分析
Yimage=double(Yimage);
sx=sum(sum((Ximage-256*rand(M,N)).^2));
DD=sy/sx %置乱度
global M;
global N;
global Ximage;
global Yimage;
key1=input(请输入密钥key1:);
key=4;
for(i=1:M)
for(j=1:N)
key1=key*key1*(1-key1);
a(i,j)=key1;
end
end
key2=input(请输入密钥key2:);
for(i=1:M)
for(j=1:N)
文档评论(0)