1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJWVmpdx
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
为了解决数字图像加密算法复杂度高、安全性较差的问题,提出一种基于混沌系统的DNA融合图像加密算法。首先利用Baker变换对图像进行置乱以读取DNA序列;再由Logistic混沌映射产生混沌序列,从而对DNA序列进行混沌加密。该算法对初值具有很好的敏感性,抗统计、抗差分攻击能力强。
4.部分源码
....................................................................
if co_dec==0
t = length(img);
a1 = bitand(img,192)/64;
a2 = bitand(img,48)/16;
a3 = bitand(img,12)/4;
a4 = bitand(img,3);
A =[a1,a2,a3,a4];
%rule_pointer
if rule==1
for i=1:t
for j=1:4*t
if A(i,j)==0
dna_code(i,j)='A';
elseif A(i,j)==1
dna_code(i,j)='C';
elseif A(i,j)==2
dna_code(i,j)='G';
else
dna_code(i,j)='T';
end
end
end
end
if rule==2
for i=1:t
for j=1:4*t
if A(i,j)==0
dna_code(i,j)='A';
elseif A(i,j)==1
dna_code(i,j)='G';
elseif A(i,j)==2
dna_code(i,j)='C';
else
dna_code(i,j)='T';
end
end
end
end
if rule==3
for i=1:t
for j=1:4*t
if A(i,j)==0
dna_code(i,j)='T';
elseif A(i,j)==1
dna_code(i,j)='C';
elseif A(i,j)==2
dna_code(i,j)='G';
else
dna_code(i,j)='A';
end
end
end
end
if rule==4
for i=1:t
for j=1:4*t
if A(i,j)==0
dna_code(i,j)='T';
elseif A(i,j)==1
dna_code(i,j)='G';
elseif A(i,j)==2
dna_code(i,j)='C';
else
dna_code(i,j)='A';
end
end
end
end
if rule==5
for i=1:t
for j=1:4*t
if A(i,j)==0
dna_code(i,j)='G';
elseif A(i,j)==1
dna_code(i,j)='A';
elseif A(i,j)==2
dna_code(i,j)='T';
else
dna_code(i,j)='C';
end
end
end
end
if rule==6
for i=1:t
for j=1:4*t
if A(i,j)==0
dna_code(i,j)='G';
elseif A(i,j)==1
dna_code(i,j)='T';
elseif A(i,j)==2
dna_code(i,j)='A';
else
dna_code(i,j)='C';
end
end
end
end
if rule==7
for i=1:t
for j=1:4*t
if A(i,j)==0
dna_code(i,j)='C';
elseif A(i,j)==1
dna_code(i,j)='A';
elseif A(i,j)==2
dna_code(i,j)='T';
else
dna_code(i,j)='G';
end
end
end
end
if rule==8
for i=1:t
for j=1:4*t
if A(i,j)==0
dna_code(i,j)='C';
elseif A(i,j)==1
dna_code(i,j)='T';
elseif A(i,j)==2
dna_code(i,j)='A';
else
dna_code(i,j)='G';
end
end
end
end
else
[m,n]=size(img);
if rule==1
for i=1:m
for j=1:n
if img(i,j)=='A'
A(i,j)=0;
elseif img(i,j)=='T'
A(i,j)=3;
elseif img(i,j)=='G'
A(i,j)=2;
else
A(i,j)=1;
end
end
end
end
if rule==2
for i=1:m
for j=1:n
if img(i,j)=='A'
A(i,j)=0;
elseif img(i,j)=='T'
A(i,j)=3;
elseif img(i,j)=='G'
A(i,j)=1;
else
A(i,j)=2;
end
end
end
end
if rule==3
for i=1:m
for j=1:n
if img(i,j)=='A'
A(i,j)=3;
elseif img(i,j)=='T'
A(i,j)=0;
elseif img(i,j)=='G'
A(i,j)=2;
else
A(i,j)=1;
end
end
end
end
if rule==4
for i=1:m
for j=1:n
if img(i,j)=='A'
A(i,j)=3;
elseif img(i,j)=='T'
A(i,j)=0;
elseif img(i,j)=='G'
A(i,j)=1;
else
A(i,j)=2;
end
end
end
end
if rule==5
for i=1:m
for j=1:n
if img(i,j)=='A'
A(i,j)=1;
elseif img(i,j)=='T'
A(i,j)=2;
elseif img(i,j)=='G'
A(i,j)=0;
else
A(i,j)=3;
end
end
end
end
if rule==6
for i=1:m
for j=1:n
if img(i,j)=='A'
A(i,j)=2;
elseif img(i,j)=='T'
A(i,j)=1;
elseif img(i,j)=='G'
A(i,j)=0;
else
A(i,j)=3;
end
end
end
end
if rule==7
for i=1:m
for j=1:n
if img(i,j)=='A'
A(i,j)=1;
elseif img(i,j)=='T'
A(i,j)=2;
elseif img(i,j)=='G'
A(i,j)=3;
else
A(i,j)=0;
end
end
end
end
if rule==8
for i=1:m
for j=1:n
if img(i,j)=='A'
A(i,j)=2;
elseif img(i,j)=='T'
A(i,j)=1;
elseif img(i,j)=='G'
A(i,j)=3;
else
A(i,j)=0;
end
end
end
end
A1=A(:,1:m);
A2=A(:,m+1:2*m);
A3=A(:,2*m+1:3*m);
A4=A(:,3*m+1:4*m);
dna_code=A1*64+A2*16+A3*4+A4;
end
A371