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代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
文章出处登录后可见!
已经登录?立即刷新