隐写术是在显而易见的地方隐藏东西的主要例子。我们研究了在图像中隐藏信息的基本原理、一些方法和障碍。隐写术是有效地在显而易见的地方隐藏东西的主要例子。“隐写术”这个词来自希腊语“ stegos”,意思是“封面”,“ grafia”意思是“写作”因此,隐写术被定义为“封面写作”从本质上讲,我们使用名称隐写术的每一种技术,隐藏秘密信息的东西,不会立即引起怀疑。在本
隐写术是在显而易见的地方隐藏东西的主要例子。我们研究了在图像中隐藏信息的基本原理、一些方法和障碍。
隐写术是有效地在显而易见的地方隐藏东西的主要例子。“隐写术”这个词来自希腊语“ stegos”,意思是“封面”,“ grafia”意思是“写作”因此,隐写术被定义为“封面写作”
从本质上讲,我们使用名称隐写术的每一种技术,隐藏秘密信息的东西,不会立即引起怀疑。
在本文中,我们将重点介绍数字图像中的隐写术。
方法
在图像中隐藏消息而不过多地改变其可见属性需要一些工作,但如果工作是自动化的,则可以快速有效地完成。
最不重要的部分
在 RGB 配色方案中,每个像素的颜色由24位定义。前8位表示像素中红色的数量,后8位表示蓝色的数量,后8位表示绿色的数量。
这种隐写方法使用图像中每个像素的位,并通过改变 RGB 数量的最低有效位对颜色进行几乎不可察觉的变化。由此产生的对最不重要位的变化太小,以至于人眼无法识别。
例如,如果一个像素的颜色由 RGB 值(124,5,78)定义,我会将其改为(123,6,79) ,以隐藏一些信息,颜色的差异将是最小的。
图片由 rgbtohex. net 提供
你几乎看不到这两个图形的颜色差异,更不用说这种差异了,因为它只能在更宽的图像中以像素的形式显示。
掩饰
使用这些技术的方法有效地类似于纸水印,在图像中创建标记。这可以实现,例如,通过修改部分图像的亮度。亮度决定了一个特定物体在给定尺寸下每个单位的亮度。
如果没有颜色,亮度是可以用来计算图像亮度的值。如果没有与原版的可用比较,这些变化将很难被注意到。掩模和滤波技术主要应用于24位和灰度图像。遮蔽图像需要改变遮蔽区域的亮度。
基于调色板的技术
发送方将其消息嵌入到基于调色板的图像中,如 GIF 或 PNG 文件。基于调色板的图像的持久性是非常有趣的。有一个颜色查找表,其中包含图像中使用的所有颜色。每个像素表示为一个单字节,像素数据是颜色调色板的索引。
有两种方法可以在基于调色板的图像中隐藏消息:
- 将消息嵌入到调色板中。容量不依赖于图像,并且受到调色板大小的限制。
- 嵌入到图像数据中。提供了更高的容量,但是通常很难设计一个安全的方案。
压缩和裁剪
有一些可能的障碍,可以消除或扭曲的隐藏消息之间的创建和到达其目的地。为了避免这些陷阱,格式和方法的选择非常重要。而且你必须知道在选择的路线上你可以预料到哪些障碍。
为了防止数据丢失,在隐写术中有三个要素需要考虑:
- 从发送者到接收者的信息
- 载体,在我们的例子中是信息隐藏在其中的图像
- 关键是接收者找到信息所需要的信息
最常见的担心是,在运营商从发送方到接收方的过程中执行的任何操作是否会对消息产生影响。抗 JPEG 压缩是该领域的一个研究热点。有损数据压缩去除了人眼无法区分的冗余,这使得压缩文件非常接近原始文件,但不是原始文件的精确副本。有一种著名的有损数据压缩格式是 JPEG。
由于移动通信技术的发展,许多社交媒体平台,如 Facebook、 Twitter 和 Instagram 传输了大量的图像。出于对带宽、收费、流量和其他限制的考虑,JPEG 压缩总是应用于社交媒体平台的图像。这种有损操作常常会破坏传统隐写技术所隐藏的信息。
裁剪是一种操作,可以用来使图像变小(以像素为单位)和/或改变图像的长宽比(长宽比)。抵制裁剪的一种方法是在图像的不同位置多次复制隐写标记。
由于掩蔽技术将信息嵌入到重要的区域,因此隐藏信息对于封面图像来说比在噪声级别隐藏信息更为完整,就像 LSB 技术一样。
隐写术 VS 加密
为什么我们要把秘密信息隐藏在图像中而不是加密它呢?毕竟,如果被拦截,加密的消息不能透露其内容,除非拦截器有解密密钥。
但是,发送加密消息可能意味着我们想要隐藏某些东西。
那么,如果你想给某人发送一条秘密信息而不让其他人知道其中的秘密,该怎么办呢?隐写术是这个问题的一个可能的答案。
其他障碍
为了找到隐藏的消息,接收者将需要一些信息,并防止消息可以被任何人发现和读取,这将需要一定的复杂性。
在绝密通信中,你会看到隐写术和加密的结合,其中隐藏的信息需要先解密,然后才能显示任何有意义的信息。其中一个问题就是在发送方和接收方之间传输用于隐写的密钥的安全性问题。
同样,已经有很多关于这个问题的研究。它可以简单到使用匹配的编码和解码例程。但无论你选择哪种方法,如果你想依靠隐写术进行秘密通信,就必须达成清晰明确的协议。
例子
让我们在这篇文章的标题图片中隐藏一条消息。我们使用的 Python 脚本可以在 geeksforgeeks.org 上找到。
原文:
隐藏着一个信息:
这个脚本的优雅之处在于,接收方不需要原始图像的副本或用于解码的密码。接收方只需要使用相同的脚本来解码消息。
正如您可以从上面的示例图像中看到的那样,尽管这两个图像之间没有明显的差异,但是我们确实在其中隐藏了一条消息(Malwarebytes rock)
原文由:https://www.malwarebytes.com/blog/news/2022/08/explained-steganography