将二维码和隐写术组合使用?

6

更新 我之前问过这个问题,但是我很好奇自那以来有没有类似的东西被开发出来?

我甚至不知道是否有一个术语来描述这种算法,如果没有人发明它,那么我猜也不会有。然而,这也使得通过谷歌搜索变得有点困难。有人知道这个算法/原则是否已经有术语了吗?


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

隐写术

隐写术基本上是隐藏消息的艺术。在现代,我们通过修改下面这张图片中最不显眼的位来实现数字化隐藏。因此,对于每个像素和每个颜色分量,我们可能能够隐藏一个或两个字节。

这种更改肉眼无法看到,但分析最不显眼的位可能会显示出揭示隐藏消息的存在和可能内容的模式。为了防止这种情况,我们只需在嵌入图像之前对消息进行加密,这可以保护消息的安全性,同时还有助于防止发现隐藏消息的存在。

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

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


(来源: cs.vu.nl)

二维码

二维码是一种用视觉表示编码数据的方式,可以轻松打印、复制和扫描。下面显示的数据矩阵是一个包含著名的Lorem Ipsum文本的二维码。这本质上是一个比通常的条形码容量更高的2D条形码。生成二维码的程序很容易找到,读取它们的软件也是如此,特别是对于手机来说。二维码通常包含纠错码,通常非常健壮,并且可以在非常损坏的情况下读取。

因此,二维码具有以下属性:

  • 可打印和复制的数据编码。
  • 即使在损坏(脏)的条件下也可以扫描和解释,并且通常是非常健壮的编码。

结合它

我的想法是创建一个结合这两个方面的东西,具有它们的所有属性。这意味着它必须:
  • 在任何媒体中嵌入加密信息,可能是扫描图像。
  • 即使图像被打印、扫描或部分损坏,也应该能够提取信息。
  • 除非使用用于加密的密钥,否则无法检测到嵌入式消息的存在。
首先,我想知道是否有任何解决方案、算法或研究可用?其次,我想听听如何实现这一点的任何想法/思路?
我真的希望能就实现这样的事情进行良好的讨论,并期待阅读您的答案。
更新
感谢大家对此的宝贵意见。当我有更多时间时,我可能会进一步研究这个想法。我相信这一定是可能的。可以考虑在音乐和电影中嵌入水印的研究。

关于音频水印技术,进一步说,我对这位先生对Cognicity AudioKey的评测结果印象非常深刻:http://homerecording.com/audiokey2.html - Matt Sach
3个回答

9
我想象中,半导体码对于损坏/污垢/遮挡的强健性部分来自于其"单元格"两种状态之间的高对比度。即使出现一些扭曲,阅读器仍然可以猜测实际状态并作出正确判断。
这种对比度在照片图像中是不可用的,这也正是隐写术有效的原因——lsb位反转几乎没有对图像本身产生视觉影响,而数字保真度确保非视觉系统仍然可以非常准确地读取嵌入式数据。
由于这两个应用程序在模拟/数字光谱的两端(半导体码专注于通过模拟(视觉)处理解密,但是在纸张上而不是数字上; 隐写术专注于文件中的位,并且对模拟表示形式无所谓,无论是光、声音或其他),我认为将两者结合起来会极其困难,甚至是不可能的。
基本上,您想要能够在图像中隐写嵌入内容,打印图像,对其进行彩色复印,扫描图像,并仍然能够提取嵌入的数据
很抱歉,我无法帮助您,但如果有人实现了这一点,我会非常惊讶! :)

同意。如果你有一张模拟形式的数字图像,你会丢失隐写位。如果你有一张数字形式的数字图像,你极不可能丢失任何位,那么为什么要费心添加在Semacodes中找到的鲁棒性特征呢? - Jason S

1

这不是一个完整的答案,但你应该看看水印技术。这种技术解决了你的前两个目标(可嵌入印刷图像并且即使部分损坏的扫描也能读取)。

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

我知道这不是一个完整的答案,但希望这些线索能指引你朝着正确的方向!


0
你使用的是什么编程语言/环境?写一个打开图像和Semacode位图(后者为单色)的代码应该不难,将彩色图像每个像素的每个字节的最低位设置为相应单色位图像素的值。
(可选地,先将Semacode位图扩展到相同的像素尺寸,并用白色填充)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接