Finding Incompatible Blocks for Reliable JPEG Steganalysis

Etienne Levecque , Jan Butora , and Patrick Bas

摘要

​  本文提出了一个质量因子为100的不兼容JPEG图像的改进概念。它可以检测到在DCT系数中嵌入的隐写方案的存在。我们表明,在JPEG管道中,DCT变换与量化函数的结合可以将像素域中的多个块映射到DCT域中的同一块。然而,并不是每个DCT块都可以获得:我们称这些块不兼容。特别是,当手动修改DCT系数以嵌入消息时,可能会发生不兼容性。我们证明了区分兼容块和不兼容块的问题是一个有解的反问题,并提出了两种不同的方法来解决它。第一个是基于启发式的,如果它存在,就可以快速找到解决方案。第二种是整数线性规划问题,只能在合理的时间内检测到特定DCT变换的不兼容块。我们证明了一个块变得不相容的概率只依赖于修改的数量。最后,利用启发式算法,我们可以根据每幅图像的兼容块的数量得到一个似然比检验来执行步进分析。我们模拟了这个测试的结果,并表明,它仅使用256×256图像的10%的块,在0.001和0.01 bpp之间的每个有效负载上都优于深度学习检测器e-SRNet。一个选择通道感知的测试版本甚至更强大,性能优于e-SRNet,而只使用了1%的块。

I.介绍

​  在隐写术中,主要目的是将信息隐藏在无害的媒体中,比如被称为封面媒体的图像或视频。为了确保安全,隐写术信息需要无法从执行步骤分析的人那里检测到,即试图通过分析它们来区分封面和阶梯媒体。这个在隐写师和步骤分析人员之间的猫捉老鼠的游戏非常依赖于许多参数,例如用于隐藏消息的媒体格式、有效负载大小或所使用的嵌入方案。在本文中,我们关注JPEG格式,它具有较好的压缩性能,并且在不同的软硬件实现中广泛应用,仍然是数字图像最常用的压缩方案之一。我们针对一类修改JPEG图像的量化DCT系数的嵌入方案。这代表了各种各样的嵌入方案,如JSTEG[16],1995年开发的[21],或流行的学术方案,如JUniward [13]或UERD [11]。
​  在本文中,我们提出了一种利用已知压缩管道的JPEG图像压缩特性的方法,该方法可用于检测所有改变JPEG量化DCT系数的隐写算法的消息。这个属性的主要思想相当简单:给定一个(压缩)管道和一个以JPEG格式编码的图像,我们想知道编码的图像是否是这个管道的输出。

image-20250327213437876

图1。2D JPEG压缩的说明,说明不兼容攻击。使用两点DCT算法(3)将每个1×2像素的块(左图)映射到DCT空间(右图)中的一个点。我们可以看到,压缩不是满射的,这意味着DCT空间中的一些块(由孔表示)在像素域中没有任何前因。另一方面,在压缩过程中,一些像素块被映射到同一个DCT块。在具有64个维度的标准JPEG块中,我们观察到相同的特性。该攻击利用了这样一个事实,即在嵌入过程中,会创建一些不兼容的块。

​  这个问题,如图1所示,可以看作是一个反问题,因为如果我们能找到一个管道的输入图像,作为输出的观测图像,那么我们就可以得出输出图像与管道兼容的结论。相反,如果没有输入生成输出图像,那么它与此管道不兼容。在我们的例子中,这意味着被检查的图像已经被嵌入算法篡改,因此它与压缩方案不兼容。
​  本文研究的不相容性与JPEG压缩管道有关,但不仅是因为它也可以用于任何使用DCT变换和量化DCT系数的量化步长接近或等于1的编码方案。这意味着这种方法可以潜在用于编码方案,如静态图片的HEIC,或用于移动图片的H26x类编码方案。
​  请注意,从隐写分析的角度来看,检测不兼容的图像非常有趣,因为在这种情况下,steganalyst,Eve不必面对潜在的误报。如果她了解压缩管道并且可以在图像中找到至少一个不兼容的块,她确信图像是Stego。因此,能够检测不兼容的图像与执行可靠的隐写分析有关。
​  不兼容性的概念是步骤分析中最早的策略之一,并于2001年在Fridrich等人的开创性论文[10]中引入,当时信息隐藏在解压缩的JPEG图像中。在这种情况下,观察到的图像是以前在JPEG中压缩的像素图像,由于隐写嵌入而对像素值进行了一些潜在的修改。因此,所研究的管道是JPEG解压缩方案。为了重新压缩图像并检测嵌入,他们一边使用像素格式的测试图像之间的差信号,另一侧使用重新压缩解压缩图像之间的差信号。
​  几年后,在Butora和弗里德里奇的论文[7]中引入了反向JPEG兼容性攻击(RJCA),用于将消息嵌入高质量JPEG的DCT域的情况,即等于100接近100的质量因子。对于这种攻击,输出图像是JPEG压缩图像,而管道是JPEG压缩图像。作者使用解压缩图像的舍入误差作为参考信号来检测嵌入,可以通过简单地计算信号的方差(嵌入后增加),或者使用深度神经网络,如e-SRNet [7]。
​  请注意,不兼容性也被用于数字取证,以检测篡改操作。在解切割过程中使用的不同类型的插值之间的不兼容性是由Kirchner 和Böhme [15]在2009年提出的。 Vázquez-Padín等人[20]提出了一种更一般的方法来检测重采样信号和与插值管道相关的不兼容性,当采样管道——这里是插值核时,使用集合隶属度方法来估计重采样因子。阶梯分析中一个常见的假设称为选择通道感知(SCA),在Denemark等人的论文[9]中首次用于改进现有的检测器。这个假设假设执行步进分析的代理知道在嵌入过程中覆盖元素被修改的概率。在我们的例子中,这些元素是DCT系数,这个假设也可以用来选择更有可能被修改,因此更有可能不兼容的块。
​  阶梯分析中一个常见的假设称为选择通道感知(SCA),在Denemark等人的论文[9]中首次用于改进现有的检测器。这个假设假设执行步进分析的代理知道在嵌入过程中覆盖元素被修改的概率。在我们的例子中,这些元素是DCT系数,这个假设也可以用来选择更有可能被修改,因此更有可能不兼容的块。
​  这一贡献的大纲如图2所示,其中也突出显示了与论文的不同部分的联系。

image-20250327214627180
  • 由于不兼容性源于JPEG压缩管道,因此在第二节中介绍了不同类型的压缩机,包括不同的DCT转换实现以及不同的舍入函数。与嵌入方案的潜在使用相关联的压缩机产生的盖或台阶块。
  • steganalyst分析了产生的图像DCT块,并试图解决第三节中定义的一个反问题,以在像素域中找到测试块的前因。提出了两种寻找前因的方法。第一个使用一个启发式函数,它被最小化来找到兼容的块。第二个是求解整数线性规划(ILP)问题,该问题可以很容易地为一个特定的JPEG格式,并可以用于检测不兼容的块。从启发式中,可以设计一个定时攻击,它可以看作是[17]中提出的不同优化过程和不同JPEG压缩机的扩展。
  • 时间攻击最终可以作为一个基于在图像中发现的兼容块或超时块的数量的假设检验。提出了不同的策略来选择块的子集,从而更有效,并与第六节的SOTA深度学习方法进行了评估和比较。

​  请注意,要进行阶梯分析,Eve唯一需要拥有的材料是,在图2中用红色表示:

  • JPEG压缩机的知识可以通过法医分析确定,或根据克尔克霍夫原理假设已知,
  • 要分析测试图像的样本块,
  • 另外,嵌入方案的知识可以用来使用SCA方法来选择最佳的候选块。

​  本文与[17]有一些联系,提出了兼容性的主要特征及其与定时攻击的潜在联系。然而,也有许多不同,其中包括:快速启发式方法和用于提供结果在第四节和第六,似然比测试的设计部分vb,选择选择通道意识测试使用适当的之前,和与SOTA在深度学习阶梯分析部分六。与最初处理RJCA [7]的工作不同,所提出的方法在本质上不是统计学的,而是利用了JPEG格式的硬约束,因此不会出现假阳性。此外,我们还表明,所提出的似然比检验在第VI-B节中优于RJCA中使用的最佳深度学习检测器。
​  我们所有的代码都可以在我们的git存储库中找到。(https://gitlab.cristal.univ-lille.fr/elevecqu/incompatible-jpeg-blocks)

II.JPEG压缩

​  本节的目标是用数学方法形式化JPEG压缩管道。这种形式化将允许我们搜索JPEG块的可能前因。首先定义符号,然后给出了最流行的JPEG压缩实现——libjpeg实现[14]的不同步骤。

A.符号和数学公式

B.关于实现的详细信息(libjpeg)

III.JPEG块的不兼容性

​  本节中定义了不兼容性问题。一段是专门给一个二维玩具的例子,它给出了这个问题的几何解释。我们用两个公式推导出两种算法来证明一个块是兼容的。第一个是基于启发式算法的。第二个问题依赖于更强的假设来推导出一个整数线性规划问题,可以用数值求解器来解决。