Algorithm 简单/基本隐写算法和方法

Algorithm 简单/基本隐写算法和方法,algorithm,language-agnostic,image,steganography,Algorithm,Language Agnostic,Image,Steganography,最基本、最简单的隐写算法和方法是什么 我指的是应用于图像的隐写术 一个将数据隐藏到图像的简单程序是如何工作的?使用的主要技术是什么?程序如何在没有源图像的情况下识别图像中的加密消息?修改位图像素的最低有效位 要获得一个好的概述,请参见在图像中隐藏信息的方法有很多种 一种简单的方法是注意,更改每个RGB值的最低有效位不会产生明显的差异,因此设置图像中每个字节的最低有效位可以为我们提供(#image/8中的位)位来存储隐藏数据 最基本和最简单的隐写算法和方法是什么?我指的是应用于图像的隐写术 很久以

最基本、最简单的隐写算法和方法是什么

我指的是应用于图像的隐写术


一个将数据隐藏到图像的简单程序是如何工作的?使用的主要技术是什么?程序如何在没有源图像的情况下识别图像中的加密消息?

修改位图像素的最低有效位


要获得一个好的概述,请参见

在图像中隐藏信息的方法有很多种

一种简单的方法是注意,更改每个RGB值的最低有效位不会产生明显的差异,因此设置图像中每个字节的最低有效位可以为我们提供
(#image/8中的位)
位来存储隐藏数据

最基本和最简单的隐写算法和方法是什么?我指的是应用于图像的隐写术

很久以前,我已经为此编写了一个库,所以我可以描述这个过程

基本上,如果你有一个文件格式,比如说24位BMP格式。首先,您需要一种将像素读写到该文件格式的方法。您可以使用库,也可以在了解文件格式后编写自己的库

图像可以看作是一系列像素。考虑4x4像素图像:

x x
x x
x x
x x x x

将这些像素从1到16进行编号:

01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16

上面编号的每个像素都有一个红色分量、一个绿色分量和一个蓝色分量。这些组件中的每个组件都有1个字节,因此每个组件都可以看作是0到255的值。(24位=8位表示红色,8位表示绿色,8位表示蓝色)。所以上面的每个数字都有3组从0到255的值

因此,在上面的4x4图像示例中,图像中总共有16像素*3color_分量=48字节的数据。通常,您将只使用每个颜色分量的最低有效位对图像进行编码。在这种情况下,您将有48位数据可供您使用=6字节可供您编码任何6字节的消息

为了使这更容易,让我们看看如何将一个简单的3位消息编码为一个像素。假设每个颜色分量只使用1位。 假设我们要对3位消息进行编码:111

下面是在对数据进行编码之前,上面的值像素1的一个示例:

R:10101011
G:11111010
B:0001010

您要做的是仅将最低有效位更改为新数据:

R:10101011
G:11111 011
B:00011011

像素在人眼看来是一样的,但现在您使用的是最低有效位来表示要编码的数据

如果你想将超过3位的数据编码成一个像素,你也可以这样做。所发生的情况是,您将编码的不仅仅是最低有效位,您可以使用最低有效位2或最低有效位3,等等。使用的位越多,您将开始注意到图像质量上的一点差异。不过,您最多可以使用7位,您的图像看起来仍然可以识别

通常情况下,您需要编码的数据将远远超过3位。你想要编码的数据越多,你要么拥有更多的像素,要么每像素使用更多的比特来编码数据。假设有9位数据需要编码,如果只使用最低有效位,则需要3个像素来编码该信息。如果您只想使用1个像素,您可以通过使用每个颜色分量的3个最低有效位来编码该数据

要完成这类工作,您可能需要创建一些函数,以便轻松处理位数据,从而消除不断处理位运算符的复杂性

对于不同的文件格式,该技术会有所不同,但概念是相同的。隐写术也可以仅指将数据隐藏在GIF扩展块中。通常,您可以通过改变图像的像素来隐藏它,或者在颜色查找表的某些文件格式中隐藏它

有些图像的标题中有颜色查找表,然后将像素索引到这些颜色查找表中。您可以做的是对颜色查找表重新排序,使最相似的颜色紧密结合在一起,然后您可以将数据编码到颜色查找表本身和像素索引中。因为索引是否发生轻微变化无关紧要,因为查找表是根据相似性排序的

但是,您确实需要了解文件格式才能完成这类工作。或者至少使用一个可以为您操作文件格式和文件数据的库。如果你真的对这个主题感兴趣,我建议你从一个简单的文件格式开始,比如BMP,然后学习它。你可以在网站上找到文件格式规范,比如

在没有源图像的情况下,程序如何识别图像中的加密消息

你说得对。解码信息的程序不需要源图像。
其工作原理是,它只是做相反的事情,程序需要知道您使用了多少位数据进行编码,并使用这些数据进行解码。它将简单地迭代每个像素,并将位组合成字节,然后将这些字节写入文件。

非常详细的答案,对“最低有效位更改”方法的极好描述。谢谢。对于基于调色板的格式,您可以减少真实颜色的数量以释放一些索引,然后用最流行的颜色的RGB填充它们。这样可以避免图片中的噪音。消息的编码将与j有点不同