1.Logistic(罗切斯特)映射
变换核:
xn+1=axn(1−xn)
绘图程序:
n=;
key=0.512;
an=linspace(3.1,3.99,400);
holdon;boxon;axis([min(an),max(an),-1,2]);
N=n^2;
xn=zeros(1,N);
for a=an;
x=key;
for k=1:20;
x=a*x*(1-x);%产生公式
end;
for k=1:N;
x=a*x*(1-x);
xn(k)=x;
b(k,1)=x;%一维矩阵记录迭代结果
end;
plot(a*ones(1,N),xn,'k.','markersize',1);
end;
%figure;
%imhist(b)
实用混沌加密函数:
functionichao_ans=ichaos_logistic(varargin)
%logistic序列生成算法
%函数名:
%logistic混沌序列生成函数
%参数:
%(n,key),n为矩阵阶数,key为迭代初始值。
%(n),n为矩阵阶数,key=0.600。
%()或(n,key,...),n=,key=0.600。
Switch nargin;
case1;
n=varargin{1};
key=0.600;
case2;
n=varargin{1};
key=varargin{2};
otherwise
key=0.600;
n=;
end
N=n^2;
xn=zeros(1,N);
a=4;
x=key;
for k=1:20;
x=a*x*(1-x);%产生公式
end;
for k=1:N;
x=a*x*(1-x);
xn(k)=x;%一维矩阵记录迭代结果
end;
c=reshape(xn,n,n);%一维矩阵转换二维矩阵
d=zeros(n,n);
%二维混沌矩阵调制
For a1=1:n;
For a2=1:n;
ifc(a1,a2)>=0.5;
d(a1,a2)=1;
else d(a1,a2)=0;
end;
end;
end;
%figure;title('logistic映射');
%imshow(d);
ichao_ans=d;
2.Henon(埃农)映射
+1=yn+1−ax变换核:
{
xynn2
n+1=bxn
绘图程序:
a∈(0,1.4)
0.2b=0.3;
N=400;
an=ones(1,N);
xn=zeros(1,N);
hold on;boxon;
x=0;
y=0;
for a=0:0.001:1.4
for k=1:N;
xm=x;
ym=y;
x=ym+1-a*xm.*xm;
y=b*xm;
end
xn(1)=x;
for n=2:N;
xm=x;
ym=y;
x=ym+1-a*xm.*xm;
y=b*xm;
xn(n)=x;
end
plot(an*a,xn,'k.','markersize',1);
end
xlim([0,a]);
实用混沌加密函数:
functionichao_ans=ichaos_henon(varargin)
%埃农(Henon)映射
%0.2 %(n,key),n为矩阵阶数,key为迭代初始值。 %(n),n为矩阵阶数,key=0.314。 %()或(n,key,...),n=,key=0.314。 switchnargin; case1; n=varargin{1}; key=0.314; case2; n=varargin{1}; key=varargin{2}; otherwise key=0.314; n=; end n=; N=n^2; an=ones(1,N); xn=zeros(1,N); x=0; y=0; a=1.4; forcir1=1:N; xm=x; ym=y; x=ym+1-a*xm.*xm; y=key*xm; end xn(1)=x; for cir2=2:N; xm=x; ym=y; x=ym+1-a*xm.*xm; y=key*xm; xn(cir2)=x; end c=reshape(xn,n,n);%一维矩阵转换二维矩阵 d=zeros(n,n); %二维混沌矩阵调制 For a1=1:n; For a2=1:n; ifc(a1,a2)>=0; d(a1,a2)=1; else d(a1,a2)=0; end; end; end; ichao_ans=d; 第2 / 4页 3.帐篷映射 变换核: xn+1=a−(1+a)|xn| a∈(0,1) 绘图程序: %帐篷映射 %0%a理想值0.99—1 %0 N=n^2; xp=zeros(1,N); Aa=ones(1,N); Hold on;box on; x=0.01;%初值 for a=0:0.001:1; forn=1:N; x=a-(1+a)*abs(x); end for k=1:N; x=a-(1+a)*abs(x); xp(k)=x; end plot(Aa*a,xp,'k.','markersize',1); end xlim([0,a]); 实用混沌加密函数: functionichao_ans=ichaos_tent(varargin) %帐篷映射 %0%a理想值0.99—1 %x初值作为密钥 %0 %(n),n为矩阵阶数,key=0.99。 %()或(n,key,...),n=,key=0.99。 switchnargin; case1; n=varargin{1}; key=0.99; case2; n=varargin{1}; key=varargin{2}; otherwise key=0.99; n=; end N=n^2; xp=zeros(1,N); x=key; a=0.998; for cir1=1:N; x=a-(1+a)*abs(x); end for cir2=1:N; x=a-(1+a)*abs(x); xp(cir2)=x; end c=reshape(xp,n,n);%一维矩阵转换二维矩阵 d=zeros(n,n);%二维混沌矩阵调制 for a1=1:n; fora2=1:n; if c(a1,a2)>=0; d(a1,a2)=1; else d(a1,a2)=0; end; end; end; %sum(sum(d))ichao_ans=d; %imshow(ichao_ans); 第3 / 4页 4.kent(肯特)映射 xx,0 1−a ,a %肯特映射 n=20; N=n^2; xp=zeros(1,N); Aa=ones(1,N); x=0.36; hold on;box on; fora=0.01:0.001:0.5; for cir1=1:N; ifx<=a; x=x/a; else x=(1-x)/(1-a); end end forcir3=1:N; ifx<=a; x=x/a; else x=(1-x)/(1-a); end xp(cir3)=x; end plot(Aa*a,xp,'k.','markersize',1); end xlim([0,a]); 实用混沌加密函数: functionichao_ans=ichaos_kent(varargin) %0.1 %参数: %(n,key),n为矩阵阶数,key为迭代初始值。 %(n),n为矩阵阶数,key=0.8。 %()或(n,key,...),n=,key=0.8。 switchnargin; case1; n=varargin{1}; key=0.8; case2; n=varargin{1}; key=varargin{2}; otherwise key=0.8; n=; end N=n^2; xp=zeros(1,N); x=key; a=0.4; for cir1=1:N; if x<=a; x=x/a; else x=(1-x)/(1-a); end end for cir3=1:N; if x<=a; x=x/a; else x=(1-x)/(1-a); end xp(cir3)=x; end c=reshape(xp,n,n);%一维矩阵转换二维矩阵 %figure; %imhist(c); d=zeros(n,n); %二维混沌矩阵调制 For a1=1:n; For a2=1:n; If c(a1,a2)>=0.5; d(a1,a2)=1; else d(a1,a2)=0; end; end; end; %sum(sum(d)) ichao_ans=d; figure; imshow(ichao_ans);下载本文