图像隐写术的封面文件估计

时间:2019-06-17 01:51:00

标签: steganography

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

例如,假设我有一个1024x768的图像(嵌入文件),我想尝试将其嵌入文件(steg文件),则我必须找到一个足够大的图像(封面文件)以供steghide进行操作魔术。

我从

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

...并且您可以看到,从现在开始,它有些麻烦了,因为(通过一些测试)我可以将316KB的图像隐藏到文件中,该文件大小是24GB文件大小的1%,所以我的计算已经很遥远了。

因此,您是否想知道是否存在“通用”经验法则可用于估计所需图像的文件大小?我确实感谢这取决于许多其他因素(封面图像和嵌入图像的颜色深度等)...

1 个答案:

答案 0 :(得分:1)

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

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

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

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