资源简介

分别利用一维logistic、三维lorenz混沌映射实现任意尺寸彩色图像加密与解密(像素值及其位置都发生了改变)。密钥为混沌序列初始值。(内有详细说明)

资源截图

代码片段和文件信息

clear;close;
disp(‘请输入密钥(0~1任意数)‘);
x(1)=input(‘请输入第一个密钥:   ‘);
y(1)=input(‘请输入第二个密钥:   ‘);
z(1)=input(‘请输入第三个密钥:   ‘);
disp(‘加密中...‘);
f=imread(‘test2.bmp‘); %读取图像
[MN]=size(f);  %图像矩阵的行数与列数
N=N/3;
for i=1:M*N-1    %一维的logistic混沌映射生成混沌序列
    x(i+1)=4*x(i)*(1-x(i));
    y(i+1)=4*y(i)*(1-y(i));
    z(i+1)=4*z(i)*(1-z(i));
end

[m1num1]=sort(x);  %混沌序列升序排列以及生成位置矩阵
[m2num2]=sort(y);
[m3num3]=sort(z);
fr=f(::1);         %图像的R分量矩阵
fg=f(::2);         %图像的G分量矩阵
fb=f(::3);         %图像的B分量矩阵
ff1r=uint8(zeros(MN));
ff1g=uint8(zeros(MN));
ff1b=uint8(zeros(MN));
ff2r=uint8(zeros(MN));
ff2g=uint8(zeros(MN));
ff2b=uint8(zeros(MN));
ffr=uint8(zeros(MN));
ffg=uint8(zeros(MN));
ffb=uint8(zeros(MN));
m1=mod(1000*m1256);  %混沌序列转为二进制
m1=uint8(m1); 
m2=mod(1000*m2256);
m2=uint8(m2);
m3=mod(1000*m3256);
m3=uint8(m3);

for i=1:M*N            %加密
    ff1r(i)=fr(num1(i));    %位置置乱
    ff1g(i)=fg(num2(i));
    ff1b(i)=fb(num3(i));
    ffr(i)=bitxor(ff1r(i)m1(i));   %改变像素值
    ffg(i)=bitxor(ff1g(i)m2(i));
    ffb(i)=bitxor(ff1b(i)m3(i));
end
ff(::1)=ffr;ff(::2)=ffg;ff(::3)=ffb;  %生成加密图像
imshow(ff);title(‘加密图像‘);

fffr=uint8(zeros(MN));
fffg=uint8(zeros(MN));
fffb=uint8(zeros(MN));
for i=1:M*N            %解密
    ff2r(i)=bitxor(ffr(i)m1(i));   %生成原图像像素值
    ff2g(i)=bitxor(ffg(i)m2(i));
    ff2b(i)=bitxor(ffb(i)m3(i));
    fffr(num1(i))=ff2r(i);          %改变位置到原来的位置
    fffg(num2(i))=ff2g(i);
    fffb(num3(i))=ff2b(i);
end
fff(::1)=fffr;fff(::2)=fffg;fff(::3)=fffb;  %生成解密图像
figure
imshow(fff);title(‘解密图像‘);
 %生成分析图
figure;subplot(211);imhist(fr);title(‘加密前R分量直方图‘);subplot(212);imhist(ffr);title(‘加密后R分量直方图‘);
figure;subplot(211);imhist(fg);title(‘加密前G分量直方图‘);subplot(212);imhist(ffg);title(‘加密后G分量直方图‘);
figure;subplot(211);imhist(fb);title(‘加密前B分量直方图‘);subplot(212);imhist(ffb);title(‘加密后B分量直方图‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2129  2013-12-30 19:27  图像加密程序_边\logisticpicture.m
     文件        2687  2013-12-27 22:20  图像加密程序_边\lorentz.m
     文件        2051  2013-12-30 19:36  图像加密程序_边\lorenzpicture.m
     文件      373302  2013-12-27 20:59  图像加密程序_边\test1.bmp
     文件      230454  2013-12-27 21:17  图像加密程序_边\test2.bmp
     文件         203  2013-12-30 19:43  图像加密程序_边\功能.txt

评论

共有 条评论