- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Henon混沌映射的图像加密实验
基于Henon混沌映射的图像加密实验
一、实验目的
熟悉具有分组密码结构特性的混沌映射;
掌握利用二维Henon混沌映射实现图像像素扩散加密的原理;
培养学生从事高维信号安全保护的动手编程能力。
二、实验原理
通过读操作获取图像像素值,然后利用Henon混沌映射实现像素值扩散操作,其结果通过写操作写入加密后文件。
1、对于长宽相等(M=N)的图像加密解密原理如下:
(1)加密过程
加密函数为:
(2-1)
其中,a=5; b=1;c=1;d=3;为原图像像素值的位置,为改变后的位置。modM为对M取余数。同理modN也是。
改变像素值并赋给新的位置,公式如下:
(2-2)
(2)解密过程为:
有(2-1)得, (2-3)
(2-4)
由(2-3)得,等式两边同时对M取余数,得
(2-5)
然后把代入(2-3),整理得,最后把等式两边同时对N取余数得:
(2-5)
由式(2-2)可得像素值的恢复:
(2-6)
2、对于长宽不相等(M≠N)的图像加密加密解密原理如下:
(1)加密过程
加密函数为:
(2-7)
其中,c=N/gcd(M,N);
改变像素值并赋给新的位置,公式如下:
(2-8)
(2)解密过程为:
由加密函数得: (2-9)
(2-10)
对(2-9)两边同时乘以c,然后(2-10)减去(2-9)整理可得:
(2-11)
(2-11)两边对N取余整理可得:
(2-12)
把yn代入(2-9),然后两边对M取余整理可得:
(2-13)
由(2-8)可恢复像素值的大小:
(2-14)
三、实验步骤
熟悉图像加密解密原理;
熟悉Henon混沌系统;
采用Matlab编写图像加解密程序并仿真测试;
四、程序代码1、(M=N)
clc;
clear;
I=imread(C:\Users\Lilong\Desktop\matlab\dianzishiyan\lena.bmp);
figure(1)
subplot(2,2,1);
imshow(I);
title(原始图像);
A=double(rgb2gray(I)); %转换成灰度图像
subplot(2,2,2);
imshow(uint8(A));%显示灰度图像
title(灰度图像);
[M,N]=size(A);%获取图像的大小
data=zeros(M,N);
a=5; b=1; c=1; d=3;A1=zeros(M,N);
for loop=1:2
for x=1:M
for y=1:N
x1=mod((1-a*x^2+b*y),M);%改变行值
if x1==0
x1=M;
end
y1=mod((c*x+d*x1^2),N);%改变列值
if y1==0
y1=N;
end
data(x1,y1)=mod(A(x,y)+x^2+y^2,256);%改变像素数值并赋值给新的位置
end
end
A1=data;
end
subplot(2,2,3);
imshow(uint8(A1));%显示解密后的图像
title(加密后图像);
A2=zeros(M,N);
A3=zeros(M,N);
for loop=1:2
for x1=1:M
for y1=1:N
x2=mod(y1-d*x1^2,M);%解密原来的行值
if x2==0
x2=M;
end
y2=mod(x1+a*x2^2-1,N);%解密原来的列值
if y2==0
y2=N;
end
A2(x2,y2)=mod(A1(x1,y1)-x2^2-y2^2,256);%恢复像素值
end
原创力文档


文档评论(0)