【问题标题】:what's the best practice for image steganography resistant to various attacks? [closed]图像隐写术抵抗各种攻击的最佳实践是什么? [关闭]
【发布时间】:2023-04-10 18:39:01
【问题描述】:

我真的很好奇,因为现在每个频道都可以修改或压缩图像,这可能被视为对隐写术的攻击。

我们可以将隐写术分为两种基本类型,第一种是对图像的空间域进行操作,第二种是对某种变换域进行操作。

以下类型的攻击是我感兴趣的,因为它无处不在(如果您想在 facebook 上保存图像,或者如果您想创建图像的缩略图,或者如果您要将图像保存在移动平台上,等):

  1. 图像的压缩或重新压缩 - 主要用于 JPEG 图像或 带有 alpha 预乘的 PNG 图像。
  2. 调整或缩放图像和几何操作 - 我的意思是 图像的转换而不是压缩它,例如旋转 图片、更改比例等。

我想问一下:

  1. 根据你们保护嵌入式的最佳方法是什么 压缩图像中的消息(如 JPEG 格式)? “无限”怎么说 使用隐写术嵌入消息后重新压缩图像 机制?它仍然是可读的消息吗?
  2. 嵌入消息的阈值在哪里? 调整图像大小(如果有)?在我看来,隐写术是 对图像大小的调整比压缩或压缩更敏感 旋转或为图像添加噪点。什么是最好的方法 隐写术对您调整图像大小有抵抗力吗?我的意思是有 总是一个边缘,我们不能不丢失信息,但 应该有一些门槛。
  3. 图像处理的组合如何通过第一和 第二点?

我阅读了许多关于抗压缩图像隐写术的论文,基本上他们总是使用纠错码和汉明距离来获得我们能够在不丢失信息的情况下隐藏的阈值(或如何在有损通道中获取信息) )。然后第一步是使用汉明距离将我们的消息冗余隐藏到空间域。例如,对于 RGB 图像,我们将选择一个三元组作为一位载体,并修改我们的三元组颜色是一种使汉明距离位于边缘“中心”的方式。我们可以将其作为重复纠错码或任何其他代码(最佳实践是 F5 中的汉明码)。

这背后的想法是,我们在 JPEG 压缩图像上计算出的汉明距离的纠错代码将确保在多次应用 JPEG 压缩后嵌入的信息仍然存在。当然,所有这些都是以图像容量为代价的,而我们通过纠错码使用冗余。

该方法的示例链接在这里: http://www.cs.unibo.it/babaoglu/courses/security/resources/documents/Steganography.pdf

我对数字图像的水印技术了解不多,但可能我们可以找到有关该主题的指导,因为水印的目的与隐写术几乎相同。我们正在尝试在数字图像中保留版权信息,或者我们正在尝试在上述各种情况下保护我们隐藏在图像中的信息。

我想讨论并询问您有关当今通过隐写术保护数字图像中信息的机制。我们可以分享我们的想法或示例代码,让世界变得更美好。

【问题讨论】:

    标签: image compression watermark steganography


    【解决方案1】:
    1. 您的第一个问题是关于去除图像中的“噪声”(当然是隐藏位)的有损方法。你可能不得不用冗余来分散它。 LSB 可能无法正常工作,因为必须分配位的位置。这意味着,这些位可能必须重复位于位的各个部分,这样,即使其他副本已损坏,您也可以恢复消息。您可能希望添加一个散列以确保消息没有损坏(尽管散列本身的概率可能)。但是冗余和更广泛的分布可能会给你一个很好的生存机会。

    2. 一个想法可能是使用经过验证的加密方法,如 AES 或 ECC(密钥管理将是另一个主题)。这将使您的数据位“像噪音”。位置索引也可以通过类似的方式来确定。原则是创建均匀分布,以阻止数据和位位置的可预测性或过去相关性。

    我希望这可以为您的隐写设计考虑提供一些指导。

    【讨论】:

    • 我试图实现一个简单的算法来抵抗 JPEG 压缩。首先,我尝试将图像像素中的所有 LSB 修改为 1 并将其保存为 JPEG。之后,我尝试使用重复代码恢复 1,看看这个简单的代码是否为图像添加了足够的冗余,以便恢复这些 1。但事实并非如此,用于此目的的重复代码不健壮,无法使用。
    • 我尝试过的另一种算法是以下文章中描述的算法:http://nas.takming.edu.tw/chkao/lncs2001.pdf。但作为那篇文章的作者,我还没有取得成果。结果比使用重复代码更好,但它不能用作跨互联网压缩网关的可靠算法。每次压缩或重新压缩图像时,消息很可能会被破坏。
    • 我认为没有办法构建可靠的隐写算法,其中隐藏的消息可以在各种 JPEG 压缩选项中幸存下来,因为算法和使用的压缩方法之间总是存在关系。当我构建压缩网关并且每张图片都会通过它时,我将销毁其中的每条隐藏消息,无论使用什么算法。或者你知道一些可行且可以生存的算法吗?
    • @user1563721,如果您想采用这种方法,您可能必须考虑计算稳健性。隐写术对各种攻击的抵抗力通常取决于冗余。悖论还在于数据隐藏取决于冗余的可用性。在某些数据被破坏的情况下,冗余提供了攻击抵抗力。例如,如果我想确保没有数据隐藏,我可以清除每个像素的 3 到 4 位,看看距离图像质量是否可以接受。您“渴望的可恢复数据必须能够幸存下来”。
    • 我还建议您了解自然界中的图像,例如。一阶分布。检查不确定性:I(X) = log(1/P(X)) = -log(p(X)); I(x) -> 0 表示高确定性。如果图像具有高熵,则可以隐藏更多细节。这样,检查熵,H(X) = sum(p(X)*I(X)) 从 X = 1 到 2^B,其中 B :=numberOfResolutionBits。还要根据人类感知检查熵,即。到不可接受的图像退化程度,熵仍然很高以包含目标图像或数据。
    猜你喜欢
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 2011-11-21
    相关资源
    最近更新 更多