基于Henon混沌映射的图像加密DSP系统实现
一 实验目的
1. 熟悉具有分组密码结构特性的混沌映射;
2. 熟悉DSP实验箱进行图像加密研究;
3. 掌握利用二维Henon混沌映射实现图像像素扩散加密的原理;
4. 培养学生从事高维信号安全保护的动手编程能力。
二 实验内容
1.实验原理
用Henon映射产生的序列对图像进行异或运算,实现图像的加解密。
Henon混沌映射是典型的二维离散混沌映射,其方程:
121nnnypxx
nnqxy1
2
.实验步骤
图像加密算法步骤:
设 nmyxI,为初始图像,其中yx, 代表像素的位置信息,nm表示
图像的大小,其中加密过程可描述如下:
(1) 生成混沌序列,设定初始值 x(1)与 y(1),Henon 混沌系统的控制
参数 p 与 q,利用 Henon 映射生成两个长度为2nm 的混沌序列
x(i)、y(j),其中 p =1.4,q =0.3,0≤x(1)≤1,0≤y(1)≤1,i = j = 0,1,…,
2
nm
,
将x(i)与 y(j)按顺序保存在nm数组中,进而将其转换成nm矩阵,表示
为I1。
(2) 异或运算:将初始图像表示为 I,做异或运算 I2= II2,从而实现
对初始图像的置乱加密,得到最终的加密图像 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('解密图像');