图像隐写综述(小白入门)

(PS:图像均来源于网络)

目录

一、基础知识

1.1 信息保护的手段

1.2 图像隐写的方法

1. 盲隐写和非盲隐写

2. 空间域隐写和频域隐写

3. 鲁棒隐写和脆弱隐写

4. 可逆隐写和不可逆隐写

5. 传统隐写和深度学习隐写

1.3 评价标准

1.嵌入容量

2.不可感知性(质量)

 3.安全性

二、空间域隐写

2.1 LSB

2.2 像素值差分(PVD)

 2.3 差分扩展(DE)

 2.4 开发修正方向(EMD)

 2.5 插值

 2.6 直方图移位(HS)

2.7 格雷码

2.8 矩阵编码 

2.9 量化调制

2.10 调色板(GIF)

2.11 自适应-校验子格码(STC)

 三、频域隐写

3.1基于离散余弦变换(DCT)的图像隐写术

1.DCT变换

2.GAR-DCT

3.基于直方图移位

3.2 离散傅里叶变换(DFT)图像隐写

1.DFT变换

 2.DFT隐写

​ 3.3 离散小波变换(DWT)图像隐写

3.4 空间域隐写与频域隐写对比

​编辑

四、可引进的技术

4.1 同态加密

4.2 压缩感知

4.3 奇异值分解

1.分形封面图象+DWT/IWT+SVD

4.4 混沌系统

1.图像扩散

2.置乱

五、流行的隐写工具

5.1 Jsteg

5.2 OutGuess

5.3 F3

5.4 F4

5.5 F5 

5.6 nsF5

六、展望


一、基础知识

1.1 信息保护的手段

1.数据加密:将数据转换成只有授权用户才能理解的形式来保护数据免受未经授权的访问和使用。

数据加密之后可能出现乱码的情况,就很有可能引起怀疑,由此图像隐写诞生。

2.图像隐写:将秘密信息、数据或消息嵌入到图像中,使得这些信息对观察者来说是不可见的。

1.2 图像隐写的方法

1. 盲隐写和非盲隐写

根据信息提取过程中是否需要原始图像可将图像隐写分为盲隐写和非盲隐写。

a.盲隐写:在盲隐写中,提取隐藏信息的过程不需要原始宿主图像。这意味着接收方只需拥有包含隐秘信息的修改后的图像(即隐写图像)和提取秘密信息所需的密钥(如果使用了密钥)。

特点:

  • 更实用:因为接收方不需要原始图像,所以在许多实际应用中更为方便和实用。
  • 隐蔽性强:由于不需要原始图像,这使得整个过程更隐蔽。
  • 技术挑战:实现盲隐写可能需要更复杂的隐写技术,以确保信息能够在没有原始图像的情况下被准确地提取出来。

b.非盲隐写:在非盲隐写中,提取过程需要原始的宿主图像。接收方必须拥有未经修改的原始图像以及隐写图像,通过比较这两者来提取隐藏的信息。

特点:

  • 更容易实现:由于有原始图像作为参考,实现起来可能更简单,提取过程也更直接。
  • 容量和鲁棒性:可以提高隐藏信息的容量和对图像处理的鲁棒性。
  • 实用性限制:在某些情况下,需要原始图像才能提取信息可能会限制这种方法的实用性。

2. 空间域隐写和频域隐写

根据嵌入方式可分为空间域隐写和频域隐写。

a.空间域隐写:直接操作图像的像素来隐藏信息。在这种方法中,信息直接嵌入到图像的像素值中。

特点:

  • 直接性:操作直观且直接,如更改某些像素的颜色或亮度。
  • 技术:最常见的技术是最低有效位(LSB)方法,其中修改了像素值的最后几位以嵌入信息。
  • 隐蔽性:如果只修改少量像素或进行轻微的修改,这种方法可以非常隐蔽。
  • 鲁棒性:一般来说,对于图像处理(如压缩、裁剪)不够鲁棒,容易受到损坏。

分类:LSB、像素值差分、差分扩展(DE)、插值、开发修正、直方图移位、格雷码、矩阵编码、量化调制、调色板(GIF)、STC(自适应)......

b.频域隐写:在图像的变换域中隐藏信息。这意味着图像首先被转换到另一个域(如傅里叶变换或小波变换),然后在该域中嵌入信息。

特点:

  • 复杂性:相对于空间域隐写,频域隐写在实现上更为复杂。
  • 技术:常见技术包括离散余弦变换(DCT)和离散小波变换(DWT)。
  • 隐蔽性:由于信息是在变换域中隐藏的,因此对原始图像的视觉影响更小。
  • 鲁棒性:相比空间域隐写,频域隐写通常对图像处理和压缩更鲁棒。

分类:DCT、DWT、DFT......

3. 鲁棒隐写和脆弱隐写

根据隐藏信息对图像处理和潜在干扰的抵抗能力,隐写技术可以被分为鲁棒隐写和脆弱隐写两类。

a.鲁棒隐写:能够抵抗各种图像处理和潜在干扰的隐写技术。在这种方法中,即使图像经过压缩、缩放、剪裁或其他形式的处理,隐藏的信息仍然可以被准确地提取出来。

特点:

  • 抵抗干扰:鲁棒隐写技术能够抵抗JPEG压缩、噪声添加、滤波等常见的图像处理。
  • 适用场景:适用于那些需要在图像传输或存储过程中保持信息完整性的场合,如版权标记或身份验证。
  • 实现复杂性:这些技术通常比脆弱隐写更复杂,可能需要更高级的算法和更多的计算资源。

b.脆弱隐写:指那些对图像处理和干扰非常敏感的隐写技术。这种方法中,隐藏的信息在图像被修改时会受到损坏或无法提取,这可以用来检测图像是否被篡改。

特点:

  • 敏感性:脆弱隐写技术对任何形式的图像修改都非常敏感。
  • 适用场景:通常用于图像完整性验证和篡改检测,例如确定图像自创建以来是否被更改。
  • 实现简单性:相对于鲁棒隐写,脆弱隐写技术通常更简单,更容易实现。

4. 可逆隐写和不可逆隐写

根据是否可以恢复出原始图像,图像隐写可分为可逆隐写和不可逆隐写。

a.可逆隐写:一种允许从隐写图像中提取隐藏信息后,完全恢复原始图像的隐写技术。这种技术在提取嵌入的信息之后不会对宿主图像造成任何永久性的改变。

特点:

  • 数据恢复:可以完全恢复到隐藏信息之前的原始状态。
  • 应用场景:适用于那些对原始图像的完整性极其重视的场合,如法医分析、医学图像处理,以及需要保持原始数据不变的研究领域。
  • 实现复杂性:相比不可逆隐写,可逆隐写技术在实现上更为复杂。

b.不可逆隐写:是指一旦信息被嵌入到图像中,即使隐藏的信息被提取出来,原始图像也不能完全恢复到其原始状态的隐写技术。在这种技术中,宿主图像经历了永久性的改变。

特点:

  • 永久性修改:隐藏信息后,原始图像不能完全恢复。
  • 应用场景:适用于不需要保持原始图像的完整性的场合,如在不太重要的图像中隐藏额外信息。
  • 实现简单性:通常比可逆隐写更容易实现。

5. 传统隐写和深度学习隐写

根据是否用到了深度学习的方法,分为传统方法隐写和深度学习隐写。传统方法的隐写分为空间域和频域的隐写,深度学习的隐写分为卷积神经网络(CNN)和生成对抗网络(GAN)。深度学习隐写方法可与传统方法的隐写相结合。

1.3 评价标准

1.嵌入容量

概念:难以察觉的嵌入的最高比特数

公式:嵌入的比特数/图像的总像素

2.不可感知性(质量)

a.峰值信噪比(PSNR):用来评估嵌入信息对图像质量造成的影响

均方误差 (MSE):衡量的是像素值差异的平方的平均值

  •  P:长
  • Q:宽
  • U:封面图像
  • V:隐写图像

意义:质量~PSNR,PSNR越高,U和V越相似

b.结构相似性指数度量(SSIM):基于对比度、亮度和结构这三个方面的比较,不仅仅基于像素值的差异,而是考虑了人类视觉系统对图像质量的感知。

参数:

  • U:封面图像 V:失真图像
  • μ:均值
  • σ:方差
  • :表示 U 和 V 的协方差

意义:计算封面图像和失真图像之间的结构相似性

c.通用图像质量指数(UIQI)

意义:UIQI的值从-1到1。当两幅图像相同时,UIQI等于1。

d.归一化互相关 (NCC) 

意义:表示两幅图像之间的相似度,两个不同图像的 NCC 值为 0,两个相同图像的 NCC 值为 1。

 3.安全性

a.接收器操作特性 (ROC)

参数:

  • True positive (TP) 表示正确分类为隐写图像 的隐写图像图像的数量。
  • False negative (FN) 表示被错误分类为封面的隐写图像的数量。
  • True negative (TN) 表示正确分类为封面的封面图像的数量。
  • False positive (FP) 表示被错误分类为隐写图像的封面图像的数量。 

b.相对熵或Kullback-Leibler散度

参数:

  • 覆盖图像(C)
  • 隐写图像(S) 

意义:评估隐写方法的安全性。两个概率分布函数之间的相对熵为零时,该技术是完全安全的。E(S||C)被视为度量 c 和 s 之间的距离。

c.像素差分直方图(PDH)

图像中相邻像素之间的差值在自然图像中通常遵循一定的统计分布,并且这种分布在隐写操作后可能会发生变化。因此,PDH可以用来检测隐写操作对图像的影响,从而评估隐写的安全性。

d.StirMark基准4.0

StirMark基准提供了一系列攻击、常见的图像处理任务。这些任务被参数化以获得操作的不同效力。封面和隐写图像都被用作输入数据集,以生成测试数据来评估鲁棒性。常见的变换是小的随机失真、旋转、缩放、自相似性和加性噪声等。

二、空间域隐写

2.1 LSB

由于像素最低位对于像素值的贡献较小,故通常用秘密数据替换封面图像的所选像素的最低位,即LSB位。

例子:

原像素:
[10010101, 01101110, 11011001, 00001111, 10101010, 11110000, 00000001, 01010101]
秘密信息:0110 1101
隐写像素:
[10010100, 01101111, 11011001, 00001110, 10101011, 11110001, 00000000, 01010101]

可选择替换掉最低的n位

嵌入:

参数:

  • A’:隐写之后的数据
  • A:原始数据
  • d:秘密数据
  • A mod 2^n:取得最低n位
  • A-A mod 2^n:最低n为置为0,其他位不变

例子:A = 1001,n = 2, d = 10

  • A = 1001(二进制表示)
  • 2^n = 2^2 = 4=100
  • A mod (2^n) = 1001 mod 100 = 01(二进制表示)
  • A' = A - A mod (2^n) + d
  • A' = 1001 - 01 + 0010=1010

提取:

例子:A’=1010,n=2,

  • A‘mod(2^n)=1010 mod 100 = 10

LSB隐写的优点:

  • 简单性:LSB隐写技术易于实现,不需要复杂的计算。

  • 容量:能够嵌入大量的信息,因为每个像素可以存储多达几位的信息。

LSB隐写的缺点:

  • 脆弱性:嵌入的信息容易被破坏,尤其是在图像进行压缩、裁剪、缩放等处理时。

  • 可检测性:简单的LSB隐写容易被隐写分析技术检测出来,因为它可能导致像素值分布的可检测变化。

2.2 像素值差分(PVD)

原理:秘密位不能在图像中的平滑区域极大地隐藏,但边缘区域(像素差大)可以容忍巨大的修改

例子:

PVD的优点:

  • 隐蔽性:由于PVD技术根据像素差分的特性来嵌入信息,它可以在不显著影响图像视觉质量的情况下隐藏较大量的信息。

  • 适应性:PVD方法可以根据图像内容的不同区域适应性地嵌入信息,使得信息隐藏更自然。

  • 鲁棒性:PVD相对于LSB方法通常更鲁棒,因为它不易受到像素值小变动的影响。

PVD的局限性:

  • 复杂性:PVD方法比简单的LSB方法在实现上更复杂。

  • 可检测性:尽管PVD在隐藏信息时更隐蔽,但高级的隐写分析技术仍然可能检测到由PVD引起的统计特征变化。

  • 对图像处理的敏感性:虽然PVD比LSB更鲁棒,但是一些图像处理操作(如压缩)仍可能破坏隐藏信息。

 2.3 差分扩展(DE)

原理:差分扩展的核心概念是对相邻像素对的差值进行修改,从而在这些差值中嵌入信息。

由以下公式:

可得:

则嵌入过程如下:

提取过程如下:

 例子:

DE的优点:

  • 高容量:DE方法可以在图像中嵌入相对较多的信息,而对图像质量的影响较小。

  • 较高的图像质量:由于差值扩展技术的使用,图像质量的损失可以控制在较低水平。

  • 适应性:DE技术可以根据像素对的差值大小来适应信息的嵌入,使其更为隐蔽。

DE的局限性:

  • 可检测性:尽管DE在某些情况下较隐蔽,但高级的隐写分析方法可能能够检测出由于差分扩展引起的统计分布变化。

  • 复杂性:相比于LSB隐写,DE方法在实现上更复杂,需要进行更复杂的计算。

  • 对处理的敏感性:虽然DE比LSB更鲁棒,但某些图像处理操作可能仍然会影响隐写信息的完整性。

 2.4 开发修正方向(EMD)

原理:通过对图像像素的小幅修改来隐藏信息,其核心概念是将信息表示为一个n维向量的方向,然后通过修改像素值来“指向”这个方向。与其他隐写技术相比,EMD在保持图像视觉质量的同时,可以隐藏较大量的信息。

1、嵌入: 载体图像X以每n个像素为一个群组分割, 并将秘密信息序列S转换为(2m+1)进制数字串

一般情况m=2:
 

例子:

2、提取:

例子:

3、EMD的优点:

  • 隐蔽性:由于EMD只需要对像素进行微小的修改,它通常不会导致视觉上显著的图像质量下降。

  • 容量:相比于LSB隐写,EMD可以在每个像素组中嵌入更多的信息。

  • 鲁棒性:EMD对某些图像处理操作有一定的抵抗力,因为信息是基于像素组的整体修改方向来编码的。

4、EMD的局限性:

  • 复杂性:EMD在编码和解码过程中比LSB隐写更复杂,需要更多的计算。

  • 对图像处理的敏感性:虽然EMD在某些方面比LSB更鲁棒,但是强烈的图像处理操作,如压缩和滤波,仍然可能破坏隐藏的信息。

  • 可检测性:高级的隐写分析技术可能能够检测出由EMD引起的统计分布变化。

 2.5 插值

原理:算法首先在原始图像上应用插值过程,然后在插值产生的新像素中嵌入秘密信息,或者利用插值过程的特定属性来隐藏数据。

1.放大:

 

2.嵌入&提取

嵌入:

提取:回归原本像素,隐写像素减去原本像素

3.例子:隐藏过程采样“之字形”,“79、128、84、101、150”是预测的值,即预留的隐写空间

  • 预测插值
  • 计算差值
  • 计算隐藏位数
  • 计算新像素

4.插值隐写的优点:

  • 隐蔽性:由于插值像素通常是从原始像素计算得出的,因此在这些像素中嵌入信息可能不会明显改变图像的视觉质量。

  • 容量:插值操作可以在图像中创造出大量的新像素,从而为隐写提供较大的容量。

  • 灵活性:插值方法有多种,每种都可以根据其特点来设计隐写策略,如最近邻插值、双线性插值或双三次插值等。

5.插值隐写的局限性:

  • 图像质量的影响:虽然插值隐写可以在不引起视觉上显著变化的前提下嵌入信息,但插值过程本身可能会影响图像质量。

  • 可检测性:基于插值的隐写可能会改变图像的某些统计特性,因此可能被专门的隐写分析工具检测到。

  • 对处理的敏感性:如果插值图像经过进一步的处理,如再次压缩或缩放,隐藏的信息可能会受到破坏。

 2.6 直方图移位(HS)

原理:利用图像像素值的分布特性来隐藏数据,同时尽量减少对图像视觉质量的影响。直方图移位通常被认为是一种高效且相对隐蔽的隐写技术。

1、嵌入

步骤:

  • 获取图像统计直方图的峰值hing与零值点(最小值)low;
  • 若零值点的像素出现次数大于0次,需记录各零值点的位置;
  • 如果最小点,将这些像素的坐标和像素灰度值重新编码为开销簿记信息(简称开销信息)。
  • 若high < low,将像素值在(high,low]的像素进行加一操作,若high > low,将像素值在[low , high)的像素进行减一操作;
  • 扫描图像,若high < low,当遇到像素值为high的像素时,若嵌入信息为1,则该像素进行加一操作,若嵌入信息为0,则该像素保持不变,若low < high,当遇到像素值为high的像素时,若嵌入信息为1,则该像素进行减一操作,若嵌入信息为0,则该像素保持不变。

例子:

  • 获取直方图: 峰值high=5     零值点low=3 
图源知乎
  • 减一操作: 像素值为4的地方变为3
图源知乎
  •  嵌入:从上到下、从左往右扫描,遇到为5的则进行嵌入操作 嵌入的信息为:110110011110010001010011
图源知乎

2、提取

步骤:

  • 扫描图像,若high < low,当遇到像素值为high + 1时,提取信息为1,当遇到像素值等于high时,提取信息为0;若 low < high,当遇到像素值为high - 1时,提取信息为1,当遇到像素值等于high时,提取信息为0;
  • 再次扫描图像,若high <low,将像素值在(high , low]的像素进行减一操作;若low < high,将像素值在[low , high)的像素进行加一操作;
  • 若在信息提取过程中有额外开销信息,则需要把对应像素的像素值改为low。 

例子:

图源知乎
图源知乎

3、HS的优点:

  • 图像质量保持:由于HS主要涉及到直方图中特定像素值的微小调整,因此对图像的视觉质量影响较小。

  • 相对隐蔽性:直方图移位技术相对隐蔽,不易被简单的隐写分析技术检测到。

  • 可逆性:在某些情况下,HS可以是可逆的,这意味着可以从隐写图像中恢复原始图像。

3、HS的局限性:

  • 容量限制:HS技术的信息嵌入容量可能受限于图像直方图的特性和选择的峰值点。

  • 对处理的敏感性:如果隐写图像经过压缩或其他形式的处理,隐藏的信息可能会受到破坏。

  • 可检测性:尽管HS较隐蔽,但高级的隐写分析方法仍可能检测出由于直方图移位引起的统计特性变化。

2.7 格雷码

三位二进制->格雷码:

  • 000(二进制) -> 000(格雷码)
  • 001(二进制) -> 001(格雷码)
  • 010(二进制) -> 011(格雷码)
  • 011(二进制) -> 010(格雷码)
  • 100(二进制) -> 110(格雷码)
  • 101(二进制) -> 111(格雷码)
  • 110(二进制) -> 101(格雷码)
  • 111(二进制) -> 100(格雷码)

可以看出格雷码特点:

  1. 两个相邻代码只有一个不同的二进制数
  2. 最大码与最小码之间只相差一位数字

由于这两个特点,在进行隐写(+1/-1)操作时,原始编码与隐写编码仅相差一位,减少失真

格雷码->二进制:移位异或,去掉最后一位,则1010(二进制)->(1111)格雷码
 

二进制->格雷码:下位异或

 例子:

嵌入:197=11000101   (取后四位)0101(二进制)->0111(格雷码)为奇数

  1. 若消息为1: 不做改变,即11000101->11000111
  2. 若消息为0: 0111=7最近偶数为6=0101(格雷码)和8=1100(格雷码),对比这两个格雷码可知,0101的修改像素小,故0101(二进制)=0111(格雷码)修改为0101,即11000101->11000101

提取:

  1. 隐写像素11000111 0111(格雷码)->0101(二进制),为奇数,则嵌入为1
  2. 隐写像素11000101 0101(格雷码)->0110(二进制),为偶数,则嵌入为0

2.8 矩阵编码 

温馨提示:看不懂矩阵部分的请直接看(1,3,2)的公式

1、矩阵编码隐写的原理如下,其实就是汉明码,看不懂图的可以直接去看汉明码的相关解释。在这里的原理是将隐写码作为目标编码,用汉明码去纠错,如果存在错误则进行改正,不存在错误则不变。用b来编码a的位置,a1的位置即b1为00...01。b即为汉明矩阵

  • 载体信息:a1,a2......a2^k-1
  • 位置编码比特数:log(2^k)
  • 秘密位为x1, x2,···,xj,···,xk
  • 在(1, n, k) :将更改 n 个载波数据中最多 1 个 LSB 以嵌入 k 位秘密信息

提取过程如下:

2、(1,3,2)的嵌入率是比较高的,故在此仅介绍(1,3,7)的情况

嵌入:

  • x1 = a1 ⊕ a3      x2 = a2 ⊕ a3     不做修改
  • x1 ≠ a1 ⊕ a3      x2 = a2 ⊕ a3     修改a1
  • x1 = a1 ⊕ a3      x2 ≠ a2 ⊕ a3     修改a2
  • x1 ≠ a1 ⊕ a3      x2 ≠ a2 ⊕ a3     修改a3

推导如下:

提取:

 例子:

3、双层矩阵编码

湿纸编码:样本分开干点和湿点,干点更适合嵌入秘密信息。自适应隐写编码

步骤:

  • 分块:设载体图像长度为L2^k,分为L块

  • 压缩:将每个像素块的 LSB 压缩为一位,使用异或操作

  • 第一嵌入通道:采取(y0, · · · , yL−1) 作为第一个嵌入通道,然后以SC( 1/2 , 1, 1) ,即在每个比特中嵌入 1 位秘密信息,修改概率为 1/2。和嵌入的秘密信息做对比,如果不需要修改,像素块只能嵌入1位秘密信息。如果需要修改,请转到第二嵌入通道。
  • 第二嵌入通道:对于需要修改的块,取当前块进行矩阵编码
  • 提取:按照第一步、第二步得到第一嵌入通道信息,按照第三步得到第二嵌入通道信息

例子:原像素(124 126 135 119  172 168 154 129  ......),秘密信息(1101....)

  • 分块(124 126 135 119, 172 168 154 129, ......)
  • 压缩:y1=0⊕0⊕1⊕1=0,y2=0⊕0⊕0⊕1=1
  • 第一嵌入通道:第一嵌入通道信息(11),则第一块需要修改以嵌入(01)
  • 第二嵌入通道:对第一块进行矩阵编码,得到需要修改第01个像素,即124+1=125(也可用上面推导的公式直接求解)

    也可用上面推导的公式直接提取

    修改之后的像素为(125 126 135 119  172 168 154 129  ......),仅修改一个像素嵌入了4比特
  • 提取:
    第一嵌入通道信息:(1⊕0⊕1⊕1,0⊕0⊕0⊕1)=(1,1)
    第二嵌入通道信息:(也可用上面推导的公式直接求解)
    从下往上读取

2.9 量化调制

主要思想:将坐标轴等间隔划分成A区间集与B区间集,区间大小为△。规定A区间集代表0,B区间集代表1,根据水印值是0或1,调整待嵌入水印的值,使其等于离自己最近的对应区间内的中间值,当检测水印时,只需判断该数值落在的区间是A集还是B集,就可以得到对应的水印信息是0或1。

直接看例子:    载体信息:[0.4 0.8 0.2]     嵌入信息:101

  • 初始坐标轴:

  • 划分:A-1,B-0

  • 调整载体信息:调整为最邻近区间中间值,即[0.5 0.7 0.1]  

  • 提取: [0.5 0.7 0.1]->[A B A]->[1 0 1]

2.10 调色板(GIF)

原理:将调色板分为一对一对的,一对当中,若前面的颜色值大于后面的则代表1,否则代表0

直接看例子: 嵌入10

  • Palette:
    Color 0: #FFFFFF (白色)
    Color 1: #000000 (黑色)
    Color 2: #FF0000 (红色)
    Color 3: #00FF00 (绿色)
    Color 4: #0000FF (蓝色)
  • 作比较:
    color0>color1:不做改变
    color2>color3:交换位置
  • 改变之后
    Color 0: #FFFFFF (白色)
    Color 1: #000000 (黑色)
    Color 3: #00FF00 (绿色)
    Color 2: #FF0000 (红色)

    Color 4: #0000FF (蓝色)
  • 提取:
    color0>color1:1
    color2<color3:2

2.11 自适应-校验子格码(STC)

STC方法的介绍请直接看PPT,PPT下载链接如下:

链接:https://pan.baidu.com/s/16E1d3BtwEEQTYcAUZscFaQ?pwd=bpml 
提取码:bpml

也可跳转一下链接查看:

【学习笔记】STC校验子格编码 syndrome-trellis code_stc(syndrome-trellis codes)—编码-CSDN博客

 三、频域隐写

3.1基于离散余弦变换(DCT)的图像隐写术

1.DCT变换

意义:空域转换频域,图像压缩标准JPEG的核心

a.一维DCT(1D-DCT):

参数:

  • F(u):频率系数
  • f(i):灰度图
  • C(u):常数比例因子 

b.二维DCT(2D-DCT):

c.JPEG压缩

  •  将红、绿、蓝(R,G,B)彩色图像转换为(Y,Cb,Cr)图像,其中Y为亮度分量,(Cb,Cr)为两个色度分量。
  • 然后将转换后的图像细分为 8 × 8 像素的非重叠块。然后在每个块上执行 2D-DCT。
  • 这会在 DCT 域中生成 64 个系数,然后对其进行量化(频率系数矩阵/量化矩阵)以减少其大小----保留低频信息,高频信息置为0。左上角表示低频系数,频率分量越来越高到右下角。
  • 然后将系数以之字形方式重新排序为一维数组,然后再进行熵编码。

2.GAR-DCT

原理:低频区域的DCT系数可以以较高的精度表示相关图像信息这一事实使我们能够将隐藏图像嵌入到DCT的高频区域,而对隐写图像的可感知性影响最小。

选取右小角全为0的区域进行隐写:

 这个方法可感知性较小,但是不能抵抗压缩,即鲁棒性较差,这是因为图像压缩过程中会舍掉后面的0,因此秘密信息的区域就被压缩掉了。

3.基于直方图移位

a.嵌入:

该公式即将DCT系数分为:

  • 可嵌入系数:用于嵌入秘密数据(1/-1)
  • 可移位系数:除可嵌入系数外的非零AC系数,将其向左或向右移动以腾出数据嵌入的空间 

公式里面的sign()即为符号函数:控制正数往右移,负数往左移,0不变(避免压缩导致的损失)

 参数:

  • l:秘密信息
  • :第b块的第i个频带

b.提取:

3.2 离散傅里叶变换(DFT)图像隐写

1.DFT变换

参数:

  • F(a, d) 是离散信号
  • f(x, y) 的频谱 x 和 y 是图像空间中的空间变量
  • a 和 b 是 DFT 域中的频率变量。 

 2.DFT隐写

原理:秘密数据嵌入到包含高频系数的部分中。如果附加数据嵌入到低频系数矩阵中,它将极大地影响恢复图像的质量。相反,如果将附加数据嵌入到高频系数矩阵中,则影响并不明显。

 3.3 离散小波变换(DWT)图像隐写

原理:将空间域图像转换为由不同频带组成的频域图像。低频波段的系数描述了图像的显纹理,而高频波段的系数显示了图像的微小纹理。因此,当低频系数发生变化时,人眼可以明显观察空间域图像的变化。相反,如果高频系数发生变化,人眼不太敏感,也不会像容易观察到变化。正因为如此,许多数据隐藏方法通过改变高频系数来隐藏秘密数据。

一级小波变换:水平分解为L和H,然后垂直分解为LL、LH、HL、HH。LL 对应于低频子带,LH 和 HL 是中级频率子带,HH 对应于高频子带。

性能:与DFT相比,基于DWT的方法提供了空间和时间信息。与 DCT 相比,它们具有较大的隐藏容量。基于离散小波变换的技术对隐写分析攻击更加安全。然而,使用DWT的隐写方法在提取准确的秘密消息方面存在局限性。这就是为什么研究人员使用秘密图像而不是秘密消息的原因。

3.4 空间域隐写与频域隐写对比

四、可引进的技术

这个章节介绍的是其他领域的技术迁移到图像隐写的方法。

4.1 同态加密

数据加密也可引入图像隐写中,常用于将秘密信息进行加密,用于提高隐写系统的安全性,尽管攻击者分析出隐写的数据,拿到的也是乱码。这里介绍的是同态加密

定义:在加密状态下执行的操作结果,可以与在解密状态下执行相同操作的结果相匹配。换句话说,同态加密允许在加密数据的同时进行计算,而无需先解密数据。

应用领域:包括数据隐私保护、安全云计算、安全多方计算

意义:加密状态下进行图像处理和传递的方式,从而确保图像中嵌入的信息得以保护,同时允许相关方在不暴露明文数据的情况下进行进一步的处理。

例子:

4.2 压缩感知

4.3 奇异值分解

定义:线性代数中一种重要的矩阵分解方法,用于分解实数或复数矩阵。SVD在信号处理、统计学、计算机科学(特别是机器学习和数据降维)、图像处理等领域有广泛应用。

SVD将任何一个m×n的矩阵A分解为三个特定的矩阵的乘积:

参数:

  • U 是一个 m×m 的正交矩阵,左奇异矩阵
  • Σ 是一个 m×n 的矩阵,对角矩阵,对角线上的元素称为奇异值
  • V 是一个 n×n 的正交矩阵 ,右奇异矩阵,也叫做PCA(主成分分析)当中的主成分

图解:

其中: 

由于后面的奇异值较小,可以进行忽略,对整体结果的影响不大。这就是数据压缩的原理,故我们将信息隐藏到奇异值大的地方,就可以鲁棒性隐写:
 

SVD的特点:

  • 通用性:SVD适用于任何形状的矩阵,无论是方阵还是非方阵。
  • 稳定性:SVD是一种稳定的矩阵分解方法,即使在矩阵元素存在微小扰动的情况下,其分解结果也相对稳定。

以下介绍两种奇异值运用到图像隐写的方法:

1.分形封面图象+DWT/IWT+SVD

(1)分形图像

 定义:分形是几何对象,在放大到无限水平的不同水平上表现出结构自相似性,其分形维数超过拓扑维数;使用迭代非线性函数对许多分形结构(自然和人工)进行建模;例如:许多自然结构,如蕨叶、山结构、河流侵蚀模式、海浪、树木、雪花等

方法:

  • Julia 集

  •  Mandelbrot 集:几个连接的 Julia 集的集合

 (2)隐写

利用密钥K1、K2获得分形封面图象:

  • 其中α为实部,β为虚部 

对封面图像和秘密图像进行SVD,然后获得嵌入奇异矩阵:

  • 其中α决定图像的感知质量的嵌入强度或比例因子,并基于 HVS 模型决定 
  • 由此得出,提取奇异矩阵如下:

    其中为隐写图像的奇异矩阵

隐写图像是利用秘密图像的U、V和嵌入奇异矩阵进行重构的,得到Ss,具体流程如下: 

4.4 混沌系统

1.图像扩散

定义:通过改变原始图像的像素值,使其在加密后的图像中更难以被分析、破解或恢复原始内容

嵌入:扩散算法通过异或运算借助于伪随机矩阵 X 将明文图像 P 转换为矩阵 D

  • D=P XOR X ,D:隐写矩阵,P:封面图像,X:秘密信息

提取:反向

  • P=D XOR X,D:隐写矩阵,P:封面图像,X:秘密信息

2.置乱

定义:改变图像中像素的位置或值来扰乱图像的结构,使其难以被理解或还原

(1)arnold置乱:

加扰:

解扰:

参数:

  • (xn,yn)是像素的原始位置,
  • (x',y')是置乱后的位置,
  • a,b可以自己进行指定。
  • mod(N)是指对N取余,
  • N为图像的长或宽。 

 (2)Hilbert置乱

原始图像:

置乱之后的图像:

即 :

五、流行的隐写工具

5.1 Jsteg

1. Jsteg是一种DCT系数的LSB嵌入方法;
2. Jsteg隐写方法将秘密信息嵌入在量化后的DCT系数的LSB上,原始值为0、+1的DCT系数例外;以之字形的方式在整个封面图像中嵌入隐形位
3. 提取时,也只是将含密图象中不等于0、+1的量化DCT系数的LSB取出

  • 优点:简单易实现
  • 缺点:可以被卡方分析方法分析出来,隐写容量小(DCT系数矩阵含有大量的0),出现值对现象

5.2 OutGuess

  1. 是 JSteg 算法的增强版本。它在PRNG(随机数生成器)的帮助下分散整个图像上的嵌入位置。
  2. 载体图像和载秘图像利用同一个种子生成伪随机数

5.3 F3

增强抗检测性:解决Jsteg的值对现象

替换规则:绝对值-1

  • (1)跳过0;
  • (2)若AC系数为2i,秘密比特为0,该系数不变;
  • (3)若AC系数为2i,秘密比特为1,且i>=0,该系数变为2i-1;
  • (4)若AC系数为2i,秘密比特为1,且i<0,该系数变为2i+1;
  • (5)若AC系数为2i+1,秘密比特为1,该系数不变;
  • (6)若AC系数为2i+1,秘密比特为0,且i>=0,该系数变为2i;
  • (7)若AC系数为2i+1,秘密比特为0,且i<0,该系数变为2i+2;
  • (8)若AC系数变为0,则该秘密比特需要重新隐藏。

提取规则:读取非零系数上的LSB即可 

  • 劣势:向0收缩、偶数分布增加
  • 优势:F3算法成功抵抗了卡方攻击和RS攻击

5.4 F4

原理:正奇数和负偶数代表秘密消息1、负奇数和正偶数代表秘密消息0,不一致则绝对值减一

提取:正数直接取LSB,负数取LSB再取反

劣势:向0收缩 

5.5 F5 

原理:基于矩阵编码+DCT

(1)取出n个非0的DCT系数,用正奇数和负偶数代表1、负奇数和正偶数代表0,组成一 个向量a;
(2)取出待嵌入的k比特秘密数据,计算是否需要修改a,如果无需修改(r=0),则返回第 一步,继续下一组嵌入;
(3)如果需要修改(r不为0),将要改动的DCT系数绝对值减1,符号不变;需要检验修改 后的DCT系数为0(收缩):

  • 如不为0,则返回第一步,继续下一组嵌入
  • 如为0,则以上操作无效,要重新取出n个非0的DCT系数(原来的n个DCT系数中的一个变 为0,所以新取出的DCT系数包含原来的n−1个系数和一个真正新的DCT系数),再次嵌入这k比特秘密数据。

5.6 nsF5

nsF5算法首先将置乱后的DCT系数进行分段之后,将零系数作为湿点,将非零系数作为干点进行湿纸编码。这样接收者只需要用共享的编码矩阵提取信息,而无需关心0的可能产生情况。

优势:解决了F5的收缩问题

六、展望

1、自适应隐写技术可以减少失真,提高安全性。通过结合一些优化技术也可以实现高隐蔽性。 使用空间和变换域方法的混合技术,可以用于结合这两种方法的优点。
2、基于变换域的技术比基于空间域的技术具有更高的安全性。然而,如何提高变换域的嵌入能力是一个非常困难和具有挑战性的任务。高容量的隐写技术在变换域失真最小的情况下受到高度鼓励。
3、隐写技术可以利用视频作为掩护媒体来隐藏大量的秘密数据。
4、因为顺序嵌入对统计攻击是弱的。利用PRNG的不同种子生成算法可以改进非顺序嵌入技术。基于图像特征实现非顺序嵌入效果更好。
5、量子隐写是一个新兴的研究方向,它可以实现可逆和不可逆的隐写技术。
6、从目前讨论的最先进的深度学习方法来看,基于GAN的框架似乎是最有希望的。基于GAN的框架的进一步变体,如Wasserstein GAN (wgan), CycleGANs等,可以提出用于隐写。 此外,基于GAN的隐写技术在JPEG领域的应用也是一个有待探索的研究方向。
7、与实际相结合,将图像隐写用于解决某一领域的问题。 

  • 33
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值