⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.m

📁 把Arnold cat映射进行修改
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%   初始化  密钥是n1,n2,x1(0),x2(0) **********************
clc
close all
clear all
t=cputime;
n1=1;            %设置密钥*******************************************************
n2=1;             %设置密钥*********************************************
x1(1)=0.2;        %设置密钥;产生a值序列*********************888    
x3(1)=0.25;          %设置密钥产生b值序列
B=16;                 %设置对原图像分块的记数
u=4;
%××××××××××××××××××××产生a,b值×88888888888888888888888888888888888
%%%%%                n1整个图像置乱迭代次数,n2各个分块迭代次数

for i=2:(101+B^2)%B^2原图被分的块数,多产生的混沌序列已备其混沌特性不好从第101个数开始取用
    x1(i)=u*x1(i-1)*(1-x1(i-1));
    x3(i)=u*x1(i-1)*(1-x1(i-1));
end 
    for i=1:B^2+1
        x2(i)=fix(x1(100+i)*10000)-fix(x1(100+i)*10)*1000;
        x4(i)=fix(x1(100+i)*10000)-fix(x1(100+i)*10)*1000;
        x22(i)=mod(x2(i),256)+1;%a值序列
        x44(i)=mod(x2(i),256)+1;%b值序列
    end
   %************************************对整个图像做ARNOLD映射************************************* 
    originimage=imread('lena.bmp');    %%%%%%%%一定是方阵,读入加密图像*******************
    origin=rgb2gray(originimage);
    M=length(origin);
    subplot(1,3,1),imshow(origin),title('加密前的图像'); 
    lastimage1=cat(x22(1),x44(1),origin,n1);% 对整个图像做ARNOLD映射后的密图为lastimage1
     subplot(1,3,2),imshow( lastimage1),title('整体加密后的图像');
       imwrite( lastimage1,'linac.bmp','bmp');
    %*********************************对各个分块加密置乱****************************
    k1=1;
    k2=0;
        for Q=1:B^2
              k2=k2+1;
            if k2==B+1
                k1=k1+1;
                k2=1;
            end
            partimage=qukuai(lastimage1,k1,k2,B);     %对图像取分块函数
            partlast=cat(x22(Q+1),x44(Q+1),partimage,n2);%对分块做映射
            %将置乱后的分块放在加密图像的指定位置上
            for i=1:M/B
              for  j=1:M/B
            lastimage2(B*(i-1)+k1,B*(j-1)+k2)=partlast(i,j);% lastimage2最终加密后的图像
              end
            end
        end
     subplot(1,3,3),imshow(lastimage2),title('最终加密后的图像'); 
     imwrite( lastimage2,'linacc.bmp','bmp');
    e=cputime-t
    
    
    
    
    
    
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -