结合信号码和隐写术?

发布于 2024-07-30 16:13:05 字数 1767 浏览 13 评论 0原文

更新 我很久以前就问过这个问题,我很好奇自从我问这个问题以来是否已经开发出类似的东西?

我什至不知道是否有这种算法的术语,我想如果还没有人发明它的话就不会有了。 然而,这也使得谷歌搜索变得有点困难。 有人知道这个算法/​​原理是否有一个术语吗?


这是我一直在思考的一个想法,但我不太知道如何解决它。 我想知道是否存在这样的解决方案,或者你们是否知道如何实施。

隐写术

隐写术基本上是隐藏消息的艺术。 如今,我们通过数字方式完成此操作,例如修改图像中的最低有效位,如下所示。 因此,对于每个像素以及该像素的每个颜色分量,我们可能能够隐藏一两个字节。

这种交替肉眼是看不到的,但分析最不重要的位可能会揭示一些模式,从而暴露隐藏消息的存在和可能的内容。 为了解决这个问题,我们只需在将消息嵌入到图像中之前对其进行加密,这样可以保证消息的安全,也有助于防止发现隐藏消息的存在。

因此,原则上,隐写术提供了以下功能:

  • 在任何类型的媒体数据中隐藏加密消息。 (图像、音乐、视频等)
  • 在没有正确密钥的情况下完全否认隐藏消息的存在。
  • 使用正确的密钥提取隐藏消息。


(来源:cs.vu.nl )

Semacodes

Semacodes 是一种以可视化表示形式对数据进行编码的方法,可以轻松打印、复制和扫描。 下面显示的数据矩阵是包含著名的 Lorem Ipsum 文本的 semacode 示例。 这本质上是一种二维条形码,具有比通常条形码更高的容量。 生成信号码的程序很容易获得,读取信号码的软件也是如此,尤其是手机。 Semacodes 通常包含纠错码,通常非常健壮,并且可以在严重损坏的情况下读取。

因此 semacodes 具有以下属性:

  • 可以打印和复制的数据编码。
  • 即使在损坏(肮脏)的情况下也可以进行扫描和解释,并且通常是非常强大的编码。

结合它

所以我的想法是创建一些将这两者结合起来的东西,以及所有组合属性。 这意味着它必须:

  • 在任何媒体(可能是扫描图像)中嵌入加密消息。
  • 即使图像被打印和扫描,甚至部分损坏,该消息也应该是可提取的。
  • 如果没有用于加密的密钥,嵌入消息的存在应该是无法检测到的。

所以,首先我想知道这方面是否有任何解决方案、算法或研究? 其次,我想听听关于如何做到这一点的任何想法/想法?

我真的希望就实施此类事情的可能性和可行性进行良好的讨论,我期待着阅读您的答案。

更新

感谢您对此提出的所有宝贵意见。 当我有更多时间时,我可能会更多地研究这个想法。 我坚信这一定是可能的。 考虑在音乐和电影中嵌入水印的研究。

Update
I asked this question quite a while ago now, and I was curious if anything like this has been developed since I asked the question?

I don't even know if there is a term for this kind of algorithm, and I guess there won't be if nobody has invented it yet. However it also makes googling for this a bit hard. Does anybody know if there is a term for this algorithm/principle yet?

This is an idea I have been thinking about, but I do not quite know how to solve it. I would like to know if any solutions like this exists out there, or if you guys have any idea how this could be implemented.

Steganography

Steganography is basically the art of hiding messages. In modern days we do this digitally by e.g. modifying the least significant bits in a image as the one below. Thus for every pixel and for every colour component of that pixel we might be able to hide a byte or two.

This alternation is not visibly by the naked eye, but analysing the least significant bits might reveal patterns that exposes the existence and possibly content of a hidden message. To counter this we simply encrypt the message before embedding it in the image, which keeps the message safe and also helps preventing discovery of the existence of a hidden message.

Thus, in principle, steganography provides the following:

  • Hiding encrypted message in any kind of media data. (Images, music, video, etc.)
  • Complete deniability of the existence of a hidden message without the correct key.
  • Extraction of the hidden message with the correct key.


(source: cs.vu.nl)

Semacodes

Semacodes are a way of encoding data in a visually representation, that may be printed, copied, and scanned easily. The Data Matrix shown below is a example of a semacode containing the famous Lorem Ipsum text. This is essentially a 2D barcode with a higher capacity that usually barcodes. Programs for generating semacodes are readily available, and ditto for software for reading them, especially for cell phones. Semacodes usually contains error correcting codes, are generally very robust, and can be read in very damaged conditions.

Thus semacodes has the following properties:

  • Data encoding that may be printed and copied.
  • May be scanned and interpreted even in damaged (dirty) conditions, and generally a very robust encoding.

Combining it

So my idea is to create something that combines these two, with all of the combined properties. This means it would have to:

  • Embed a encrypted message in any media, probably a scanned image.
  • The message should be extractable even if the image is printed and scanned, and even partly damaged.
  • The existence of a embedded message should be undetectable without the key used for encryption.

So, first of all I would like to know if any solutions, algorithms or research is available on this? Secondly I would like to hear any ideas/thoughts on how this might be done?

I really hope to get a good discussion going on the possibilities and feasibility of implementing something like this, and I am looking forward to reading your answers.

Update

Thanks for all the good input on this. I will probably work a bit more on this idea when I have more time. I am convinced it must be possible. Think about research in embedding watermarks in music and movies.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

橪书 2024-08-06 16:27:21

您使用什么语言/环境? 编写将图像和信号码打开为位图(后者作为单色)的代码应该不难,将彩色图像中每个像素的每个字节的最低位设置为单色位图的相应像素。

(可以选择首先将 semacode 位图扩展为以白色扩展的相同像素尺寸)

What language/environment are you using? It shouldn't be that hard to write code that opens both the image and semacode as a bitmap (the latter as a monochrome), sets the lowest bit(s) of each byte of each pixel in the color image to the value of the corresponding pixel of the monochrome bitmap.

(optionally expand the semacode bitmap first to the same pixel-dimensions extending with white)

假情假意假温柔 2024-08-06 16:25:05

这不是一个完整的答案,但您应该看看水印。 该技术解决了您的前两个目标(可嵌入打印图像中,甚至可以从部分损坏的扫描中读取)。

水印对失真和转录错误(从数字到模拟再返回)的可靠性部分来自于冗余(例如多次重复数据)。 即使没有密钥,这些也可以检测到水印。 但是,您也许可以使用更微妙的冗余技术,可能与纠删码或秘密共享相关。

我知道这不是一个完整的答案,但希望这些线索能为您指明正确的方向!

It's not a complete answer, but you should look at watermarking. This technique solves your first two goals (embedable in a printed image and readable even from partly damaged scan).

Part of watermarking's reliability to distortion and transcription errors (from going from digital to analog and back) come from redundancy (e.g. repeating the data several times). Those would make the watermark detectable even without a key. However, you might be able to use redundancy techniques that are more subtle, maybe something related to erasure coding or secret sharing.

I know that's not a complete answer, but hopefully those leads will point you in the right direction!

ら栖息 2024-08-06 16:22:29

我认为信号码对损坏/污垢/模糊的鲁棒性部分在于任何“单元”的两种状态之间的高对比度。 即使有一些失真,读者仍然可以对实际状态做出很好的猜测。

这种对比度在摄影图像中是不存在的,这正是隐写术起作用的原因 - LSB 位翻转对图像本身几乎没有视觉效果,而数字保真度确保非视觉系统仍然可以非常准确地读取嵌入的数据。

由于这两个应用程序处于模拟/数字频谱的两端(信号码都是通过模拟(视觉)处理来破译的,但它们是在纸上,而不是数字上;隐写术是关于文件中的位,而不关心文件中的位)模拟表示,无论是光、声音还是其他东西),我想两者的结合将极其困难,如果不是不可能的话。

本质上,您想到的是能够以隐写方式将某些内容嵌入到图像中,打印图像,制作图像的彩色复印件,扫描它,并且仍然能够提取嵌入的数据

恐怕我无能为力,但如果有人实现了这一点,我会留下深刻的印象! :)

I imagine part of the robustness of a semacode to damage/dirt/obscuration is the high contrast between the two states of any "cell". The reader can still make a good guess as to the actual state, even with some distortion.

That sort of contrast is not available in a photographic image, and is the very reason why steganography works - the lsb bit-flipping has almost no visual effect on the image itself, while digital fidelity ensures that a non-visual system can still very accurately read the embedded data.

As the two applications are sort of at opposite ends of the analog/digital spectrum (semacodes are all about being decipherable by analog (visual) processing but are on paper, not digital; steganography is all about the bits in the file and cares nothing for the analog representation, whether light or sound or something else), I imagine a combination of the two will extremely difficult, if not impossible.

Essentially what you're thinking of is being able to steganographically embed something in an image, print the image, make a colour photocopy of it, scan it in, and still be able to extract the embedded data.

I'm afraid I can't help, but if anyone achieves this, I'll be DAMN impressed! :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文