【图像加密】图像加密解密含Matlab源码
【图像加密】图像加密解密含Matlab源码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
为保护图像信息在通信的传输过程中不被未授权的人员轻易的获取.图像加密解密技术应运而生,并得到长足发展.文章根据对常用的图像加密技术的探索,设计并实现基于混沌理论,像素级别打乱和隐写术的图像加密算法.利用MATLAB软件对图像像素打乱后,与生成的混沌序列按位异或得到加密图像,最后再将加密图像隐写入载体图像中从而完成最后的加密操作.这样操作后,增加破解者的破解难度,同时也让图像在传输过程中不易引起攻击者的警觉.
2 部分代码
%%
clc
clear all
close all
tic
addpath subFunctions
%
Data
=imread(
’imagescameraman.tif’
);
%
Data
=imread(
’imagesice.tif’
);
Data
=imread(
’imagesLena.jpg’
);
%
Data
=imread(
’imagesfootball.jpg’
);
%
Data
=imread(
’imagesonion.png’
);
%
Data
=imread(
’imagesORLFace.jpg’
);
[row,col,dim]=size(
Data
);
if
(dim>
1
)
Data
=rgb2gray(
Data
); %如果输入图像是彩色图像,则转换为灰度
end
%% 缩放和转换为二进制
% 缩放以将图像转换为
8
像素数组;每个像素为
8
位
% 因此
8
像素将等于
64
位数据
[Data,padding]=Scalling(
Data
,
8
);
Data_binary=convert2bin(
Data
);
%% 键选择和扩展
% 以
133457799
bbcdff1的形式输入key
hex_key =
’133457799bbcdff1’
;
[bin_key] = Hex2Bin( hex_key );
[K1,K2,K3,K4,K5]=SF_Key_Gen(bin_key);
%% 加密与解密
orignal_msg=[];
encrypt_msg=[];
decrypt_msg=[];
for
i=
1
:size(Data_binary,
1
)
orignal=Data_binary(i,:);
tic
[cipher]=SF_Encrypt(orignal,K1,K2,K3,K4,K5);
encryption_time(i)=toc;
[plaintext]=SF_Decryption(cipher,K1,K2,K3,K4,K5);
encrypt_msg(:,i)=Binary2Dec(cipher);
decrypt_msg(:,i)=Binary2Dec(plaintext);
end
if
(padding~=
0
)
Data
=reshape(
Data
,[size(
Data
,
1
)*size(
Data
,
2
)
1
]);
Data
=
Data
(
1
:end-padding);
encrypt_msg=reshape(encrypt_msg,[size(encrypt_msg,
1
)*size(encrypt_msg,
2
)
1
]);
encrypt_msg=encrypt_msg(
1
:end-padding);
decrypt_msg=reshape(decrypt_msg,[size(decrypt_msg,
1
)*size(decrypt_msg,
2
)
1
]);
decrypt_msg=decrypt_msg(
1
:end-padding);
end
%% 将向量转换为图像
Orignal=uint8(reshape(
Data
,[row,col]));
Encrypted=uint8(reshape(encrypt_msg,[row,col]));
Decrypted=uint8(reshape(decrypt_msg,[row,col]));
figure
subplot(
1
,
3
,
1
)
imshow(Orignal)
title(
’原始图像’
)
subplot(
1
,
3
,
2
)
imshow(Encrypted)
title(
’加密图像’
)
subplot(
1
,
3
,
3
)
imshow(Decrypted)
title(
’解密图像’
)
figure
subplot(
2
,
1
,
1
)
imhist(Orignal);
subplot(
2
,
1
,
2
)
imhist(Encrypted);
display(
’Done’
);
toc
%% 计算加密和原始图像熵
Y=(imhist(Encrypted)+
0.00001
)/(row*col);
Y=-sum(Y.*log2(Y));
X=(imhist(Orignal)+
0.00001
)/(row*col);
X=-sum(X.*log2(X));
% disp([
’原始信息熵:X,’
’加密信息熵:Y’
]);
Re=[X Y]
3 仿真结果
4 参考文献
[1]张英伟. 基于matlab的数字图像des加密解密研究[J]. 信息技术与信息化, 2014(5):2.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
