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 仿真结果
4 参考文献
[1]谢国波, 王添. 基于像素置乱和比特替换的混沌图像加密算法[J]. 微电子学与计算机, 2016, 33(3):6.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
|