matlab数字图象复杂的加密方法

-

  图象加密的主要性可想而知,每团体都邑有自己的小秘密,经过图象加密的方法可以保护自己的照片等的平安。

  通俗状况下,图象加密可以分为以下几个步调:

  1.选择图象加密算法

  2.依据算法获得秘钥

  3.依据保管的秘钥解密

  图象加密的处理方法多为对图象中的像素点停止处理,有的处理方法不修改灰度直方图的信息(易破解),然后更低级的处理方法使得本来的灰度直方图信息也爆发修改(比如变得平衡化了)。

  下面引见自己亲自测试的2种图象加密算法:

  1.行列像素点置乱方法,该方法将原图中的像素信息停止了从新排布——置乱。经过一一对应的关系可以恢恢复来的图象,此时的秘钥即为行列变换的映照向量Mchange和Nchange。

  复杂的MATLAB依次以下:

  clc,clear all,close all

  Lena=imread('Lena512.bmp');

  figure;imshow(Lena)

  title('原图')

  [M,N] =size(Lena);

  Rm =randsample(M,M)';

  Mchange=[1:1:M;Rm];

  Rn =randsample(N,N)';

  Nchange=[1:1:N;Rn];

  %打乱行依次

  Lena (Mchange(1,:),:)=Lena (Mchange(2,:),:);

  figure;imshow(Lena)

  title('行加密后图象')

  %打乱列依次

  Lena (:,Nchange(1,:))=Lena (:,Nchange(2,:));

  figure;imshow(Lena)

  title('列加密后图象')

  %列变换恢复

  Lena (:,Nchange(2,:))=Lena (:,Nchange(1,:));

  figure;imshow(Lena)

  title('列解密后图象')

  %行变换恢复

  Lena (Mchange(2,:),:)=Lena (Mchange(1,:),:);

  figure;imshow(Lena)

  title('解密后图象')

  

  2.基于浑沌的图象加密方法,发生2个Logistic浑沌序列,改革2个Logistic,掉掉落两个y序列,由yl和y2序列对原图象停止值替换加密。秘钥为浑沌系统的初始形状值。

  可参考的MATLAB依次以下:

  %加密方法,浑沌序列

  clc,clear all,close all

  A=imread('Lena512.bmp');

  imshow(A); title('原图')

  [M,N]=size(A);%原始图象A的尺寸一MxN

  u1=4;u2=4;x1(1)=0.2;x2(1)=0.7;

  sumA=sum(sum(A));

  k=mod(sumA,256)*1.0/255;

  x1(1)=(x1(1)+k)/2; x2(1)=(x2(1)+k)/2;

  y1(1)=(1/3.1415926)*asin(sqrt(x1(1)));

  y2(1)=(1/3.1415926)*asin(sqrt(x2(1)));

  for i=1:1:M*N-1 %发生2个Logistic浑沌序列

  x1(i+1)=u1*x1(i)*(1-x1(i));

猜你喜欢