首页 > 行业资讯 > 【图像加密】基于DNA混沌系统图像加密含Matlab源码

【图像加密】基于DNA混沌系统图像加密含Matlab源码

时间:2022-04-29 来源: 浏览:

【图像加密】基于DNA混沌系统图像加密含Matlab源码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #图像处理matlab源码 554个

1 简介

混沌系统有着复杂的动力学行为,采用DNA混沌系统以实现对数字图像的加密与解密.最后通过采用Matlab仿真软件,编写相应的加解密程序,给出了仿真的效果图.

2 部分代码

clear;clc; I=imread(’加密后的lena.bmp’,’bmp’); %读取图像信息 [M,N]=size(I); %将图像的行列赋值给M,N t=4; %分块大小 SUM=M*N; %% 2.产生Logistic混沌序列 u=3.99; %Logistic参数μ x0=0.3711; %Logistic初值x0 p=zeros(1,SUM+1000); p(1)=x0; for i=1:SUM+999 %进行N-1次循环 p(i+1)=u*p(i)*(1-p(i)); %循环产生密码 end p=p(1001:length(p)); %% 3.将p序列变换到0~255范围内整数,转换成M*N的二维矩阵R p=mod(ceil(p*10^3),256); R=reshape(p,N,M)’; %转成M行N列 %% 4.四阶龙格库塔法 %求四个初值X0,Y0,Z0,H0 r=(M/t)*(N/t); X0=0.5001; Y0=0.5130; Z0=0.5170; H0=0.3237; A=chen_output(X0,Y0,Z0,H0,r); X=A(:,1); X=X(1502:length(X)); Y=A(:,2); Y=Y(1502:length(Y)); Z=A(:,3); Z=Z(1502:length(Z)); H=A(:,4); H=H(1502:length(H)); %% 5.DNA编码 %X,Y分别决定I和R的DNA编码方式,有8种,1~8 X=mod(floor(X*10^4),8)+1; Y=mod(floor(Y*10^4),8)+1; Z=mod(floor(Z*10^4),3); Z(Z==0)=3; Z(Z==1)=0; Z(Z==3)=1; H=mod(floor(H*10^4),8)+1; e=N/t; for i=r:-1:2 Q1=DNA_bian(fenkuai(t,I,i),H(i)); Q1_last=DNA_bian(fenkuai(t,I,i-1),H(i-1)); Q2=DNA_yunsuan(Q1,Q1_last,Z(i)); %扩散前 Q3=DNA_bian(fenkuai(t,R,i),Y(i)); Q4=DNA_yunsuan(Q2,Q3,Z(i)); xx=floor(i/e)+1; yy=mod(i,e); if yy==0 xx=xx-1; yy=e; end Q((xx-1)*t+1:xx*t,(yy-1)*t+1:yy*t)=DNA_jie(Q4,X(i)); end Q5=DNA_bian(fenkuai(t,I,1),H(1)); Q6=DNA_bian(fenkuai(t,R,1),Y(1)); Q7=DNA_yunsuan(Q5,Q6,Z(1)); Q(1:t,1:t)=DNA_jie(Q7,X(1)); Q=uint8(Q); imwrite(Q,’解密后的lena.bmp’,’bmp’); disp(’解密成功’); imshow(Q);

3 仿真结果

4 参考文献

[1]谷胜献. 基于混沌和DNA编码的图像加密算法设计[D]. 大连理工大学, 2015.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐