欢迎光临散文网 会员登陆 & 注册

【图像加密】图像加密解密含Matlab源码

2022-04-30 23:59 作者:Matlab工程师  | 我要投稿

1 简介

为保护图像信息在通信的传输过程中不被未授权的人员轻易的获取.图像加密解密技术应运而生,并得到长足发展.文章根据对常用的图像加密技术的探索,设计并实现基于混沌理论,像素级别打乱和隐写术的图像加密算法.利用MATLAB软件对图像像素打乱后,与生成的混沌序列按位异或得到加密图像,最后再将加密图像隐写入载体图像中从而完成最后的加密操作.这样操作后,增加破解者的破解难度,同时也让图像在传输过程中不易引起攻击者的警觉.

2 部分代码

%%clcclear allclose allticaddpath subFunctions% Data=imread('images\cameraman.tif');% Data=imread('images\rice.tif');Data=imread('images\Lena.jpg');% Data=imread('images\football.jpg');% Data=imread('images\onion.png');% Data=imread('images\ORLFace.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);%% 键选择和扩展% 以133457799bbcdff1的形式输入keyhex_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);endif (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]));figuresubplot(1,3,1)imshow(Orignal)title('原始图像')subplot(1,3,2)imshow(Encrypted)title('加密图像')subplot(1,3,3)imshow(Decrypted)title('解密图像')figuresubplot(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代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。






【图像加密】图像加密解密含Matlab源码的评论 (共 条)

分享到微博请遵守国家法律