基于Henon混沌映射的图像加密实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

xjj2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档