Henon混沌图像加密研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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('解密图像');

相关文档
最新文档