【问题标题】:A question about Steganography in images with programming关于编程图像中的隐写术的问题
【发布时间】:2011-03-14 06:22:51
【问题描述】:

在阅读了一些关于使用 Java/.NET 进行隐写术的教程后,我的印象是,您从秘密图像中获取每个单独的像素,然后将其放置在封面图像中每个单独像素的最低位。

我说的对吗?

【问题讨论】:

  • 我假设你在谈论Steganography
  • 速记还是隐写术?第一个是关于速记,第二个是关于在数字图像中隐藏信息。
  • 后者。 Firefox 会自动更正这个词,所以我认为它是“速记”。

标签: .net steganography


【解决方案1】:

Steganography 是将信息隐藏在另一个信息片段中。这里的目标是隐藏信息。

这样做的一种方法是通过将秘密存储在每个像素的最低位中来隐藏图像中的秘密信息。 虽然这可能会愚弄你的弟弟,但这是隐藏信息的一种非常糟糕的方式,因为:

  • 关心它的人都知道,因此会知道检查最低位。

  • 它改变了图像的概率属性,它会向另一个寻找“秘密”的人抛出一个危险信号。例如,请参阅 Stegdetect - 一种用于检测图像中隐写内容的自动化工具。

更安全的隐写术形式可以是写一张便条,其中一些字母的位置包含秘密信息。 诀窍是使用隐写术将信息隐藏在计算机不擅长分析的事物中(人类语言、符号的意义或意义、歌曲)。 位操纵很容易被计算机检测到。

请记住在将秘密信息放入隐写消息之前对其进行加密。这样,如果他们发现了消息,他们就不会知道您试图发送的内容,并且因为大多数密码会从非常随机的输入(人类语言、图像等)中产生相当随机的输出,如果有人正在调查该消息,他们可能会将其误认为是随机噪声。

如果您想了解更多信息,这里有一些关于隐写术的好论文:

【讨论】:

    【解决方案2】:

    是的,使用了最低(冗余/噪声)位。

    【讨论】:

      【解决方案3】:

      隐写术实际上是关于数据隐藏,无论数据是否被隐藏,或者提供掩护的东西是图像。可以使用任何具有足够冗余的数据格式。 X86 指令集就是一个很好的例子。其他地方包括文件系统的未使用部分。

      您是正确的,在使用图像存储隐藏数据时,低阶颜色位是存储它们的正确位置。但是,我建议不要尝试关联图像之间的像素。大多数图像格式从原始像素表示中提供某种压缩。最好直接从文件系统中读取隐藏图像的位流,并将这些位与主机图像中的像素相关联。这将需要更小的主机映像。

      【讨论】:

        猜你喜欢
        • 2021-12-08
        • 2015-06-02
        • 2016-05-25
        • 2014-01-24
        • 2011-02-17
        • 2011-05-10
        • 2013-04-30
        • 2012-06-08
        • 2014-02-18
        相关资源
        最近更新 更多