当前位置 : 主页 > 编程语言 > python >

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Ma

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 分析了当前一类基于混沌系统的图像加密算法,指出普遍存在安全性方面的不足.基于此,提出了一种全新的不变像素、可变像素、采样像素分类置乱的混沌图像加密算法. 2 部分代码


1 简介

分析了当前一类基于混沌系统的图像加密算法,指出普遍存在安全性方面的不足.基于此,提出了一种全新的不变像素、可变像素、采样像素分类置乱的混沌图像加密算法.

2 部分代码

% Separable and error-free reversible data hiding in encrypted images .
%可以有不大于最大嵌入率的任意嵌入率.
clc;tic;
clear;
close all;
tic
%阈值.
Tn=-2%负数 (满足|Tn-1|<Tp)
Tp=1%正数
im=imread('lena512.bmp');
%im=rgb2gray(img);
figure(1);
imshow(im)
title('原始图像');
im=double(im);
[m,n]=size(im)
%% 预处理
[pre, HHist,L1]=pretreatment(im,Tn,Tp);%pre表示与处理后图像,HHist表示直方图,L1记录溢出位
figure(2);
% imshow(uint8(pre))
H1=bar(-255:255,HHist);
box off;xlabel('插值误差');ylabel('出现次数');title('原始插值误差直方图');set(gcf,'color','white');
% 将位置映射压缩作为边信息(游长编码)
L1_C=mycode(L1);
%% 图像加密
enkey=1:14;
[encrypted,mm,Mm,p,fb]=encryption_Xu(pre,enkey,Tn,Tp);
figure(3);
imshow(uint8(encrypted));
title('加密图像');%加密图像
encrypted_p=psnr(im,encrypted)
%% 信息隐藏,total1为阈值为[-2 1]时可嵌入的最大容量
%max_embed_rate=total1/(512*512)
%w为待嵌入的秘密比特
nn=ceil(log((Tp-Tn)+1)/log(2));
rand('state',20);
[m,n]=size(encrypted);
w = rand(1,mm*(8-nn)-Mm)>=0.5;
w_l=length(w);
embed=embedding_Xu(encrypted,w,mm,Tn,Tp,Mm);
figure(4);
imshow(uint8(embed));
title('标记加密图像');
%% 数据提取和恢复
%case1:只提取数据
extrab=extract_Xu(embed,Tn,Tp,w_l,mm,Mm);
a=length(extrab);
actually_embed_rate=a/(m*n);%嵌入率
%% 恢复图像
decrypted=decryption_Xu(embed,enkey,Tn,Tp,mm,L1_C,Mm,p,fb);
figure(5);
imshow(uint8(decrypted));
title('恢复图像');
recovery_p=psnr(im, decrypted) ;
%
% %case3:从解密域提取数据并恢复图像,即先对图像解密,再提取数据,恢复图像.
% [extrab,recovery_image]=recover1(embed,L1_C,enkey,Tn,Tp,w_l);
%
% %case4:从加密域提取数据并恢复图像,即先提取数据,再对图像解密,恢复图像.
% [extrab,recovery_image]=recover2_Xu(embed,L1_C,enkey,Tn,Tp,w_l);
%
% figure(7);
% imshow(uint8( recovery_image));
% title('recovery image');
% recovery_p=psnr(im, recovery_image)
%
% %计算提取的错误率
% l=length(w);
% s=0;
% for i=1:l
% if extrab(i)~=w(i)
% s=s+1;
% end
% end
% error_rate=s/l
toc

3 仿真结果

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_加密算法

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_数据_02

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_数据_03

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_插值_04

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_插值_05

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_加密算法_06

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_加密算法_07

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_加密算法_08

4 参考文献

[1]谢国波, 王添. 基于像素置乱和比特替换的混沌图像加密算法[J]. 微电子学与计算机, 2016, 33(3):6.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_加密算法_09

【图像加密】基于不变像素、可变像素、采样像素分类置乱图像加密解密含Matlab源码_加密算法_10

网友评论