首页 > 行业资讯 > 【图像加密】图像加密解密含Matlab源码

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

时间:2022-05-04 来源: 浏览:

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

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #图像处理matlab源码 567个

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代码问题可私信交流。

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

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐