资源简介
分别利用一维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
相关资源
- matlab基于混沌映射对图像加密和解密
- 混沌tent映射tent分叉程序
- AES加密算法的matlab
- 几种混沌吸引子Matlab绘图
- matlab图像加密npcr值计算
- 混沌BBO算法求解电力调度问题
- 混沌算法(Chaos Algorithm)入门和代码
- 混沌理论多尺度熵matlab实现函数
- dcsk差分混沌相移键控
- 一个二维logistics函数实现的图像加密
- MATLAB实现的AES加密和解密算法
- matlab分数阶混沌程序
- matlab混沌粒子群优化算法
- 高鲁棒性的自适应图像加密算法
- matlab生成logisitc,tent,切比雪夫,改
- CLSPSO 混沌粒子群算法
- chaos_communication1 在两个混沌系统实现
- RBF-shenjingwangluohundunyuce RBF神经网络混
- arnold-logistic
- MATLAB-PROGRAM-FOR-ECC
- watermark 基于DCT域音频水印完整源代码
- OpenCode_luzhenbo [原创]混沌分析
- Chaos-Particle-Swarm-Optimization 该程序是混
- image-hiding- 我本科毕业设计论文《基于
- ABC(fengqun) 自己写的人工蜂群算法
- CPSO 混沌粒子群优化算法-CPSO与基本粒
- RSA 加密算法 matlab
- 混沌COA优化算法解决TSP问题,附混沌
- MATLAB 实现Playfair 算法加密与解密
- Matlab改进的混沌蚂蚁群算法-改进的混
评论
共有 条评论