菜鸟也能懂!详解隐写术(盲水印)初学者指南
应用场景:
- 版权识别。数字水印可以提供所有权证据。
- 用户识别或指纹。合法用户的身份嵌入水印,用于识别非法复制。
- 保证图像不被篡改。如果水印设计成,对图像任何修改将破坏水印。
- 自动监视。
从算法效果分类
可见水印:
f
w
=
(
1
−
a
)
f
+
a
w
f_w=(1-a)f+aw
fw=(1−a)f+aw,
其中,f是原图,w是水印。a是水印透明度,如果a=1,水印不透明
可见水印的技术发展目标是使水印更难被移除。例如,方案之一是用密钥随机确定水印亮度。
(可见水印不是本主题的重点,下面就不涉及了)
易碎不可见水印:主要应用场景是识别图像在某个传输环节被篡改,用来做图像认证
一个例子是LSB水印
鲁棒水印:对以下攻击鲁棒
- 无意攻击:有损压缩、线性和非线性滤波、修剪、旋转、重取样
- 故意攻击:打印、重扫描、添加水印、添加噪声
鲁棒水印的应用非常广,例如版权保护、盗版跟踪
从加密方式分类
算法分为私钥系统、公钥系统
从解密方式分类
算法分为需要原件才能解密、不需要原件就可以解密
历史上的隐写术
- 不可见墨水:被万用显影剂破解了。万用显影剂可以检测纤维表面,确定那一部分被加湿过。
- 纸币防伪技术,紫外线荧光。
- 微缩胶片,粘到无关杂志的标点符号上。
- 用正/斜体编码,把二进制编码隐藏在印刷文字里。
从嵌入的通道分类
- 替换:用秘密信息替换载体的冗余部分,典型算法是 LSB(下文详细介绍)
- 变换域:例如把密文信息写入频域,典型算法是基于 DCT 的隐写术(下文详细介绍)
- 扩展频谱技术
- 统计方法:更改载体的若干统计特征,在提取时使用假设检验。
- 用来嵌入1个比特,找到某个统计特征,如果要嵌入1,就显著改变统计特征;如果要嵌入0,就不修改。
- 解码过程就是一个假设检验函数。
- 此方法通常应用场景很窄
- 失真技术:使信号失真来保存信息,解码时测量与原始载体的偏差
- 例子1:在 html 中插入不可见的字符,这些字符在web浏览器中被忽略,但查看 html 源码可以发现
- 例子2:在印刷品中,单词(或句子,或整行),做微小的上下移动,可以用来嵌入比特。
- 例子3:在印刷物中,单词之前的空格,也可以有大小,用来嵌入比特。
- 载体生成:直接把信息编码成伪装载体
- 算法1:直接做文本/字母的替换等,如“与佛说禅”
- 把信息隐藏在字母出现的频率(Huffman树上)。步骤是:首先根据秘文生成 Huffman 树,然后根据 Huffman 树生成一段文字。
上一篇: F5隐写工具使用