首页 > 编程知识 正文

目前常用的加密方法有两种,网络加密常用的方法有三种

时间:2023-05-04 10:01:01 阅读:137407 作者:3974

图像加密的重要性被认为是每个人都有自己的小秘密,可以通过图像加密的方法来保护自己的照片等安全。

一般来说,图像加密分为以下步骤。

1 .选择图像加密算法

2 .根据算法获取私钥

3 .基于保存的私钥解密

图像加密的处理方式多是处理图像中的像素点,也有不变更灰度直方图信息(容易解读)的处理方式。 之后,也有变更(例如均衡化)原始灰度直方图信息的更高级的处理方式。

介绍自己测试的两种图像加密算法。

1 .对原图像中像素信息进行重新定位——置乱的矩阵像素点置乱方法。 可以通过一对一的对应关系恢复原始图像,此时的私钥为矩阵变换的映射向量Mchange和Nchange。

简单的MATLAB程序如下。

clc,clear all,close all

Lena=imread(Lena512.BMP );

图形; 我是imshow(Lena )

原图)。

[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 (m change ) 2, ), );

图形; 我是imshow(Lena )

title (行加密图像) )

打乱%列的顺序

Lena(3360,nchange (1, ) ) Lena(3360,nchange ) 2, );

图形; 我是imshow(Lena )

title )“列加密后图像”

%列转换还原

Lena(3360,nchange ) 2, )=Lena ) :nchange ) 1, );

图形; 我是imshow(Lena )

title )“列解码后图像”

%行转换还原

Lena (m change (2, ), )=Lena (m change ) 13360 ), );

图形; 我是imshow(Lena )

title (“解码图像”)

2 .基于混沌的图像加密方法生成两个Logistic混沌序列,改造两个Logistic得到两个y序列,用yl和y2序列对原图像进行取值加密。 私钥是混沌系统的初始状态值。

可以参考的MATLAB程序如下。

%加密方法,混沌序列

clc,clear all,close all

a=imread(Lena512.BMP );

imshow(a ); 原图)。

[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 %生成两个逻辑混沌序列

x1(I1 )=u1*x1(i ) I ) )1-x1 ) I );

x2(I1 )=u2*x2(i ) I ) )1-x2 ) I );

结束

用for i=1:1:M*N %改造2个Logistic,得到2个y序列

y1(I )=)=(1/3.1415926 ) Asin ) sqrt ) x1 ) I ) );

y2(I )=(1/3.1415926 ) Asin ) sqrt ) x2 ) I ) );

结束

n=1;

for i=1:1:M %按yl和y2的顺序将原图像置换为值进行加密

for j=1:1:N

ifmod(n,1 )==0

k(n )=mod(floor ) y1 ) n ) *10^15 ),256 );

else

k(n )=mod(floor ) y2 ) n ) *10^15 ),256 );

结束

a1(I,j )=bitxor ) a ) I,j ),k ) n ); %获取加密的像素

n=n 1;

结束

结束

figure,imshow(A1; title '混沌加密图像' %输出得到的加密图像

n=1;

for i=1:1:M

for j=1:1:N

ifmod(n,1 )==0

k(n )=mod(floor ) y1 ) n ) *10^15 ),256 );

else

k(n )=mod(floor ) y2 ) n ) *10^15 ),256 );

结束

a2(I,j )=bitxor ) a1 ) I,j ),k ) n ); %获取加密的像素

n=n 1;

结束

结束

figure,imshow(A2; title (“解码图像”) %输出获得的解码图像

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。