• 主页
  • 相册
  • 随笔
  • 目录
  • 存档
Total 244
Search AboutMe

  • 主页
  • 相册
  • 随笔
  • 目录
  • 存档

图像水印算法

2019-11-25

内容

  • LSB
  • Patchwork
  • 扩频水印
  • QIM
  • Jsteg
  • Wong
  • 直方图可逆

1. 基本概念

1.1. 信息隐藏

密码技术主要是研究如何将机密信息进行特殊的编码,以形成不可识别的密码形式 (密文)进行传递;而信息隐藏则主要研究如何将某一机密信息秘密隐藏于另一公开的信息(载体)中,然后通过公开信息的传输来传递机密信息。对加密通信而言,可能的监测者或非法拦截者可通过截取密文,并对其进行破译,或将密文进行破坏后再发送,从而影响机密信息的安全;但对信息隐藏而言,可能的监测者或非法拦截者则难以从公开信息中判断机密信息是否存在,难以截获机密信息,从而能保证机密信息的安全。

  • 通道不同:秘密与公开
  • 信息不同:秘密信息与公开载体(信息)

模型

信息隐藏特点

  • 鲁棒性
    • 指不因图象文件的某种改动而导致隐藏信息丢失的能力
  • 不可检测性
    • 指隐蔽载体与原始载体具有一致的特性。如具有一致的统计噪声分布等
  • 透明性
    • 利用人类视觉系统或人类听觉系统属性,经过一系列隐藏处理 ,使目标数据没有明显的降质现象 ,而隐藏的数据却无法人为地看见或听见
    • 视觉质量失真度量
      • 峰值信噪比
  • 安全性
    • 指隐藏算法有较强的抗攻击能力 ,即它必须能够承受一定程度的人为攻击 ,而使隐藏信息不会被破坏
  • 自恢复性
    • 由于经过一些操作或变换后 ,可能会使原图产生较大的破坏 ,如果只从留下的片段数据 ,仍能恢复隐藏信号 ,而且恢复过程不需要宿主信号 ,这就是所谓的自恢复性

信息隐藏相关术语

  • 原始载体:专指待嵌入秘密信息的原始载体数据。
  • 嵌入:通常指通过修改载体数据的方式将秘密信息隐藏到公开载体中的行为或过程。
  • 掩密载体:也称含密载体,专指嵌入秘密信息后的载体数据
  • 提取:指从掩密载体中提取事先所隐藏的秘密信息的行为或过程

信息隐藏技术分类

  • 隐写术

  • 数字水印字印

    • 透明性(不可见性)

    • 容量:载体中所隐藏秘密信息的数量

    • 鲁棒性

      • 三者相互制约
  • 隐蔽信道

    • 允许进程以危害系统安全策略的方式传输信息的通信信道
  • 阈下信道

    • 在基于公钥密码技术的数字签名、认证等应用密码体制的输出密码数据中建立 起来的一种隐蔽信道

1.2. 认证

  • 完全级认证:要求对图象的任何数据部分均不允许更改
  • 内容级认证:强调保护图象内容所传递的信息,而不是图象内容的具体表示方式

1.3. 鲁棒性与脆弱性

  • 鲁棒性

    • 为什么robustness会翻译为鲁棒性 - 知乎
  • 鲁棒性水印

    鲁棒性水印(Robust watermark):是指嵌入的水印不仅能抵抗非恶意的攻击,而且能抵抗一定失真范围内的恶意攻击,并且一般的数据处理不影响水印的检测

  • 脆弱性水印

    • 又称为易碎水印,图像载体发生变化,水印则受到破坏
    • 脆弱水印算法大都由空间域LSB水印算法演变而来

1.4. 水印细分

  • 强鲁棒性水印

    • 抗打印扫描水印
    • 抗数据增删水印
    • 抗图像合并水印
    • 抗综合几何变换的图像水印
  • 完全脆弱水印

    • –水印能够检测出任何对图象像素值进行改变的操作或对图象完整性的破坏
    • 完全级认证
  • 半脆弱水印

    • –水印能够允许图象有一定的改变,它是在一定程度上的完整性检验
    • 内容级认证

盲水印与非盲水印

  • 盲水印在提取过程中不需要原始图像(原始载体)参与
  • 而非盲水印在检测的过程中需要原始图像的参与

盲检测

水印检测过程不需要原始的、未嵌人水印的载体信息。这一方面简化了水印的检测,另一方面则是为了加强水印的安全性

应用

  • 版权保护水印

    • 可以标记“未曾复制”、“只可复制一次”和 “不能再复制”等复制信息
    • 漏检概率低
    • 不必获取完整数据,仅从数据流中即可检测到 数字水印
  • 内容认证水印

    预先在原始载体中通过水印嵌入器隐藏某种认证信号;在需要 验证时,通过水印检测器识别这些认证信号的变动,以鉴 别待测载体数据的完整性和真实性

典型数字水印系统模型

## 嵌入率
  • 嵌入到载体中的秘密信息的比特数。
    • 实际嵌入量:数字水印方法本身可嵌入的比特数
    • 有效嵌入量:实际可隐藏的嵌入量再减去附加信息的信息量
      • $ER=\frac{Num_{sec}-Num_{extra}}{Num_{feature}}$,单位 $bpf$:$bit/feature$

1.5. 隐写与隐写分析

隐写术与数字水印的区别

首先在概述隐写术时必须提到它的近亲兄弟电子水印(Watermarking),水印用于识别物品的真伪(比如:新台币上面翻转隐约可见到梅花、人民币上面的隐约可见的毛泽东头像),或者作为著作权声明的标志,或者加入作品属性信息。电子水印与隐写术的相同点是,二者都是将一个文件隐写至另一个文件当中,而两者的区别在于使用目的与处理算法的不同。电子隐写侧重将秘密文件隐藏,而电子水印则较重视著作权的声明与维护,防止多媒体作品被非法复制等等。电子隐写术一旦被识破,则秘密文件十分容易被读取,相反,电子水印不隐藏隐写文件的隐蔽性,而在乎鲁棒性(Robustness)除去算法的攻击。

  • 维基百科编者. 隐写术[G/OL]. 维基百科, 2019(20190806)[2019-08-06].

隐写分析

隐写分析(steganalysis)是指在已知或未知嵌入算法的情况下,从观察到的数据检测判断其中是否存在秘密信息,分析数据量的大小和数据嵌入的位置,并最终破解嵌入内容的过程。

2. LSB

2.1. 直接替换的LSB

  • 空域
    • 嵌入位置
      • 连续嵌入法(载体的所有位置都使用)
      • 随机间隔法(利用伪随机数发生器)
  • 实现方法:
    • If 信息载息和载体LSB相同,则不作修改;
    • If信息和载体LSB不同,修改如下:
      • 原始灰度值为奇数,则减1
      • 原始灰度值为偶数,则加1
  • 容量
    • 嵌入率(bit per pixel):1 bpp
  • 脆弱性
    • 无法抵抗JPEG压缩

2.2. 基于奇偶变换的LSB

奇偶校验基本原理

  • 将载体分成不重叠的区域,在每个区域中嵌入1比特信息
  • 奇偶校验位计算公式:$p(I)= \sum x_jmod2 $
  • If 奇偶校验位与秘密信息不同,则将区域 $I$中LSB取值反转

2.3. 多重LSB

Multiple LSB

  • 方法一:随机选取最低多个位平面的比特位进行替换

  • 方法二:随机选取像素,同时替换其多个最低有效位

2.4. 攻击

尽管具有不可检测性,但可以通过隐写分析进行攻击

  • 原理

  • 自然图像的像素$P_{2i}$与$P_{2i+1}$的个数应有较大差距,但由于LSB的变换规则$P_{2i}\leftrightarrow P_{2i+1}$,使两者个数接近

  • 前奏

    • 直方图分析

显然隐写后的图像直方图更加平整

  • 提取最低位平面

    > 通过视觉攻击分别对原图和隐写图的最后一个位平面的提取,可以很清晰的看出来,不含隐藏信息的平面的0和1是随机地均匀的分布;而隐藏了信息的平面的左边部分有明显的整齐的横条,它们是LSB被修改后像素$P_{2i}\ \leftrightarrow P_{2i+1}$变化后形成的图像特征;;而且嵌入率不同,横条占有的区域面积也不同。单看隐写图的平面,就可以看出图像有异样(被划分成两部分),含整齐横条的部分则为嵌入了信息的部分。
  • 卡方攻击

    • 比较理论频数和实际频数的吻合程度或拟合优度问题
      • 卡方分布:$r=\sum_i^{127}\frac{h_{2i}-h_{2i}^{}}{h_{2i}^} $
        • $h_{2i}^*=\frac{h_{2i}+h_{2i+1}}{2}$
      • 卡方分布概率密度函数(隐写率):$1-P(x^2 \leq r)$

3. Patchwork

拼凑算法

  • 空域

  • 原理:将水印信息隐藏到图像数据的亮度统计特性中

  • 实现

    • 用一个密钥初始化一个伪随机数发生器
    • 根据伪随机数发生器的输出,随机选择 n 个像素对,其灰度值(亮度值)为$(a_i,b_i)$
    • 令$a_i^w=a_i+1$,$b_i^w=b_i-1$完成信息的嵌入,这样整个图像的平均亮度保持不变。
  • 检测

    • $s=\sum^n_{i=1}(a^w_i-b^w_i)$
    • if $s \approx 2n$,则存在隐藏信息。反之则不存在
  • 鲁棒性:

    • 能够抵抗图像剪裁、模糊化
  • 缺陷

    Of course, the patchwork algorithm has a natural enemy: the jitter attack. Such an attack deleting sample randomly will cause the position of watermarked samples shifted (Xiang, 2006). This position alteration incurs serious detection error.

4. 扩频水印

  • 频域

    • 扩频:扩展频谱
  • 原理

    扩频数字水印是利用扩频技术,将原始载体数据的频域看作通信信道 C,水印看作通过 C 的信号,各种有意或无意的攻击看作噪声,把一个水印的能量谱扩展到一个很宽的频段中(例如将水印分布到载体信号的各个频域系数中),从而分配到每个频率分量上的水印信号能量变得较小而难以检测

  • 实现

    • 在原始数据 的空域或变换域上叠加经水印信息调制后的伪随机序列,检测时计算待检信号与伪随机序列之间的互相关系数,然后与阈值比较提取隐藏信息

    • 嵌入前的载体信号:$X={x(0),x(1)…x(N-1) }$

      嵌入后的载体信号:$X^{‘}={x^{‘}(0),x^{‘}(1)…x^{‘}(N-1) }$

      带嵌入水印:$W={w_0,w_2…w_{M-1} }$,$w_j={+1,-1}$

      $M$个长度为$N$的一维伪随机序列:${s_j(0),s_j(1)…s_j(N-1)}$,$j=0,1…M-1$,$s_j(i)={+1,-1}$

    • 嵌入(加性或乘性):$x^{‘’}(i)=x(i)+\alpha·\sum^{M-1}_{j}s_j(i)·w_j$,$\alpha$表示嵌入强度,$i=1,2…N-1$

      • 可进一步用感知模型控制水印强度
  • 提取

    • 基于相关性检测的水印判决方法

    • 计算相关系数

      水印检测端收到的载体信号:$X^{‘’}={x^{‘’}(0),x^{‘’}(1)…x^{‘’}(N-1) }$

    • 利用阈值化方法判决水印信息

  • 典型应用:COX水印算法

    • 嵌入DCT低频系数(去掉直流分量)
    • $x^{ ‘}(i)=x(i)+\alpha·x(i)·w_i$
  • 鲁棒性:

    • 抗比例缩放、Jpeg压缩、剪切
    • 如果要破坏水印需要强噪声加入所有的频域系数中,但是破坏水印的同时也造成原始数据质量严重下降
  • 缺陷

    当载体的某一区域遭到剪切时,嵌入到该区域的同步水印信息也会完全消失

5. QIM

Quantization Index Modulation:量化索引调制

  • 空域

  • 原理

    根据水印信息,把原始载体数据用量化器量化到不同的索引区间,水印检测时则根据调制后的数据所属的量化索引区间来识别水印信息

    • 二值量化索引调制
      • 按照待嵌入的二进制水印 比特$b∈{+1, -1}$,选择使用两个均匀量化器中的一个对载体信号进行量化处理

    基于量化思想的水印嵌入模型的主要目的是为了实现盲检测。其主要思想是根据水印信息的不同将原始载体数据量化到不同的量化区间,而检测时根据所属的量化区间来识别水印信息。

    常见的两种量化方式是QIM和SCS方法,前一种方法是稳健的,主要用于版权保护后一种方法是脆弱的,主要用于内容认证。


    QIM的主要思想:将坐标轴等间隔划分成A区间集与B区间集,区间大小为△。规定A区间集代表0,B区间集代表0,根据水印值是0或1,调整待嵌入水印的值,使其等于离自己最近的对应区间内的中间值,当检测水印时,只需判断该数值落在的区间是A集还是B集,就可以得到对应的水印信息是0或1。

  • 实现

* 鲁棒性

QIM算法在透明性好的前提下可以在椒盐噪声、中值滤波和剪切攻击下能正确提取水印信息,即QIM水印算法能在获取较小嵌入失真同时,具有较高的鲁棒性

6. Jsteg水印

  • 频域

    • 用秘密信息比特直接替换量化后的DCT系数的最低比特位(DCT系数的LSB嵌入)
  • 实现步骤

    • 对图像进行分块,并转化为DCT系数矩阵

    • 对DCT矩阵运用LSB的变换规则,对相邻DCT系数进行转化$P_{2i}\leftrightarrow P_{2i+1}$。特别的,若量化后DCT系数为0或者1,则不进行处理

  • 0与1不处理的原因

    Jsteg does not embed in coefficients equal to 0 or 1 because too many nonzero coefficients would appear in higher frequencies, which would lead to perceptible and statistically detectable artifacts

    • Quantitative Structural Steganalysis of Jsteg By Jan Kodovský and Jessica Fridrich, Member, IEEE
    • 由于DCT系数中有大量的0和1,若对其进行处理,将会导致更为明显的统计检测效果
  • 算法缺陷

    • Jsteg隐写使得DCT系数$P_{2i}$和$P_{2i+1}$的频率趋向一致(即DCT系数直方图出现值对趋于相等的现象)。由于这种统计上的特性,很容易被卡方攻击检测出来

    • PSNR~C

      • PSNR:峰值信噪比

      PSNR is most commonly used to measure the quality of reconstruction of lossy compression codecs (e.g., for image compression). The signal in this case is the original data, and the noise is the error introduced by compression. When comparing compression codecs, PSNR is an approximation to human perception of reconstruction quality.

      • Peak signal-to-noise ratio - Wikipedia

      嵌入数量越多,相当于图片噪声越大,因此可以通过PSNR~嵌入容量关系作为隐写分析

6.1. F3

改进JSteg算法

  • 实现

    • 若DCT系数的LSB与待嵌入的秘密信息比特相同,则不做改动;否则, 将该DCT系数的绝对值减1再加符号

    • 值为0的量化DCT系数不嵌入任何信息

  • 改进

    • F3隐写可以抵抗卡方分析
  • 算法缺陷

    • DCT系数直方图异常(偶数比奇数bin高)

      由于在值为+1、-1的量化后DCT系数上嵌入秘密信息比特0时, 会形成无效的嵌入(跳过),继而将这些待嵌入的秘密信息比特0分摊到其它系数上,且最终由修改后为偶数的DCT系数来表征

6.2. F4

改进F3算法

  • 实现

    • 利用正奇系数和负偶系数代表1

      利用正偶系数和负奇系数代表0

      绝对值减1再加符号操作(继承F3算法)

    • 值为0的量化DCT系数不嵌入任何信息

  • 改进

    • 直方图特性得到保持
  • 缺陷

    • 嵌入效率较低

7. Wong脆弱水印算法

  • 空域

  • 原理

    典型的脆弱水印是P. W. Wong水印系统。这是一种基于公钥的图像认证和完整性数字水印系统,其基本思想就是利用hash函数的单向性和能在输入发生微小变化时得到完全不同输出值的特点,结合图像分块来完成对图像象素值微小改变的定位。同时借助公钥系统的便利性,使得任何人,只要他能获得作者的公钥,便可以完成对图像的完整性检测和身份认证

  • 实现

    • 嵌入

      注:该流程是将整张图片作为算法的单次对象,未进行分块
      * 将原始图像($M×N$大小)按$I×J$的大小进行分块,记第$r$个分块为$X_r$
      • 将水印图像扩充为与原始图像同样大小的尺寸,亦按$I×J$的大小进行分块,记第$r$个分块为$B_r$
      • 将$X_r$的LSB 置为零,得到的分块记为$\widetilde{X}_r$,以$\widetilde{X}_r$和$M$,$N$为参数,进行$hash$运算,得到$P_r$
      • 将$P_r$与 $B_r$进行比特位上的异或运算,结果用公钥系统加密(用作者的私钥),将加密后的结果置入$\widetilde{X}_r$的LSB位得到的结果记为$Y_r$
      • 将得到的分块重新组合,即可得到嵌入水印后的图像
    • 提取

  • 脆弱性

    • 任何人可以用公钥对图像的LSB进行解密
    • 由于在进行$hash$运算的时候将图像的尺寸作为参数,该水印对图像尺寸的改变显然具有敏感性
    • 由于$hash$函数的特殊性,任何图像象素值的改变都会在检测后水印图像的相应位置上得到体现

8. 基于直方图修改的可逆水印

可逆水印技术

目前大多数数字水印的方法在提取出所嵌入的秘密信息后,原宿主信息不能无损恢复,属于有损数字水印技术。但是在一些要求较高的场合,如医学诊断、军事图像、遥感图像处理及法律认证及证据等领域,则往往需要精确地恢复原载体

  • 实现

    • 计算图像的灰度直方图

      图像中没有任何灰度值的像素点(零点):$z$

      然后找到直方图像素点最多的灰度值(峰值点):$p$

      • 不妨假设$p<z$
    • 由上到下、由左到右扫描图像中的各个像素点,各个像素点的灰度值用$V_{ij}$表示

      • 当$V_{ij}<p$或$V_{ij}>z$,像素值不变
      • 反之加$1$
    • 图像像中灰度值等于峰值点的像素点为嵌入秘密信息的点,将秘密信息转化为二进制流$S_{k}$

    • 顺序嵌入:$V_{ij}^{ ‘ }=V_{ij}+S_{k}$

    • $p,z$以密钥方式保存

  • 解密

    • 逐行扫描图像,
      • 当$V_{ij}=p$时,说明该点为隐藏信息点,提取信息0并保持该点灰度值不变
      • $V_{ij}=p+1$该点也为隐藏信息点,提取信息1并使该像素点值减1
    • 当$V_{ij}<p$或$V_{ij}>z$,像素值不变,反之减$1$
    • 得到由灰度值组成的新图像就是提取秘密信息后的恢复出来的载体图像
  • 算法缺陷

    • 由于图像直方图的直接使用,因此其嵌入率不稳定,对于一般图像嵌入率较低
  • 改进方法

    • 选择无穷远处为其差值直方图的零值点
    • 可选择两个或多个峰值进行可逆信息隐藏
    • 可以进行多层隐藏

9. 总结

优点缺点
LSB算法简单、高嵌入率直方图统计特性、最低位平面分析、卡方分析
Patchwork抗图像剪裁、模糊化难以抵抗抖动攻击
扩频水印鲁棒性,抗比例缩放、Jpeg压缩无法抵挡图像的剪切攻击
QIM高鲁棒性,,抗椒盐噪声、中值滤波和剪切攻击不适用于非均匀信号的问题
Jsteg算法简单DCT直方图统计特性、卡方攻击、PSNR分析
Wong对水印篡改具有高敏感性公钥算法运算速度慢
直方图可逆产生较少的畸变、高PSNR、直接在空域中应用不会产生数据溢出对于一般图像嵌入率较低

10. 参考资料

  • Cao Gang

水印基础

  • 信息隐藏与数字水印技术-IBM

    LSB

  • lsb隐写分析实验 - 图文 - 百度文库

Patchwork

  • [图文]数字水印 - Patchwork - 百度文库
  • Hyoung-Joong Kim - Robustness Analysis of Patchwork Watermarking Schemes (Download Link)

扩频水印

  • ZHANG Zheng-bao,YANG Su-min,QU Chuan-bing.Secure performance analysis of digital watermarking algorithms of spread spectrum.Computer Engineering and Applications,2010,46(7):93-95.

QIM

  • 基于QIM的数字图像水印算法研究 [期刊论文] 刘玲君- 《无线互联科技》2014年11期
  • QIM量化 - 努力奋斗的阿贝拉 - 博客园

Jsteg

  • Peak signal-to-noise ratio - Wikipedia

  • Quantitative Structural Steganalysis of Jsteg - Jan Kodovský and Jessica Fridrich, Member, IEEE

Wong

  • 图像水印算法介绍 - Read (Download Link)
  • Notes
  • Security
  • Content Security
实验:Jsteg水印的PSNR~C水印攻击以及卡方分析
网络端口扫描
  1. 1. 1. 基本概念
    1. 1.1. 1.1. 信息隐藏
    2. 1.2. 1.2. 认证
    3. 1.3. 1.3. 鲁棒性与脆弱性
    4. 1.4. 1.4. 水印细分
    5. 1.5. 1.5. 隐写与隐写分析
  2. 2. 2. LSB
    1. 2.1. 2.1. 直接替换的LSB
    2. 2.2. 2.2. 基于奇偶变换的LSB
    3. 2.3. 2.3. 多重LSB
    4. 2.4. 2.4. 攻击
  3. 3. 3. Patchwork
  4. 4. 4. 扩频水印
  5. 5. 5. QIM
  6. 6. 6. Jsteg水印
    1. 6.1. 6.1. F3
    2. 6.2. 6.2. F4
  7. 7. 7. Wong脆弱水印算法
  8. 8. 8. 基于直方图修改的可逆水印
  9. 9. 9. 总结
  10. 10. 10. 参考资料
© 2024 何决云 载入天数...