结合信号码和隐写术?
-
12-09-2019 - |
题
更新 我很久以前就问过这个问题,我很好奇自从我问这个问题以来是否已经开发出类似的东西?
我什至不知道这种算法是否有一个术语,而且我猜如果还没有人发明它的话就不会有。然而,这也使得谷歌搜索变得有点困难。有人知道这个算法/原理是否有术语吗?
这是我一直在思考的一个想法,但不太知道如何解决。我想知道是否存在这样的解决方案,或者你们是否知道如何实施。
隐写术
隐写术基本上是隐藏消息的艺术。如今,我们通过数字方式来完成此操作,例如修改图像中的最低有效位,如下所示。因此,对于每个像素以及该像素的每个颜色分量,我们可能能够隐藏一两个字节。
这种交替肉眼是看不到的,但分析最不重要的位可能会揭示一些模式,从而暴露隐藏消息的存在和可能的内容。为了解决这个问题,我们只需在将消息嵌入到图像中之前对其进行加密,这样可以保证消息的安全,也有助于防止发现隐藏消息的存在。
因此,原则上,隐写术提供以下功能:
- 在任何类型的媒体数据中隐藏加密消息。(图像、音乐、视频等)
- 在没有正确密钥的情况下完全否认隐藏消息的存在。
- 使用正确的密钥提取隐藏消息。
(来源: cs.vu.nl)
符号码
Semacode 是一种以可视化表示形式对数据进行编码的方法,可以轻松打印、复制和扫描。下面显示的数据矩阵是包含著名的 Lorem Ipsum 文本的 semacode 示例。这本质上是一种二维条形码,具有比通常条形码更高的容量。生成信号码的程序很容易获得,读取信号码的软件也是如此,尤其是手机。Semacodes 通常包含纠错码,通常非常健壮,并且可以在严重损坏的情况下读取。
因此 semacodes 具有以下属性:
- 可打印和复制的数据编码。
- 即使在损坏(肮脏)的情况下也可以进行扫描和解释,并且通常是非常强大的编码。
结合起来
所以我的想法是创建一些将这两者结合起来的东西,并具有所有组合属性。这意味着它必须:
- 在任何媒体(可能是扫描图像)中嵌入加密消息。
- 即使图像被打印和扫描,甚至部分损坏,该消息也应该是可提取的。
- 如果没有用于加密的密钥,嵌入消息的存在应该是无法检测到的。
所以,首先我想知道这方面是否有任何解决方案、算法或研究?其次,我想听听关于如何做到这一点的任何想法/想法?
我真的希望就实施此类事情的可能性和可行性进行良好的讨论,我期待着阅读您的答案。
更新
感谢您对此提出的所有宝贵意见。当我有更多时间时,我可能会更多地研究这个想法。我坚信这一定是可能的。考虑在音乐和电影中嵌入水印的研究。
解决方案
我认为信号码对损坏/污垢/模糊的鲁棒性部分在于任何“单元”的两种状态之间的高对比度。即使有一些失真,读者仍然可以对实际状态做出很好的猜测。
这种对比度在摄影图像中是不存在的,这正是隐写术起作用的原因 - LSB 位翻转对图像本身几乎没有视觉效果,而数字保真度确保非视觉系统仍然可以非常准确地读取嵌入的数据。
由于这两个应用程序处于模拟/数字频谱的两端(信号码都是通过模拟(视觉)处理来破译的,但是是在纸上,而不是数字上;隐写术是关于文件中的位,并不关心模拟表示,无论是光、声音还是其他东西),我想两者的结合将 极其 即使不是不可能,也是很困难的。
本质上,您想到的是能够以隐写方式将某些内容嵌入图像中,打印图像,制作彩色复印件,将其扫描, 并且仍然能够提取嵌入的数据.
恐怕我无能为力,但如果有人实现了这一点,我会留下深刻的印象!:)
其他提示
这不是一个完整的答案,但你应该看看 水印. 。该技术解决了您的前两个目标(可嵌入打印图像中,甚至可以从部分损坏的扫描中读取)。
水印对失真和转录错误(从数字到模拟再返回)的可靠性部分来自于冗余(例如,水印)。多次重复数据)。即使没有密钥,这些也可以检测到水印。但是,您也许可以使用更微妙的冗余技术,可能与纠删码或秘密共享相关。
我知道这不是一个完整的答案,但希望这些线索能为您指明正确的方向!
您使用什么语言/环境?编写将图像和信号码打开为位图(后者作为单色)的代码应该不难,将彩色图像中每个像素的每个字节的最低位设置为单色位图的对应像素。
(可以选择首先将 semacode 位图扩展为以白色扩展的相同像素尺寸)