基于混沌和位运算的图像加密算法的改进算法和性能分析.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:5 大小:34KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于混沌和位运算的图像加密算法的改进算法和性能分析.doc

基于混沌和位运算的图像加密算法的改进算法和性能分析.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

%改进算法,及性能分析clearclca=imread('rice.png');a=double(a);[m1,n1]=size(a);b=zeros(m1,n1*8);fori=1:1:m1forj=1:1:n1fort=0:1:7ifmod(floor(a(i,j)/2^t),2)==1b(i,j*8-t)=1;elseb(i,j*8-t)=0;endendendendq=4;b1=b;x1(1)=0.3333;forn=1:n1*8+100x1(n+1)=q*x1(n)*(1-x1(n));endn=101:1:n1*8+100;y1(n-100)=x1(n);[z1,l1]=sort(y1,2);fori=1:1:n1*8b1(:,i)=b(:,l1(i));endx2(1)=0.4444;form=1:m1+100x2(m+1)=q*x2(m)*(1-x2(m));endm=101:1:m1+100;y2(m-100)=x2(m);[z2,l2]=sort(y2,2);fori=1:1:m1b(i,:)=b1(l2(i),:);endfori=1:1:m1forj=1:1:n1a(i,j)=b(i,j*8);fort=1:1:7a(i,j)=a(i,j)+2^t*b(i,j*8-t);endendenda=uint8(a);figure,imshow(a);figure,imhist(a);a=double(a);g(1)=0.5555;%混沌序列的初始值fori=1:1:256*256%改进算法t(i)=mod(floor(g(i)*10^3),256);%ifg(i)<0.5g(i+1)=4*q*g(i)*(0.5-g(i));elseg(i+1)=1-4*q*(g(i)-0.5)*(1-g(i));endendt=reshape(t,256,256);t=t';fori=1:1:256forj=1:1:256s1(i,j)=mod((a(i,j)+t(i,j)*abs(i-j)),256);endends1=uint8(s1);figure,imshow(s1);%显示加密图像figure,imhist(s1);%加密图像灰度值s1=double(s1);%解密是加密的反fori=1:1:256forj=1:1:256a(i,j)=mod((s1(i,j)-t(i,j)*abs(i-j)),256);endendfori=1:1:m1forj=1:1:n1fort=0:1:7ifmod(floor(a(i,j)/2^t),2)==1b(i,j*8-t)=1;elseb(i,j*8-t)=0;endendendendfori=1:1:m1b1(l2(i),:)=b(i,:);endfori=1:1:n1*8b(:,l1(i))=b1(:,i);endfori=1:1:m1forj=1:1:n1a(i,j)=b(i,j*8);fort=1:1:7a(i,j)=a(i,j)+2^t*b(i,j*8-t);endendenda=uint8(a);figure,imshow(a);%求灰度值差异clearclca=imread('rice.png');[m1,n1]=size(a);a=double(a);gn=zeros(m1-2,n1-2);%定义(m1-2)*(n1-2)的矩阵fori=2:1:255%计算每个与其他四个相邻像素灰度值的差异forj=2:1:255am=(a(i,j)-a(i-1,j))^2;am=am+(a(i,j)-a(i+1,j))^2;am=am+(a(i,j)-a(i,j-1))^2;am=am+(a(i,j)-a(i,j+1))^2;gn(i-1,j-1)=am/4;endendam=0;fori=1:1:254forj=1:1:254am=gn(i,j)+am;endendan=am/((m1-2)*(n1-2));%求各图像的相关性k1=unidrnd(255,1,20);%生成1*20的矩阵,由[1,255]之间的数组成k2=randint(1,50,[1,255]);%生成1*50的矩阵,由[1,255]之间的数组成fori=1:50forj=1:20x(i,j)=s1(k2(i),k1(j));y(i,j)=s1(k2(i),k1(j)+1);%%水平相关性%y(i,j)=s1(k2(i)+1,k1(j));%