混沌异或加密演示

function el2
%应用混沌序列与原始图像的异或对原始图像进行加密
%让图像在不同的窗口显示

%直接使用imwrite保存图像,如果利用生成的图像另存为,无论是fig格式,eps格式
% 或是bmp格式,均存在很大的白边,在word内处理较麻烦。
%修改:20130507
%lilizong@gmail.com
clear;
clc;
%需要注意本程序实现对二进制文件的加密,对于非二进制文件不能采用此程序进行加密!!!!
[filename pathname]=uigetfile('*.bmp;*.tiff;*.tif', '读入图像'); 
os=[pathname filename]; 
%os原始图像的路径
o=imread(os);
% figure,imshow(o);

%计算原始图像的大小
[m n]=size(o);
l=zeros(m,n);
l(1)=0.1;
for i=2:m*n
l(i)=1-2*l(i-1)*l(i-1);
end
% %对生成的混沌序列进行排序
% [lsort lindex]=sort(l);
% t=linspace(0,0,m*n);
% t(1)=0.98;
% for i=1:m*n
% t(i+1)=1-2*t(i)*t(i);
% end
for i=1:m*n
if (l(i)>=0)
l(i)=1;
else
l(i)=0;
end
end
% l=~l;

ei=xor(o,l);
di=xor(ei,l);

%%%%%%%%%%%%%%%%%%错误密钥
l2=zeros(m,n);
l2(1)=0.09999999;
for i=2:m*n
l2(i)=1-2*l2(i-1)*l2(i-1);
end
% %对生成的混沌序列进行排序
% [lsort lindex]=sort(l);
% t=linspace(0,0,m*n);
% t(1)=0.98;
% for i=1:m*n
% t(i+1)=1-2*t(i)*t(i);
% end
for i=1:m*n
if (l2(i)>=0)
l2(i)=1;
else
l2(i)=0;
end
end
di2=xor(ei,l2);
%%%%%错误密钥2
l3=zeros(m,n);
l3(1)=0.10000001;
for i=2:m*n
l3(i)=1-2*l3(i-1)*l3(i-1);
end
for i=1:m*n
if (l3(i)>=0)
l3(i)=1;
else
l3(i)=0;
end
end
di3=xor(ei,l3);


% h= waitbar(0,'程序处理中,请耐心等待。。。');
% for i=1:100, % computation here %
% waitbar(i/100)
% end
% close(h) 
figure,imshow(o); %原始图像
figure,imshow(l);% 混沌图像
figure,imshow(ei);%加密图像
figure,imshow(di,[]);%解密图像
figure,imshow(di2,[]);%错误解密1
figure,imshow(di3,[]);%错误解密1
%%%取消matlab导出图像的自带白边,此处采用imwrite保存的方式
imwrite(l,'E:\paper\2012\投稿2\simulator\resultImage\混沌图像imwrite.bmp');
imwrite(ei,'E:\paper\2012\投稿2\simulator\resultImage\加密图像imwrite.bmp');
imwrite(di,'E:\paper\2012\投稿2\simulator\resultImage\解密图像imwrite.bmp');
imwrite(di2,'E:\paper\2012\投稿2\simulator\resultImage\错误解密图像imwrite.bmp');
imwrite(di3,'E:\paper\2012\投稿2\simulator\resultImage\错误解密图像2imwrite.bmp');
% imwrite(ei,'E:\paper\2012\投稿2\simulator\resultImage\加密图像imwrite.bmp');
% subplot(2,2,1),imshow(o),title('原始图像');
% subplot(2,2,2),imshow(l),title('混沌图像');
% % figure,imshow(l);
% %ei表示加密图像encryption image
% subplot(2,2,3),imshow(ei),title('加密图像');
% %di表示解密图像dencryption image
% subplot(2,2,4),imshow(di,[]),title('解密图像');
% figure,imshow(di);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superdont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值