Henon混沌图像加密研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Henon 混沌映射的图像加密DSP 系统实现
一 实验目的
1. 熟悉具有分组密码结构特性的混沌映射;
2. 熟悉DSP 实验箱进行图像加密研究;
3. 掌握利用二维Henon 混沌映射实现图像像素扩散加密的原理;
4. 培养学生从事高维信号安全保护的动手编程能力。
二 实验内容
1.实验原理
用Henon 映射产生的序列对图像进行异或运算,实现图像的加解密。 Henon 混沌映射是典型的二维离散混沌映射,其方程:
12
1++-=+n n n y px x n n qx y =+1
2.实验步骤
图像加密算法步骤:
设 ()n m y x I ⨯,为初始图像,其中y x , 代表像素的位置信息,n m ⨯表示图像的大小,其中加密过程可描述如下:
(1) 生成混沌序列,设定初始值 x(1)与 y(1),Henon 混沌系统的控制
参数 p 与 q ,利用 Henon 映射生成两个长度为()
2n m ⨯ 的混沌序列 x(i)、y(j),其中 p =1.4,q =0.3,0≤x(1)≤1,0≤y(1)≤1,i = j = 0,1,…,()2n m ⨯,
将x(i)与 y(j)按顺序保存在n m ⨯数组中,进而将其转换成n m ⨯矩阵,表示为I1。
(2) 异或运算:将初始图像表示为 I ,做异或运算 I2= I ⊕I2,从而实现对初始图像的置乱加密,得到最终的加密图像 I2。该算法流程图如下所示:
加密算法流程图
3.实验源代码(见附录)
三实验内容及步骤
1.采用Matlab编写图像加解密程序并仿真测试(详细代码见附录1);
2.采用在DSP环境下实时运行的图像加解密实际程序;
3. 对加密图像1维直方图计算出灰度概率方差。
四实验结果及分析
实验结果如下图所示
原始图
像加密图
像
解密图像
五实验总结与心得
通过运用matlab语言进行图像数据的加解密,不仅了解了matlab本身处理信息的优越性也了解了信息安全的必要性,对于信息的保密是十分重要的,尤其是一些安全部门。对于图像信息的加密了解了混沌序列的一些初步知识,对于混沌序列的思想有的一些了解,本程序是通过异或运算的特性对图像信息进行加解密,使图像信息的到保护。
附录代码
clear all;
I=imread('cameraman.tif');
subplot(221);imshow(I);xlabel('原始图像');
I=double(I);
[m,n]=size(I);
a=1.4;
b=0.3;
x=0.5;
y=0.5;
p=(m*n)/2;
xn=zeros(1,m*n);
data=zeros(m,n);
for i=1:p
xm=x;
ym=y;
x=ym+1-a*xm*xm;
y=b*xm;
xn(i)=x;
xn(i+p)=y;
end
yn=reshape(xn,m,n);
yn=mod(1000*yn,256);
yn=uint8(yn);
%加密
for i=1:m
for j=1:n
data(i,j)=bitxor(I(i,j),yn(i,j));
end
end
subplot(222);imshow(uint8(data));xlabel('加密图像'); %解密
for i=1:m
for j=1:n
I(i,j)=bitxor(data(i,j),yn(i,j));
end
end
subplot(223);imshow(uint8(I));xlabel('解密图像');