结合2D Logistic 映射与2D-DCT 的数字图像隐藏技术①
2022-06-27程东升隆广庆朱小玲
程东升, 隆广庆, 朱小玲
计算机和智能通信技术的快速发展, 使得信息的传播、共享也变得越来越便捷, 但同时对信息安全的问题提出了新挑战. 而传统信息安全的保障手段——密码术能有效地保障信息安全, 但是进入移动互联网、大数据时代, 传统的加密技术也暴露出其中的不足, 因为加密数据是异常数据, 容易成为数据分析挖掘的重点目标, 从而容易引起大量的攻击. 因此大家又把目光投向一种古老的技术——信息隐写技术(信息隐藏技术)[1-10], 信息隐藏技术其实自古就有, 例如在古代为了隐秘地传递机密信息, 会把传递信息的士兵剃光头后写上军事机密, 然后等他的头发长长后传递信息,接收时再剃光那位士兵的头发就能看到机密信息. 而在计算机时代, 则对信息隐藏技术提出更高的要求, 信息隐藏不仅要让人肉眼无法分辨, 而且要实现对抗计算机视觉识别.
混沌系统具有对初始条件和控制参数敏感、伪随机和不可预测性等一系列特性, 这些特性与密码学的要求相一致. 因此, 混沌系统经常被用在图像加密中[11-15],利用混沌系统产生的混沌序列对图像进行扩散与混淆,从而达到加密的效果. 而通过 2D-DCT, 可以把图像的主要能量集中在左上角, 这样只要把秘密图像的信息替换除左上角外的其它地方, 就既能减少失真度, 又达到良好的隐藏效果.
本文首先利用二维 Logistic 映射生成的混沌序列对秘密图像进行扩散, 从而改变秘密图像的像素值, 然后再利用混沌序列生成的置乱矩阵对扩散后的图像进行置乱. 接着分块对载体图像进行 2D-DCT, 并根据混沌系统产生的混沌序列自适应地把置乱后图像的信息替换每块变换DCT 后的右下角, 然后对替换后的矩阵进行 2D-IDCT, 从而得到隐密图像. 我们的算法不论在扩散与置乱阶段还是替换隐藏阶段都受到混沌系统的控制, 从而所提算法对密钥非常敏感. 在实验中, 我们采用峰值信噪比(PSNR)、均方根误差(RMSE)与结构相似性(SSIM)这3 个指标, 从不同角度来衡量载体图像与隐密图像相似度, 能全面准确地反映本文算法所得隐密图像的失真度. 实验结果表明, 载体图像与隐密图像的PSNR达到62.615,RMSE为0.188 7, 而SSIM等于0.999 7, 这些都反映了算法良好的隐藏效果. 与现有的隐藏算法相比较, 我们算法的PSNR更大, 从而说明我们算法具有更优的隐藏性能.
1 二维Logistic 映射与2D-DCT
1.1 二维Logistic 映射
1.2 二维离散余弦变换
2D-DCT 是与傅里叶变换相关的一种变换, 它类似于离散傅里叶变换, 但是只使用实数. 因此, 在对语音、图像信号变换中, 2D-DCT 变换被认为是一种准最佳变换. 通过2D-DCT 可以将图像信号从时域映射到空间频率域, 使得图像在时域所表现出的能量发散形式变换为频域能量相对集中的形式, 以便与对图像信息进行各种处理. 2D-DCT 将图像的主要能量集中在左上角, 这样可以将秘密信息嵌入到中高频的右下方, 且能有效地减少载体图像的失真度.
2D-DCT 的公式为:
图1 二维Logistic 映射的分岔图
2 图像隐藏方案
3 实验结果与分析
众所周知, 图像的直方图反映了像素的统计特性.因此, 若对于加密算法, 加密图像的直方图越趋于均衡则说明加密效果越好; 若对于图像隐藏技术, 嵌入秘密图像后的隐密图像与载体图像的直方图越接近则说明隐藏效果越佳. 图3(a)和图3(b) 显示了秘密图像预处理前后图像的直方图, 其中, 图形底部的灰度条表示Lena图像的灰度级, 0 代表黑色, 255 代表白色, 而0-255之间的数值代表不同级别的灰度值. 如图可直观看出预处理后的直方图呈现均匀化, 因此窃取者无法通过密文的直方图获得秘密图像有效的统计信息. 图3(c)和图3(d) 为载体图像和隐密图像的直方图, 由图可看出载体图像与隐密图像的直方图肉眼观察几乎完全一致的, 这说明所提算法的隐藏效果非常好.
图3 直方图
为了检测算法抗剪切能力, 对隐密图像做剪切攻击实验. 图4(a)-图4(c)分别剪切了隐密图像的1/64,1/16 与1/4 的像素, 而图4(d)-图4(f)则是它们对应恢复的图像. 由实验结果可看出所提算法能有效地把剪切攻击的影响控制在局部的范围, 从而受到攻击后仍能有效地恢复大部分秘密图像的信息.
图4 剪切攻击及恢复的图像
由它们的定义, 可以看出它们的PSNR值越大或RMSE值越小, 说明两幅图像越接近, 即两幅图像的相似度度越高.
利用PSNR,RMSE与SSIM定义的计算方法, 通过计算可得出4 组图像的PSNR,RMSE和SSIM的值并列于表1 中. 4 组图像有秘密图像与预处理后图像的对比, 载体图像和隐密图像的对比, 秘密图像与正确密钥恢复图像的对比, 以及错误密钥恢复图像与秘密图像的对比.
表1 效果分析
通过表1 的实验数据可以看出, 秘密图像与预处理后图像的PSNR较小,RMSE较大,SSIM接近于0,这些都说明秘密图像与预处理后的图像差别很大, 是完全不一样, 从而验证了对秘密图像预处理的加密效果好; 载体图像和隐密图像的PSNR大于30 (PSNR大于30 时, 人眼就无法分辨),RMSE较小, 而SSIM接近于1, 3 个指标结果都说明了这两幅图像的相似度很高,这证明了所提算法的图像隐藏效果很好; 秘密图像与正确密钥恢复图像的PSNR趋于无穷大,RMSE的值等于0, 而SSIM接近于1 , 都说明这两幅图像是完全一样, 即秘密图像能完全恢复; 错误密钥恢复图像与秘密图像的PSNR较小,RMSE较大, 而SSIM接近于0, 这表明错误密钥恢复的图像与秘密图像完全不一样, 即所提算法对密钥非常敏感, 密钥的微小扰动(1 0-14)则不能从恢复的图像中得到有效的秘密图像信息.
一般而言, 隐藏算法的嵌入容量越大, 则对应的载体图像失真越明显, 即对应的PSNR的值越小. 因此,对于不同的隐藏算法若其中有一种算法的嵌入容量最大, 而其对应的PSNR的值也最大, 说明该隐藏算法的隐藏效果比其它算法好. 从表2 可以看出, 我们所提算法、林纯等的算法[16]、冯丹青等的算法[17]与翁子盛的算法[18]在采用相同大小的 Lena 作为载体图像, 不同的嵌入容量的条件下, 我们所提算法在嵌入容量比其它3 种高的情况下, 对应的PSNR的值却明显高于其他算法, 这表明我们所提算法的隐藏效果更好.
表2 不同算法比较
4 结束语
本文提出了一种基于二维 Logistic 映射与 DCT 的分块图像隐藏算法. 首先对秘密图像进行预处理, 利用二维 Logistic 映射产生混沌序列对秘密图像进行扩散与置乱操作, 从而达到对秘密图像第一重保护的目的.然后通过 DCT 把预处理后的加密图像的信息分存在载体图像中以达到信息隐藏的效果, 从而对秘密图像起到第二重保护的作用. 实验结果表明, 本文所提算法具有良好的抗剪切效果, 隐藏效果也非常好, 并且可以实现秘密图像的无损复原.