clc
clear all
X=imread('3.bmp');
[m,n]=size(X);
num=1;
for i=1:m
for j=1:n
X1(num)=X(i,j);
num=num+1;
end
end
x(1)=0.1;
x2(1)=0.3;
x3(1)=0.6;
x4(i)=0.8;
tr=4;
tr1=3.8;
for i=1: 70000
x(i+1)=tr*x(i)*(1-x(i));
x2(i+1)=tr*x2(i)*(1-x(i));
x3(i+1)=tr*x3(i)*(1-x(i));
x4(i+1)=tr1*x4(i)*(1-x(i));
end
num=1;
for i=5:70000
L1(num)=floor(mod((x(i)*(10^14)),256));
num=num+1;
end
num=1;
for i=5:70000
L2(num)=floor(mod((x2(i)*(10^14)),256));
num=num+1;
end
num=1;
for i=5:70000
L3(num)=floor(mod((x3(i)*(10^14)),256));
num=num+1;
end
num=1;
for i=5:70000
L4(num)=floor(mod((x3(i)*(10^14)),256));
num=num+1;
end
L1P=[];
for i=1:65536
L1P(i)=L1(i);
end
L1PP=[];
for i=1:65536
L1PP(i)=L4(i);
end
L1=uint8((L1));
for i=1:65536
key(i)=keyxor(L1(i),L2(i),L3(i));
end
for i=1:65536
SC(i)=bitxor((bitxor(X1(i),key(i))),L1(i));
L1(i)=L2(i);
L2(i)=SC(i);
L3(i)=X1(i);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
l=1;
for i=1:m
for j=1:n
SCC(i,j)=SC(l);
l=l+1;
end
end
I0(1:m,1:n/2)=SCC(1:m,1:n/2); %左半块
I1(1:m,1:n/2)=SCC(1:m,n/2+1:n); %右半块
%左半块分块
[m1,n1]=size(I0);
I2(1:m1/2,1:n1)=I0(1:m1/2,1:n1); %左上半块
I3(1:m1/2,1:n1)=I0(m1/2+1:m1,1:n1); %左下半块
%右半块分块
I4(1:m1/2,1:n1)=I1(1:m1/2,1:n1); %右上半块
I5(1:m1/2,1:n1)=I1(m1/2+1:m1,1:n1); %右下半块
XX=[I4,I3
I2 I5];
figure(3)
imshow(uint8(XX));
figure(4);
imhist(uint8(XX));
imwrite(uint8(key), '2019-4.bmp', 'bmp');
function key66=keyxor(key1,key2,key3)
key=bitxor((bitxor(key1,key2)),key3);
key88=dec2bin(key,8);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h=(key88(1:4)); %高四位
l=(key88(5:8)); %低四位
sc1=bin2dec(h);
sc2=bin2dec(l);
[C1,C2]=sbox(sc1,sc2);
sc3=dec2bin((hex2dec(C1)),4);
sc4=dec2bin((hex2dec(C2)),4);
key44=strcat(sc3,sc4);
key45=circshift(key44,[0,-2]) ;
key46=circshift(key44,[0,-5]) ;
key47=bin2dec(key45);
key48=bin2dec(key46);
key66=bitxor((bitxor(key47,key48)),bin2dec(key44));
return
function [SC1,SC2]=sbox(h,k)
SC1=0;
SC2=0;
if (h==1)&&(k==1)
SC1='6';SC2='3';
end
if (h==1)&&(k==2)
SC1='7';SC2='c';
end
if (h==1)&&(k==3)
SC1='7';SC2='7';
end
if (h==1)&&(k==4)
SC1='7';SC2='b';
end
if (h==1)&&(k==5)
SC1='f';SC2='2';
end
if (h==1)&&(k==5)
SC1='f';SC2='2';
end
if (h==1)&&(k==6)
SC1='6';SC2='b';
end
if (h==1)&&(k==7)
SC1='6';SC2='f';
end
if (h==1)&&(k==8)
SC1='c';SC2='5';
end
if (h==1)&&(k==9)
SC1='3';SC2='0';
end
if (h==1)&&(k==9)
SC1='3';SC2='0';
end
if (h==1)&&(k==10)
SC1='0';SC2='1';
end
if (h==1)&&(k==11)
SC1='6';SC2='3';
end
if (h==1)&&(k==12)
SC1='7';SC2='c';
end
if (h==1)&&(k==13)
SC1='7';SC2='7';
end
if (h==1)&&(k==14)
SC1='7';SC2='b';
end
if (h==1)&&(k==15)
SC1='f';SC2='2';
end
if (h==1)&&(k==16)
SC1='6';SC2='b';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==2)&&(k==1)
SC1='c';SC2='a';
end
if (h==2)&&(k==2)
SC1='8';SC2='2';
end
if (h==2)&&(k==3)
SC1='c';SC2='9';
end
if (h==2)&&(k==4)
SC1='7';SC2='d';
end
if (h==2)&&(k==5)
SC1='f';SC2='a';
end
if (h==2)&&(k==6)
SC1='5';SC2='9';
end
if (h==2)&&(k==7)
SC1='4';SC2='7';
end
if (h==2)&&(k==8)
SC1='f';SC2='0';
end
if (h==2)&&(k==9)
SC1='a';SC2='d';
end
if (h==2)&&(k==10)
SC1='d';SC2='4';
end
if (h==2)&&(k==11)
SC1='c';SC2='a';
end
if (h==2)&&(k==12)
SC1='8';SC2='2';
end
if (h==2)&&(k==13)
SC1='c';SC2='9';
end
if (h==2)&&(k==14)
SC1='7';SC2='d';
end
if (h==2)&&(k==15)
SC1='f';SC2='a';
end
if (h==2)&&(k==16)
SC1='5';SC2='9';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==3)&&(k==1)
SC1='b';SC2='7';
end
if (h==3)&&(k==2)
SC1='f';SC2='d';
end
if (h==3)&&(k==3)
SC1='9';SC2='3';
end
if (h==3)&&(k==4)
SC1='2';SC2='6';
end
if (h==3)&&(k==5)
SC1='3';SC2='6';
end
if (h==3)&&(k==6)
SC1='3';SC2='f';
end
if (h==3)&&(k==7)
SC1='f';SC2='7';
end
if (h==3)&&(k==8)
SC1='c';SC2='c';
end
if (h==3)&&(k==9)
SC1='3';SC2='4';
end
if (h==3)&&(k==10)
SC1='a';SC2='5';
end
if (h==3)&&(k==11)
SC1='e';SC2='5';
end
if (h==3)&&(k==12)
SC1='f';SC2='1';
end
if (h==3)&&(k==13)
SC1='7';SC2='1';
end
if (h==3)&&(k==14)
SC1='d';SC2='8';
end
if (h==3)&&(k==15)
SC1='3';SC2='1';
end
if (h==3)&&(k==16)
SC1='1';SC2='5';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==4)&&(k==1)
SC1='0';SC2='4';
end
if (h==4)&&(k==2)
SC1='c';SC2='7';
end
if (h==4)&&(k==3)
SC1='2';SC2='3';
end
if (h==4)&&(k==4)
SC1='c';SC2='3';
end
if (h==4)&&(k==5)
SC1='1';SC2='8';
end
if (h==4)&&(k==6)
SC1='9';SC2='6';
end
if (h==4)&&(k==7)
SC1='0';SC2='5';
end
if (h==4)&&(k==8)
SC1='9';SC2='a';
end
if (h==4)&&(k==9)
SC1='0';SC2='7';
end
if (h==4)&&(k==10)
SC1='1';SC2='2';
end
if (h==4)&&(k==11)
SC1='8';SC2='0';
end
if (h==4)&&(k==12)
SC1='e';SC2='2';
end
if (h==4)&&(k==13)
SC1='e';SC2='b';
end
if (h==4)&&(k==14)
SC1='2';SC2='7';
end
if (h==4)&&(k==15)
SC1='b';SC2='2';
end
if (h==4)&&(k==16)
SC1='7';SC2='5';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==5)&&(k==1)
SC1='0';SC2='9';
end
if (h==5)&&(k==2)
SC1='8';SC2='3';
end
if (h==5)&&(k==3)
SC1='2';SC2='c';
end
if (h==5)&&(k==4)
SC1='1';SC2='a';
end
if (h==5)&&(k==5)
SC1='1';SC2='b';
end
if (h==5)&&(k==6)
SC1='6';SC2='e';
end
if (h==5)&&(k==7)
SC1='5';SC2='a';
end
if (h==5)&&(k==8)
SC1='a';SC2='0';
end
if (h==5)&&(k==9)
SC1='5';SC2='2';
end
if (h==5)&&(k==10)
SC1='3';SC2='b';
end
if (h==5)&&(k==11)
SC1='d';SC2='6';
end
if (h==5)&&(k==12)
SC1='b';SC2='3';
end
if (h==5)&&(k==13)
SC1='2';SC2='9';
end
if (h==5)&&(k==14)
SC1='e';SC2='3';
end
if (h==5)&&(k==15)
SC1='2';SC2='f';
end
if (h==5)&&(k==16)
SC1='8';SC2='4';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==6)&&(k==1)
SC1='5';SC2='3';
end
if (h==6)&&(k==2)
SC1='d';SC2='1';
end
if (h==6)&&(k==3)
SC1='0';SC2='0';
end
if (h==6)&&(k==4)
SC1='e';SC2='d';
end
if (h==6)&&(k==5)
SC1='2';SC2='0';
end
if (h==6)&&(k==6)
SC1='f';SC2='a';
end
if (h==6)&&(k==7)
SC1='b';SC2='1';
end
if (h==6)&&(k==8)
SC1='5';SC2='b';
end
if (h==6)&&(k==9)
SC1='6';SC2='a';
end
if (h==6)&&(k==10)
SC1='c';SC2='b';
end
if (h==6)&&(k==11)
SC1='b';SC2='e';
end
if (h==6)&&(k==12)
SC1='3';SC2='9';
end
if (h==6)&&(k==13)
SC1='4';SC2='a';
end
if (h==6)&&(k==14)
SC1='4';SC2='c';
end
if (h==6)&&(k==15)
SC1='5';SC2='8';
end
if (h==6)&&(k==16)
SC1='c';SC2='f';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==7)&&(k==1)
SC1='d';SC2='0';
end
if (h==7)&&(k==2)
SC1='e';SC2='f';
end
if (h==7)&&(k==3)
SC1='a';SC2='a';
end
if (h==7)&&(k==4)
SC1='f';SC2='b';
end
if (h==7)&&(k==5)
SC1='4';SC2='3';
end
if (h==7)&&(k==6)
SC1='4';SC2='d';
end
if (h==7)&&(k==7)
SC1='3';SC2='3';
end
if (h==7)&&(k==8)
SC1='8';SC2='5';
end
if (h==7)&&(k==9)
SC1='4';SC2='5';
end
if (h==7)&&(k==10)
SC1='f';SC2='9';
end
if (h==7)&&(k==11)
SC1='0';SC2='2';
end
if (h==7)&&(k==12)
SC1='7';SC2='f';
end
if (h==7)&&(k==13)
SC1='5';SC2='0';
end
if (h==7)&&(k==14)
SC1='3';SC2='c';
end
if (h==7)&&(k==15)
SC1='9';SC2='f';
end
if (h==7)&&(k==16)
SC1='a';SC2='8';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==8)&&(k==1)
SC1='5';SC2='1';
end
if (h==8)&&(k==2)
SC1='a';SC2='3';
end
if (h==8)&&(k==3)
SC1='4';SC2='0';
end
if (h==8)&&(k==4)
SC1='8';SC2='f';
end
if (h==8)&&(k==5)
SC1='9';SC2='2';
end
if (h==8)&&(k==6)
SC1='9';SC2='d';
end
if (h==8)&&(k==7)
SC1='3';SC2='8';
end
if (h==8)&&(k==8)
SC1='f';SC2='5';
end
if (h==8)&&(k==9)
SC1='b';SC2='c';
end
if (h==8)&&(k==10)
SC1='b';SC2='6';
end
if (h==8)&&(k==11)
SC1='d';SC2='a';
end
if (h==8)&&(k==12)
SC1='2';SC2='1';
end
if (h==8)&&(k==13)
SC1='1';SC2='0';
end
if (h==8)&&(k==14)
SC1='f';SC2='f';
end
if (h==8)&&(k==15)
SC1='f';SC2='3';
end
if (h==8)&&(k==16)
SC1='d';SC2='2';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==9)&&(k==1)
SC1='c';SC2='d';
end
if (h==9)&&(k==2)
SC1='0';SC2='c';
end
if (h==9)&&(k==3)
SC1='1';SC2='3';
end
if (h==9)&&(k==4)
SC1='e';SC2='c';
end
if (h==9)&&(k==5)
SC1='5';SC2='f';
end
if (h==9)&&(k==6)
SC1='9';SC2='7';
end
if (h==9)&&(k==7)
SC1='4';SC2='4';
end
if (h==9)&&(k==8)
SC1='1';SC2='7';
end
if (h==9)&&(k==9)
SC1='c';SC2='4';
end
if (h==9)&&(k==10)
SC1='a';SC2='7';
end
if (h==9)&&(k==11)
SC1='7';SC2='e';
end
if (h==9)&&(k==12)
SC1='3';SC2='d';
end
if (h==9)&&(k==13)
SC1='6';SC2='4';
end
if (h==9)&&(k==14)
SC1='5';SC2='d';
end
if (h==9)&&(k==15)
SC1='1';SC2='9';
end
if (h==9)&&(k==16)
SC1='7';SC2='3';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==10)&&(k==1)
SC1='6';SC2='0';
end
if (h==10)&&(k==2)
SC1='8';SC2='1';
end
if (h==10)&&(k==3)
SC1='4';SC2='f';
end
if (h==10)&&(k==4)
SC1='d';SC2='c';
end
if (h==10)&&(k==5)
SC1='2';SC2='2';
end
if (h==10)&&(k==6)
SC1='2';SC2='a';
end
if (h==10)&&(k==7)
SC1='9';SC2='0';
end
if (h==10)&&(k==8)
SC1='8';SC2='8';
end
if (h==10)&&(k==9)
SC1='4';SC2='6';
end
if (h==10)&&(k==10)
SC1='e';SC2='e';
end
if (h==10)&&(k==11)
SC1='b';SC2='8';
end
if (h==10)&&(k==12)
SC1='1';SC2='4';
end
if (h==10)&&(k==13)
SC1='d';SC2='e';
end
if (h==10)&&(k==14)
SC1='5';SC2='e';
end
if (h==10)&&(k==15)
SC1='0';SC2='b';
end
if (h==10)&&(k==16)
SC1='d';SC2='b';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==11)&&(k==1)
SC1='e';SC2='0';
end
if (h==11)&&(k==2)
SC1='3';SC2='2';
end
if (h==11)&&(k==3)
SC1='3';SC2='a';
end
if (h==11)&&(k==4)
SC1='0';SC2='a';
end
if (h==11)&&(k==5)
SC1='4';SC2='9';
end
if (h==11)&&(k==6)
SC1='0';SC2='6';
end
if (h==11)&&(k==7)
SC1='2';SC2='4';
end
if (h==11)&&(k==8)
SC1='5';SC2='c';
end
if (h==11)&&(k==9)
SC1='c';SC2='2';
end
if (h==11)&&(k==10)
SC1='d';SC2='3';
end
if (h==11)&&(k==11)
SC1='a';SC2='c';
end
if (h==11)&&(k==12)
SC1='b';SC2='2';
end
if (h==11)&&(k==13)
SC1='9';SC2='1';
end
if (h==11)&&(k==14)
SC1='9';SC2='5';
end
if (h==11)&&(k==15)
SC1='e';SC2='4';
end
if (h==11)&&(k==16)
SC1='7';SC2='9';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==12)&&(k==1)
SC1='e';SC2='7';
end
if (h==12)&&(k==2)
SC1='c';SC2='8';
end
if (h==12)&&(k==3)
SC1='3';SC2='7';
end
if (h==12)&&(k==4)
SC1='6';SC2='d';
end
if (h==12)&&(k==5)
SC1='8';SC2='d';
end
if (h==12)&&(k==6)
SC1='d';SC2='5';
end
if (h==12)&&(k==7)
SC1='4';SC2='e';
end
if (h==12)&&(k==8)
SC1='a';SC2='9';
end
if (h==12)&&(k==9)
SC1='6';SC2='c';
end
if (h==12)&&(k==10)
SC1='5';SC2='6';
end
if (h==12)&&(k==11)
SC1='f';SC2='4';
end
if (h==12)&&(k==12)
SC1='e';SC2='a';
end
if (h==12)&&(k==13)
SC1='6';SC2='5';
end
if (h==12)&&(k==14)
SC1='7';SC2='a';
end
if (h==12)&&(k==15)
SC1='a';SC2='e';
end
if (h==12)&&(k==16)
SC1='0';SC2='8';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==13)&&(k==1)
SC1='b';SC2='a';
end
if (h==13)&&(k==2)
SC1='7';SC2='8';
end
if (h==13)&&(k==3)
SC1='2';SC2='5';
end
if (h==13)&&(k==4)
SC1='2';SC2='e';
end
if (h==13)&&(k==5)
SC1='1';SC2='c';
end
if (h==13)&&(k==6)
SC1='a';SC2='6';
end
if (h==13)&&(k==7)
SC1='b';SC2='4';
end
if (h==13)&&(k==8)
SC1='c';SC2='6';
end
if (h==13)&&(k==9)
SC1='e';SC2='8';
end
if (h==13)&&(k==10)
SC1='d';SC2='d';
end
if (h==13)&&(k==11)
SC1='7';SC2='4';
end
if (h==13)&&(k==12)
SC1='1';SC2='f';
end
if (h==13)&&(k==13)
SC1='4';SC2='b';
end
if (h==13)&&(k==14)
SC1='b';SC2='d';
end
if (h==13)&&(k==15)
SC1='8';SC2='b';
end
if (h==13)&&(k==16)
SC1='8';SC2='a';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==14)&&(k==1)
SC1='7';SC2='0';
end
if (h==14)&&(k==2)
SC1='3';SC2='e';
end
if (h==14)&&(k==3)
SC1='b';SC2='5';
end
if (h==14)&&(k==4)
SC1='6';SC2='6';
end
if (h==14)&&(k==5)
SC1='4';SC2='8';
end
if (h==14)&&(k==6)
SC1='0';SC2='3';
end
if (h==14)&&(k==7)
SC1='f';SC2='6';
end
if (h==14)&&(k==8)
SC1='0';SC2='e';
end
if (h==14)&&(k==9)
SC1='6';SC2='1';
end
if (h==14)&&(k==10)
SC1='3';SC2='5';
end
if (h==14)&&(k==11)
SC1='5';SC2='7';
end
if (h==14)&&(k==12)
SC1='b';SC2='9';
end
if (h==14)&&(k==13)
SC1='8';SC2='6';
end
if (h==14)&&(k==14)
SC1='c';SC2='1';
end
if (h==14)&&(k==15)
SC1='1';SC2='d';
end
if (h==14)&&(k==16)
SC1='9';SC2='e';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==15)&&(k==1)
SC1='e';SC2='1';
end
if (h==15)&&(k==2)
SC1='f';SC2='8';
end
if (h==15)&&(k==3)
SC1='9';SC2='8';
end
if (h==15)&&(k==4)
SC1='1';SC2='1';
end
if (h==15)&&(k==5)
SC1='6';SC2='9';
end
if (h==15)&&(k==6)
SC1='d';SC2='9';
end
if (h==15)&&(k==7)
SC1='8';SC2='e';
end
if (h==15)&&(k==8)
SC1='9';SC2='4';
end
if (h==15)&&(k==9)
SC1='9';SC2='b';
end
if (h==15)&&(k==10)
SC1='1';SC2='e';
end
if (h==15)&&(k==11)
SC1='8';SC2='7';
end
if (h==15)&&(k==12)
SC1='e';SC2='9';
end
if (h==15)&&(k==13)
SC1='c';SC2='e';
end
if (h==15)&&(k==14)
SC1='5';SC2='5';
end
if (h==15)&&(k==15)
SC1='2';SC2='8';
end
if (h==15)&&(k==16)
SC1='d';SC2='f';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (h==16)&&(k==1)
SC1='8';SC2='c';
end
if (h==16)&&(k==2)
SC1='a';SC2='1';
end
if (h==16)&&(k==3)
SC1='8';SC2='9';
end
if (h==16)&&(k==4)
SC1='0';SC2='d';
end
if (h==16)&&(k==5)
SC1='b';SC2='f';
end
if (h==16)&&(k==6)
SC1='e';SC2='6';
end
if (h==16)&&(k==7)
SC1='4';SC2='2';
end
if (h==16)&&(k==8)
SC1='6';SC2='8';
end
if (h==16)&&(k==9)
SC1='4';SC2='1';
end
if (h==16)&&(k==10)
SC1='9';SC2='9';
end
if (h==16)&&(k==11)
SC1='2';SC2='d';
end
if (h==16)&&(k==12)
SC1='0';SC2='f';
end
if (h==16)&&(k==13)
SC1='b';SC2='0';
end
if (h==16)&&(k==14)
SC1='5';SC2='4';
end
if (h==16)&&(k==15)
SC1='b';SC2='b';
end
if (h==16)&&(k==16)
SC1='1';SC2='6';
end
return;