基于小波的脆弱水印方案
1. 引言
当前的脆弱水印算法虽具备篡改定位能力,但无法区分内容篡改和水印篡改。攻击者可仅篡改嵌入的水印而非内容来伪造数字媒体,使系统混淆,导致图像验证失败。为解决此问题,提出了一种基于小波的脆弱水印方案,用于图像认证和篡改鉴别。该方案利用离散小波变换(DWT)生成嵌入水印,经加扰加密后嵌入图像数据的最低有效位(LSB),不仅能区分水印篡改和内容篡改,还能增强对矢量量化(VQ)攻击和移植攻击的安全性,同时具备出色的篡改定位特性。
2. 提出的脆弱水印方案
2.1 嵌入水印的生成
为提高水印方案的定位精度和安全性,并尽可能提供更多图像篡改信息,水印生成过程需考虑以下步骤:
1.
执行一级DWT并提取低频系数
:将原始 $m \times n$ 图像 $X$ 的LSB置零后进行一级DWT,提取低频系数 $LL$。DWT能实现空间和频率的局部化,低频系数 $LL_{ij}$ 主要取决于 $2 \times 2$ 空间块 $X((i - 1) \times 2 + 1 : i \times 2, (j - 1) \times 2 + 1 : j \times 2)$,其中 $i = 1, \cdots, m/2$,$j = 1, \cdots, n/2$。
2.
应用4位非均匀标量量化
:使用密钥 $k_1$ 对 $LL$ 进行4位非均匀标量量化,得到图像 $Q$,即 $Q = f(LL, k_1)$。$Q$ 的 $(i, j)$ 元素定义为:
[
Q_{ij} =
\begin{cases}
a, & \text{min} + aq + \delta_a \leq LL_{ij} < \text{min} + (a + 1)q + \delta_{a + 1} \
15, & LL_{ij} = \text{max}
\end{cases}
]
其中,$\text{min}$ 和 $\text{max}$ 分别是 $LL$ 中的最小值和最大值,$q = \lceil(\text{max} - \text{min})/16\rceil$ 是均匀量化步长,$\lceil x \rceil$ 表示不小于 $x$ 的最小整数,随机序列 ${\delta_a, a = 0, 1, \cdots, 15}$ 由 $k_1$ 导出,取值范围在 $-q/4$ 到 $q/4$ 之间。
3.
加扰加密
:使用密钥 $k$ 对 $LL$ 带标量量化矩阵 $Q$ 进行加扰加密,得到加密矩阵 $E$,即 $E = P(Q, k)$,其中 $P(.)$ 表示加扰加密函数。
4.
转换为二进制矩阵
:将每个 $E_{ij}$ 转换为4位二进制,形成二进制矩阵 $B_{ij}$:
[
B_{ij} =
\begin{bmatrix}
b_3 & b_2 \
b_1 & b_0
\end{bmatrix}
]
5.
组装得到嵌入水印图像
:将 $B_{ij}$ 按位置组装,得到由宿主图像 $X$ 生成的嵌入水印图像 $W = [B_{ij}]$,$B_{ij}$ 是 $2 \times 2$ 的二进制块,因此 $W$ 与原始图像大小相同。
以下是水印生成流程的 mermaid 流程图:
graph TD;
A[原始图像X] --> B[LSB置零];
B --> C[一级DWT];
C --> D[提取低频系数LL];
D --> E[4位非均匀标量量化];
E --> F[得到Q];
F --> G[加扰加密];
G --> H[得到E];
H --> I[转换为二进制];
I --> J[形成Bij];
J --> K[组装Bij];
K --> L[得到嵌入水印图像W];
2.2 水印嵌入
嵌入过程与Wong等人的脆弱水印技术类似,将生成的嵌入水印图像 $W$ 插入图像 $X$ 像素的LSB中,即:
[
Y = \lfloor X/2 \rfloor \times 2 + W
]
其中,$Y$ 是水印图像。该方法通过加扰将水印嵌入图像像素的LSB,使来自一个块的水印随机放置在其他块的LSB中,引入了块间的非确定性依赖关系,提高了对VQ攻击和移植攻击的鲁棒性,同时由于块大小为 $2 \times 2$,能实现出色的篡改定位,加扰加密策略还能增强区分内容篡改和水印篡改的能力。
2.3 认证算法
验证过程如下:
1.
提取水印
:从目标图像 $Y^
$ 每个像素的LSB中提取水印 $W’$。
2.
计算加密矩阵和量化矩阵
:根据水印生成步骤4的逆过程,使用 $W’$ 计算重构的加密矩阵 $E’$,再使用正确密钥 $k$ 得到重构的 $LL$ 带标量量化矩阵 $Q’$,即 $Q’ = P^{-1}(E’, k)$。
3.
计算差异矩阵
:根据密钥 $k_1$,应用水印生成的步骤1和2计算 $Y^
$ 的 $LL$ 带标量量化矩阵 $Q^
$,计算差异矩阵 $\Delta Q = |Q^
- Q’|$。
4.
篡改定位和鉴别
:
- 若 $\Delta Q = 0$,则对应图像块 $Y^
{ij}(2)$ 被认为是真实的。
- 若 $\Delta Q \neq 0$ 且 $t
{ij} \geq T$,则认为是图像块 $Y^
{ij}(2)$ 的内容被篡改。
- 若 $\Delta Q \neq 0$ 且 $t
{ij} < T$,则认为是水印被篡改,图像块 $Y^*_{ij}(2)$ 内容真实。
其中,$t_{ij}$ 表示 $\Delta Q_{ij}$ 的8个相邻像素组成的集合 $N_8(\Delta Q_{ij})$ 中的非零像素数,$T$ 是预定义的阈值。
以下是认证算法流程的 mermaid 流程图:
graph TD;
A[目标图像Y*] --> B[提取水印W'];
B --> C[计算E'];
C --> D[计算Q'];
A --> E[计算Q*];
D --> F[计算差异矩阵ΔQ];
E --> F;
F --> G[判断ΔQ是否为0];
G -- 是 --> H[图像块真实];
G -- 否 --> I[判断tij是否大于等于T];
I -- 是 --> J[内容被篡改];
I -- 否 --> K[水印被篡改,内容真实];
2.4 阈值 $T$ 的选择
篡改鉴别可表述为一个二元假设检验问题:
- $H_0$:图像块 $Y^
_{ij}(2)$ 的内容被篡改,即 $Y^
{ij}(2)$ 不真实。
- $H_1$:测试图像中的水印有改动,但图像块 $Y^*
{ij}(2)$ 的内容真实。
为确定有效假设,将 $t_{ij}$ 与合适的阈值 $T$ 进行比较。系统性能可通过误接受概率 $P_{fa}(T)$(即图像块内容被篡改时被认为真实的概率)和误拒绝概率 $P_{fr}(T)$(即图像块内容真实时被拒绝的概率)来衡量:
[
P_{fa}(T) = P{t_{ij} < T | H_0}
]
[
P_{fr}(T) = P{t_{ij} \geq T | H_1}
]
在理想情况下,应存在一个阈值 $T$ 使 $P_{fa}(T)$ 和 $P_{fr}(T)$ 都为零。根据概率统计基本定理计算 $P_{fa}(T)$ 和 $P_{fr}(T)$:
-
假设 $H_0$ 下
:若 $Y^
_{ij}(2)$ 的内容被随机篡改,$Q^
{ij}$ 以相同概率取 $[0, 15]$ 内的整数,检测到内容修改的概率约为 $15/16$。假设 $N_8(\Delta Q
{ij})$ 的图像内容被随机篡改,则 $t_{ij} \sim B(8, 15/16)$,根据定理1可得:
[
P_{fa}(T) = \sum_{t = 0}^{T - 1} C_8^t (15/16)^t (1 - 15/16)^{8 - t}
]
-
假设 $H_1$ 下
:设 $\Delta w$ 是篡改区域中的水印数量,可得重构的 $LL$ 带标量量化矩阵 $Q’$,其中改变的比特服从均匀分布,每个像素 $Q’$ 非零的概率为:
[
P_{\Delta w} = (\Delta w/4)/((m/2) \times (n/2)) = \Delta w/(m \times n)
]
则 $t_{ij}$ 小于给定 $T$ 的概率为:
[
P(t_{ij} < T | H_1) = \sum_{t = 0}^{T - 1} C_8^t (P_{\Delta w})^t (1 - P_{\Delta w})^{8 - t}
]
[
P_{fr}(T) = 1 - \sum_{t = 0}^{T - 1} C_8^t (P_{\Delta w})^t (1 - P_{\Delta w})^{8 - t}
]
随着 $T$ 的增大,$P_{fa}(T)$ 增大,$P_{fr}(T)$ 减小。对于给定的 $T$,$P_{\Delta w}$ 越大,$P_{fr}(T)$ 越大。为以高概率(如超过99%)检测内容篡改,阈值 $T$ 不超过5($P_{fa}(5) = 8.7 \times 10^{-4}$)。当 $P_{\Delta w} < 0.075$ 时,$P_{fr}(5)$ 几乎为零;当 $P_{\Delta w} = 0.25$ 时,误拒绝概率 $P_{fr}(T)$ 接近0.03。这表明当篡改的水印信息少于1/5时,该算法能以高概率区分图像内容篡改和水印篡改。
以下是不同情况下概率计算的表格:
| 假设情况 | 概率计算 |
| ---- | ---- |
| $H_0$ | $P_{fa}(T) = \sum_{t = 0}^{T - 1} C_8^t (15/16)^t (1 - 15/16)^{8 - t}$ |
| $H_1$ | $P_{fr}(T) = 1 - \sum_{t = 0}^{T - 1} C_8^t (P_{\Delta w})^t (1 - P_{\Delta w})^{8 - t}$ |
3. 性能分析与仿真结果
为了验证所提出方法的有效性,进行了相关实验,并对算法性能进行了讨论。在仿真中,测试图像为不同大小的灰度图像,像素值范围在 $[0, 255]$ 之间。
使用 $240×320$ 的图像进行实验,原始图像如图5 (a) 所示,水印图像如图5 (b) 所示,水印图像与原始图像的峰值信噪比(PSNR)为 $51.1023$ dB。从水印图像中提取的差异矩阵如图5 (c) 所示,所有像素均为零,表明测试图像是真实的。
| 图像类型 | 图像展示 |
|---|---|
| 原始图像 | 图5 (a) |
| 水印图像 | 图5 (b) |
| 差异矩阵 | 图5 (c) |
3.1 篡改鉴别
为了说明该方法在篡改鉴别方面的有效性,对图5 (b) 的水印图像进行了几种篡改实验:
-
篡改1
:同时篡改图像内容和水印,在图5 (b) 的水印图像上粘贴一个假的车牌号 “R237JAD”,篡改后的图像如图6 (a) 所示。
-
篡改2
:篡改图像内容,将图5 (b) 中每个像素的7个最高有效位(MSBs)替换为图6 (a) 中对应像素的MSBs,结果图像如图6 (b) 所示。
-
篡改3
:篡改水印,将图5 (b) 中每个像素的LSB替换为图6 (a) 中对应像素的LSB,即改变测试图像的水印,篡改后的图像如图6 (c) 所示。
图6 (d)、6 (e) 和6 (f) 分别是三种篡改对应的差异图像,通过观察差异图像可以实现篡改定位和鉴别。从图6 (a) 可以看到,被篡改的车牌号区域被定位,图像中分散的孤立点表明嵌入的水印被更改。而在图6 (c) 中,只有分散的孤立点出现,这意味着图像的操作仅局限于水印,图像内容是真实的。
根据预定义的阈值 $T = 5$,三种篡改的认证结果分别如图7 (a)、7 (b) 和7 (c) 所示。图7 (a) 和7 (b) 显示了相同的篡改区域,这表明该方法无论篡改区域中的水印是否被更改,都能定位图像内容的修改。图7 (c) 中没有非零像素,意味着相应的图像内容是真实的。
Wong等人的LSB修改方案将从一个块导出的水印嵌入到同一块的LSB中,因此,无论篡改是发生在图像内容还是水印上,解码图像中显示的更改仍然局限于该块,导致检测结果无法区分。使用相同的测试图像和相同的修改,图7 (d)、7 (e) 和7 (f) 显示了使用Wong算法的三种篡改结果。该算法可以定位图像的更改位置,但无法判断对标记图像进行了何种操作,即使图6 (c) 包含真实的数字内容,也可能被判定为伪造。
以下是不同篡改实验及结果的 mermaid 流程图:
graph TD;
A[水印图像Y] --> B[篡改1:内容和水印];
A --> C[篡改2:内容];
A --> D[篡改3:水印];
B --> E[得到篡改后图像6(a)];
C --> F[得到篡改后图像6(b)];
D --> G[得到篡改后图像6(c)];
E --> H[计算差异图像6(d)];
F --> I[计算差异图像6(e)];
G --> J[计算差异图像6(f)];
H --> K[认证结果7(a)];
I --> L[认证结果7(b)];
J --> M[认证结果7(c)];
A --> N[Wong算法];
N --> O[篡改实验];
O --> P[结果7(d)];
O --> Q[结果7(e)];
O --> R[结果7(f)];
3.2 定位精度
在本实验中,测试了所提出算法的定位精度。当前的分块方案中,篡改定位精度为 $8×8$ 块大小,而本算法可以达到 $2×2$ 的精度。图8 (a) 是由该算法生成的水印图像,使用 “Photoshop” 在图8 (a) 中放置一个杯子,篡改后的图像如图8 (b) 所示。使用预定义的阈值 $T = 5$,本算法的认证结果如图8 (c) 所示,使用相同方法,Wong算法的认证结果如图8 (d) 所示。这些结果表明,本认证算法比现有的分块方案(如Wong算法)更准确。
| 算法 | 定位精度 | 认证结果 |
|---|---|---|
| 本算法 | $2×2$ | 图8 (c) |
| Wong算法 | $8×8$ | 图8 (d) |
4. 结论
提出了一种基于小波的脆弱水印算法用于安全的图像认证。在该算法中,使用离散小波变换(DWT)生成嵌入水印,然后通过混沌系统对水印进行加扰加密后嵌入图像数据的LSB中,提高了水印系统的安全性。仿真结果表明,该方法具有出色的篡改定位和鉴别性能。
未来的工作将致力于开发一种具有篡改恢复功能的安全脆弱水印方案,进一步提升水印算法在图像安全领域的应用价值。
超级会员免费看
40

被折叠的 条评论
为什么被折叠?



