【问题标题】:Estimation of Cover File for Image Steganography图像隐写术封面文件的估计
【发布时间】:2019-10-30 14:37:32
【问题描述】:

我对图像隐写术感兴趣已经有一段时间了,过去使用过 steghide (Linux)。我想知道是否有一个(相当)简单但粗略的计算器或计算方法可用于确定给定嵌入式文件的封面文件需要多大。 (抱歉,我在这里使用 steghide 术语)。

例如,假设我有一个 1024x768 的图像(嵌入文件),我想尝试将它嵌入到一个文件(steg 文件)中,我必须找到一个足够大的图像(封面文件),以便 steghide 做到这一点魔术。

我开始了

  1. 1024 x 768 = 1497088 像素 (~300KB)
  2. 1497088 像素需要 RGB 值(每种颜色 8 位?)= 2.48E13 位
  3. 2.48E13 位 = 24GB

...正如您所看到的,从这一点开始,它变得有点粗糙,因为(通过一些测试)我显然能够将 316KB 的图像隐藏到一个 24GB 文件大小的 1% 的文件中,所以我的计算已经很差了。

所以想知道是否有一个“通用”经验法则可用于估算预期图像所需的文件大小?我很欣赏它取决于许多其他因素(封面图像和嵌入的颜色深度等)......

【问题讨论】:

    标签: steganography


    【解决方案1】:

    首先,每种算法隐藏信息的方式不同,因此“隐写术”容量没有通用公式。

    在您的情况下,您似乎以每像素 1 位的嵌入容量将整个图像隐藏在封面文件的像素中。您必须隐藏的总位数为 1024x768x24 = 18874368。我不知道您是如何得到 1e13 数量级的结果,但这就是您出错的地方。顺便说一下,24是假设RGB图像的结果,其中每个像素有3个颜色平面,每个颜色有8位。

    假设封面图像和秘密图像具有相同数量的色平面,封面图像必须至少比秘密图像大 8 倍。因此,对于 1024x768 的秘密尺寸,封面可以是 4096x1536、8192x768 或 1024x6144 等。

    直接嵌入像素数组就像嵌入一个未压缩的bmp文件。您可以通过首先将图像转换为 png 并嵌入该文件的字节流来实现相同的目的,这应该会产生更小的有效负载。如果您不介意有损压缩,Jpeg 应该会生成更小的文件。

    【讨论】:

    • 非常有趣,谢谢@Reti43。我可以使用的最小封面文件是嵌入文件的 x50(分辨率),虽然您的计算很有意义,但我猜 steghide 并没有使用最有效的嵌入方法(而且我一直使用 JPEG 来保持文件尽可能小)
    猜你喜欢
    • 2014-09-03
    • 2018-08-01
    • 2011-02-17
    • 2015-06-02
    • 2014-01-24
    • 2014-02-18
    • 2018-07-02
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多