• 【图像隐藏】基于matlab像素预测和位平面压缩的加密图像可逆数据隐藏【含Matlab源码 2218期】


    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
    🍎个人主页:海神之光
    🏆代码获取方式:
    海神之光Matlab王者学习之路—代码获取方式
    ⛳️座右铭:行百里者,半于九十。

    更多Matlab仿真内容点击👇
    Matlab图像处理(进阶版)
    路径规划(Matlab)
    神经网络预测与分类(Matlab)
    优化求解(Matlab)
    语音处理(Matlab)
    信号处理(Matlab)
    车间调度(Matlab)

    ⛄一、加密图像可逆数据隐藏简介

    1 信息隐藏技术概述
    信息隐藏技术是把秘密信息隐藏在多媒体信息中的一种方法。图像是最适合信息隐藏的数据载体。信息隐藏的方法主要有数字水印技术、隐写术等。

    信息隐藏可以分为有损信息隐藏与可逆信息隐藏信息隐藏技术, 区别在于接收端是否能无失真恢复载体。有损信息隐藏技术可以应用于多媒体数据的版权保护场景, 接收端提取秘密数据后不能完全恢复载体。可逆信息隐藏可应用在多媒体数据的非法篡改后, 可以验证其完整性并无损恢复, 比如医疗诊断信息等, 在接收端提取秘密信息后可以无失真恢复载体。

    如图1所示, 信息隐藏技术的分类:根据信息隐藏的载体是否会造成永久性失真分为有损信息隐藏和可逆信息隐藏, 可逆信息隐藏又根据信息隐藏是否有加密分为密文域可逆信息隐藏和非密文可逆信息隐藏。
    在这里插入图片描述
    图1 信息隐藏技术的分类

    2 加密图像的可逆信息隐藏的意义
    随着信息技术的不断发展, 通信、信息安全领域的研究可以从不同的角度去探究, 多媒体数据在通信的传输中, 极易遭受到了非法截取、内容篡改等。多媒体数据涉及到的内容, 小到版权保护和隐私保护, 如医疗诊断信息、所有权信息、身份验证数据或软件序列号, 大到国家军事国防方面的图像信息。因此, 保护信息安全变得尤其的重要。

    图像的加密和信息隐藏是保护信息安全的研究方向。密码学是通过加密可以保证数据内容的安全性。信息隐藏技术是通过嵌入秘密数据来验证其多媒体数据的完整性。

    加密图像的可逆信息隐藏对于数据处理过程中的信息安全可以起到双重保险的作用, 加密对图像数据内容进行保护, 而嵌入的秘密数据可以起到在解密后监视多媒体数据的传输中是否被篡改, 验证其完整性和原始载体的无损恢复, 可以应用的场景, 如远程医学诊断、云环境下加密数据标注、司法上的数字取证等。

    3 可逆信息隐藏研究现状
    可逆信息隐藏技术的研究中, Tian[1]提出了可逆信息隐藏技术的差分展开机制, 通过将相邻像素差加倍并调整奇偶校验, 将秘密数据嵌入到原始图像中。Ni[2]等人首先提出了基于直方图平移的可逆信息隐藏方法, 对图像直方图中的峰值点平移, 修改像素值实现了可逆的秘密数据嵌入。M.Thodi和J.J.Rodriguez[3]中引入了预测误差扩展策略, 充分利用图像像素冗余, 取得了不错的率失真性能。Qin[4]等根据图像局部复杂度的分布自适应地选择参考像素, 并提出了基于预测的直方图平移的方案, 该方案可以获得数据嵌入时预测误差的集中直方图。J.Fridrich和M.Goljan[5]提出对图像压缩腾出空间来嵌入秘密信息实现可逆信息隐藏。

    加密图像的可逆信息隐藏, 是将加密技术和信息隐藏技术两者结合起来, 分别从内容和存在的不同角度保护信息的安全性, 主要有两种情况:第一种, 先加密原始图像, 在加密图像后嵌入秘密信息;第二种, 先在原始图像嵌入秘密信息再加密, 得到密文图像。比如在云服务端, 可以在用户加密过的图像内容中嵌入额外的数据, 图像内容所有者在保护隐私不泄密的同时, 这样, 经过标记的加密图像就可以在云上进行有效的管理, 经过授权的接收方可以正确提取嵌入的数据, 并能无损地恢复原始明文图像。因此, 对加密图像的可逆信息隐藏方案, 从加密后的图像中找到空间进行数据隐藏, 保证数据提取和图像恢复。

    文献[8,9,10]张和项提出的基于公钥加密的可逆信息隐藏算法就是利用公钥加密的加法同态性设计出了加密可逆信息隐藏算法, 文献[11]中肖也提出了利用具有加法同态性的加密算法处理原文图像后, 再利用多层差值直方图平移进行秘密数据嵌入。在加密图像信息隐藏领域引入了同态加密技术的早期算法, 引用Okamoto-Uchiyama公钥密码[14]来加密原文数据, 通过利用加密系统的同态属性适应性替换量化后的密文图像DCT系数来嵌入数字水印。

    同态算法尤其是全同态加密技术的计算复杂度与密文扩展极大地影响了加密图像秘密数据嵌入的效率, 这种情况可以引入密文压缩技术有效提高嵌入效率, Zhang[7]提出了一种独立可分的加密域图像的可逆信息隐藏算法, 是利用密文压缩技术实现可分离的代表算法, 一种典型的加密图像的可逆信息隐藏方案。

    4 加密图像的可逆信息隐藏
    加密图像的可逆信息隐藏研究, 提出研究内容包括以下两个方面:

    4.1 基于加法同态的直方图多峰值平移的可逆信息隐藏算法。
    Subramanyam等人提出的加密算法[6], 这种加密算法具有加法同态性。加密原始图像M, 由一个秘密种子s用RC4算法得到密钥流K。加密算法对每一个像素进行模加运算得到加密图像C:
    在这里插入图片描述
    初始灰度图像M;随机产生密钥流K;n表示图像的像素个数;mi, j表示M的第i行j列个像素;Ci, j表示C的第i行j列个像素;ki, j表示K的第i行j列的值。

    加密图像C的相邻像素模减得到差值:

    在这里插入图片描述
    (在构造ki, j时, 令组成相邻像素对的ki, j相同)

    因此, di, j= (mi, j+1-mi, j) mod 256

    由上可知, 密文域像素模减的差值和明文域像素模减的差值是一样的, 差值构成差值直方图。通过多层差值直方图平移进行信息嵌入。本文提出了将图像分块通过不同的扫描方式得到最优最多峰值之和的差值直方图, 进行多层平移信息嵌入, 可以根据不同的载体图像提高信息嵌入容量。

    4.2 基于Paillier同态公钥加密与预测误差的可逆信息隐藏算法。
    同态性加密算法首先由Rivest等人所提出[12]。现有的基于Paillier同态公钥加密的可逆信息隐藏算法计算复杂度高, 运算成本较大, 例如文献[8]。于此, 文献[13]提出了一种新的加密图像的可逆信息隐藏算法, 先在原始图像预留空间嵌入秘密数据, 图像加密前, 将载体图像分为嵌入像素和参考像素, 通过嵌入像素点的四个相邻的上下左右参考像素值来计算它的预测像素值, 实际像素值与预测像素值运算获得预测误差值。把预测误差值小于阈值T的嵌入像素定位为目标像素, 可以映射成一张目标像素定位表。

    目标像素定位后, 图像进行Paillier同态加密:
    在这里插入图片描述
    再把秘密数据用相同的密钥和加密算法加密, 信息隐藏者将待嵌入的额外信息组成伪像素, 根据定位表的位置信息, 替换目标像素的值, 完成秘密信息嵌入。发送方不需要发送定位表。接收方拥有相应的密钥, 图像解密前, 都可以根据目标像素定位表来提取秘密信息。图像解密后, 可以通过四个相邻像素的预测误差值提取秘密信息并恢复图像。

    ⛄二、部分源代码

    clear
    clc
    %I = imread(‘测试图像\Airplane_1.tiff’); %Jetplane
    % I = imread(‘测试图像\Lake.tiff’);
    I = imread(‘测试图像\Lena.tiff’);
    % I = imread(‘测试图像\Man.tiff’);
    % I = imread(‘测试图像\Peppers.tiff’);

    %I = imread(‘测试图像\Airplane_0.tiff’);
    % I = imread(‘测试图像\Baboon.tiff’);
    % I = imread(‘测试图像\Tiffany.tiff’);

    % I = imread(‘测试图像\gpic1.tif’); %尺寸:512384
    % I = imread(‘测试图像\gpic2.tif’); %尺寸:384
    512
    %I = imread(‘测试图像\gpic1049.tif’);%尺寸:384*512
    origin_I = double(I);
    %% 产生二进制秘密数据
    num_D = 3000000;
    rand(‘seed’,0); %设置种子
    D = round(rand(1,num_D)1); %产生稳定随机数
    %% 设置密钥
    K_en = 1; %图像加密密钥
    K_sh = 2; %图像混洗密钥
    K_hide=3; %数据嵌入密钥
    %% 设置参数
    Block_size = 4; %分块大小(存储分块大小的比特数需要调整,目前设为4bits)
    L_fix = 3; %定长编码参数
    L = 4; %相同比特流长度参数,方便修改
    %% 空出图像空间并加密混洗图像(内容所有者)
    [ES_I,num_Of,PL_len,PL_room,total_Room] = Vacate_Encrypt(origin_I,Block_size,L_fix,L,K_en,K_sh);
    %% 净载荷空间大于num的情况下才进行数据嵌入(代表有压缩空间)
    [row,col] = size(origin_I); %计算origin_I的行列值
    num = ceil(log2(row))+ceil(log2(col))+2; %记录净压缩空间大小需要的比特数
    if total_Room>=num %需要num比特记录净压缩空间大小
    %% 在加密混洗图像中嵌入数据(数据嵌入者)
    [stego_I,emD] = Data_Embed(ES_I,K_sh,K_hide,D);
    num_emD = length(emD);
    %% 在载密图像中提取秘密信息(接收者)
    [exD] = Data_Extract(stego_I,K_sh,K_hide,num_emD);
    %% 恢复载密图像(接收者)
    [recover_I] = Image_Recover(stego_I,K_en,K_sh);
    %% 图像对比
    figure(1);
    H=GetHis(origin_I);
    plot(0:255,H);
    area(0:255,H,‘FaceColor’,‘b’)
    figure(2);
    H=GetHis(ES_I);
    plot(0:255,H);
    area(0:255,H,‘FaceColor’,‘b’)
    figure(3);
    H=GetHis(stego_I);
    plot(0:255,H);
    area(0:255,H,‘FaceColor’,‘b’)
    figure(4);
    subplot(141);imshow(origin_I,[]);title(‘原始图像’);
    subplot(142);imshow(ES_I,[]);title(‘加密图像’);
    subplot(143);imshow(stego_I,[]);title(‘载密图像’);
    subplot(144);imshow(recover_I,[]);title(‘恢复图像’);
    %% 计算图像嵌入率
    [m,n] = size(origin_I);
    bpp = num_emD/(m
    n);
    %% 结果判断
    check1 = isequal(emD,exD);
    check2 = isequal(origin_I,recover_I);
    if check1 == 1
    disp(‘提取数据与嵌入数据完全相同!’)
    else
    disp(‘Warning!数据提取错误!’)
    end
    if check2 == 1
    disp(‘重构图像与原始图像完全相同!’)
    else
    disp(‘Warning!图像重构错误!’)
    end
    %---------------结果输出----------------%
    if check1 == 1 && check2 == 1
    disp([‘Embedding capacity equal to : ’ num2str(num_emD) ’ bits’] )
    disp([‘Embedding rate equal to : ’ num2str(bpp) ’ bpp’])
    fprintf([‘该测试图像------------ OK’,‘\n\n’]);
    else
    fprintf([‘该测试图像------------ ERROR’,‘\n\n’]);
    end
    else %该图像太复杂,溢出预测误差太多,导致辅助信息大于压缩空间
    disp(‘辅助信息大于压缩空间,导致无法存储数据!’)
    fprintf([‘该测试图像------------ ERROR’,‘\n\n’]);
    end

    ⛄三、运行结果

    在这里插入图片描述

    ⛄四、matlab版本及参考文献

    1 matlab版本
    2014a

    2 参考文献
    [1]彭青梅,禹谢华.基于加密图像的可逆信息隐藏[J].信息技术与信息化. 2018,(12)

    3 备注
    简介此部分摘自互联网,仅供参考,若侵权,联系删除

    🍅 仿真咨询
    1 各类智能优化算法改进及应用

    生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

    2 机器学习和深度学习方面
    卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

    3 图像处理方面
    图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

    4 路径规划方面
    旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

    5 无人机应用方面
    无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

    6 无线传感器定位及布局方面
    传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

    7 信号处理方面
    信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

    8 电力系统方面
    微电网优化、无功优化、配电网重构、储能配置

    9 元胞自动机方面
    交通流 人群疏散 病毒扩散 晶体生长

    10 雷达方面
    卡尔曼滤波跟踪、航迹关联、航迹融合

  • 相关阅读:
    【React源码】(七)React 调度原理(scheduler)
    软件测试基础知识 —— 白盒测试
    Spring Bean 的生命周期了解么?
    分布式框架Apache Dubbo 快速入门-不古出品
    Proteus 8 Professional跑Keil uVision4的文件
    如何制作含有图表数据的页面
    网站接入微信支付后如何实现退款和取消预约?
    神经网络 04(神经网络的搭建)
    万亿产业进化论,装备企业的机会在哪里?
    HarmonyOS鸿蒙原生应用开发设计- 服务组件库
  • 原文地址:https://blog.csdn.net/TIQCmatlab/article/details/127891132