Android隐写术检测LSB

Android steganography detection LSB

我正在尝试使用移动设备上的实时摄像头检测 LSB 隐写术 phone。到目前为止,无论是在打印 material 还是在 PC 屏幕上,我都没有成功检测到 LSB 隐写术。

我尝试使用 OpenCV 并将每个帧转换为 RBG,然后从每个像素读取位,但从未检测到隐写术。

我也尝试使用相机功能,并检查 onFrame 是否逐个像素地识别起始字符串,这样我就可以读取剩余像素中的实际隐藏数据。

这提供了几次阳性结果,但随后无法读取数据。

有什么解决方法的建议吗?

关于隐藏数据的更多信息: 1. 它遍布整个图像,我知道该算法有效,因为如果我只是通过应用程序中的位图读取准确的图像,隐写术就会被检测和解码,但是当我尝试使用相机时就没有这样的运气了。 2. 它在一个网格中,8x5像素遍布整个图像,所以它不是只在图像的1个特定区域上,并且在相机视图中无法检测到它。

如果需要,我也可以 post 一些代码。

谢谢。

您仍然没有阐明具体的操作方式,但我假设您做了以下一些操作:

  • 在数字图像中嵌入秘密,
  • 打印此隐写图像或将其显示在电脑上,并且
  • 拍张照片并检测嵌入的秘密。

出于所有实际目的,这行不通。 LSB 像素嵌入隐写术是一种非常脆弱的技术。您需要一个完美的隐写像素图像副本才能进行提取。即使是简单的数字操作也足以破坏您的秘密。缩放、裁剪和旋转仅举几例。然后你必须担心你拍摄照片的角度和环境光。我们甚至没有涉及电脑显示器或打印照片上显示的颜色。

您对起始序列获得肯定的唯一原因是因为您使用了一个短序列并且您一定很幸运。假设拍摄的隐写图像导致每个像素与其真实值的随机偏差,有时您仍然会很幸运。假设第一个像素的值为 250,拍摄后为 248。好吧,两种情况下的 LSB 仍然是 0。

最重要的是,一些序列更有可能出现。在大多数照片中,相邻像素是相关的,因为颜色渐变是平滑的。这意味着如果照片的左上角较暗而右上角较亮,则颜色会缓慢变化。例如,前 4 个像素的值为 10,接下来的几个像素值为 11,依此类推。就 LSB 而言,你有模式 00001111,正如我刚才解释的,无论你在那里拍摄什么图像,它都可能相当频繁地出现。