不可检测水印

不可检测水印(Undetectable Watermark)

不可检测水印的目标是同时满足两件事:

  • 可验证:合法方能检测出水印。
  • 不可区分:带水印模型与原始模型在整体分布上几乎无法区分。

这比传统红绿水印更难,但也更接近理想形态。

为什么需要不可检测水印

传统方案的痛点:

  • 红绿水印:通过显式 logits 偏置嵌入信号,容易留下统计痕迹。
  • 冈贝尔水印:单次生成失真小,但多次响应可能出现可利用规律。

不可检测水印的关键思路是:只在高熵位置嵌入,并让引导后的分布与原分布保持等价。

核心概念:经验熵(Empirical Entropy)

经验熵用于衡量某段 token 序列在生成时的不确定性。

H ( v 1 , ... , v ℓ ) = − ∑ i = 1 ℓ p ( v i ) log ⁡ p ( v i ) H(v_1,\dots,v_\ell) = -\sum_{i=1}^{\ell} p(v_i)\log p(v_i) H(v1,...,vℓ)=−i=1∑ℓp(vi)logp(vi)

  • 熵高:可选 token 多,嵌入空间大。
  • 熵低:可选 token 少,嵌入更容易引起分布失真。
序列类型 概率特征 是否适合嵌入
低熵序列(如确定性表达) 某些位置接近唯一答案
高熵序列(如开放式续写) 多个 token 概率接近

经验熵主要用于"筛选可嵌入位置"。

核心机制

只在高熵序列嵌入

1) 嵌入条件

H ( v 1 , ... , v ℓ ) ≥ H 0 H(v_1,\dots,v_\ell) \ge H_0 H(v1,...,vℓ)≥H0

  • H0 是预设阈值。
  • 只有高于阈值的上下文才触发水印信号。

2) PRF 引导信号

r = PRF ( g k , v 1 , ... , v ℓ ) r = \text{PRF}(gk, v_1,\dots,v_\ell) r=PRF(gk,v1,...,vℓ)

  • gk:密钥。
  • (v_1...v_l):高熵上下文。
  • r:伪随机输出,用于决定后续引导策略。

3) 引导原则

  • r 映射到目标 token 子集或采样约束。
  • 只做轻微、受控的引导。
  • 目标不是"强行改写分布",而是"在等价分布中编码可验证信号"。

不可检测性的形式化定义

∣ Pr ⁡ D M , M ( 1 λ ) → 1 − Pr ⁡ g k D M , Watermark g k M ( 1 λ ) → 1 ∣ ≤ negl ( λ ) \left| \PrD\^{M,M}(1\^\\lambda) \\to 1 - \Pr_{gk}D\^{M,\\text{Watermark}_{gk}\^{M}}(1\^\\lambda) \\to 1 \right| \le \text{negl}(\lambda) PrDM,M(1λ)→1−gkPrDM,WatermarkgkM(1λ)→1 ≤negl(λ)

这一定义的直观含义:

  • 任意区分器 D(算法或攻击者)去区分"原模型输出"和"带水印输出",其优势最多是可忽略量。
  • 安全参数 lambda 增大时,这个优势趋近于 0。

换句话说,攻击者在统计上几乎只能"瞎猜"。

关键设计

1) 为什么要限制在高熵区

  • 低熵区几乎没有采样自由度,嵌入容易产生可检测偏差。
  • 高熵区有足够自由度,更容易隐藏引导信号。

2) 为什么强调 PRF 输入不重复

  • PRF 是确定性的:相同输入会得到相同输出。
  • 若输入频繁重复,攻击者可通过重复样本做相关性分析。
  • 高熵上下文更不易重复,可降低被反向建模风险。

3) 与硬偏置方案的本质差异

  • 硬偏置:直接推高/压低一类 token 概率,统计痕迹更明显。
  • 不可检测方案:强调分布等价下的可验证编码,重点在"可验证但难区分"。
相关推荐
冬奇Lab8 小时前
Workflow 系列(01):基础理论——三种执行模型与 Anthropic 5 种模式
人工智能·agent·工作流引擎
冬奇Lab8 小时前
每日一个开源项目(第143篇):page-agent - 纯 JS 的网页 GUI Agent,无需截图、无需插件、无需后端
前端·人工智能·agent
To_OC9 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
程序员cxuan10 小时前
虽迟但到!GPT-5.6 终于来了!
人工智能·后端·程序员
ZhengEnCi12 小时前
Q03-UI设计进阶技巧-让界面更高级的7个核心原则
人工智能
IT_陈寒12 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
金銀銅鐵13 小时前
[Python] 扩展欧几里得算法
python·数学·算法
不加辣椒13 小时前
第12章 工具调用与 Agent 提示工程
人工智能
用户16931761726613 小时前
前端给AI消息做日期分组与时间线
人工智能
i晟14 小时前
Claude Code Harness 深度拆解:从你敲回车到模型回复,中间发生了什么
人工智能