1
00:00:00,000 --> 00:00:07,000
一段 AI 回答被转发，
又被改了几句。还能找到它的来源吗？

2
00:00:07,000 --> 00:00:14,000
复制很容易，原来的来源标签却常常跟丢了。

3
00:00:14,000 --> 00:00:21,000
再删几句、换几个词，能留下的线索就更少。

4
00:00:21,000 --> 00:00:28,000
我们想找回的，是生成时事先约定的来源编号。

5
00:00:28,000 --> 00:00:35,000
PURA 的办法：把这串编号，藏进每次选词的随机过程。

6
00:00:35,000 --> 00:00:42,500
普通水印像一盏灯：只能告诉你，有没有水印。

7
00:00:42,500 --> 00:00:50,000
多比特水印还能带一串编号，就像包裹上的来源标签。

8
00:00:50,000 --> 00:00:57,500
同一串编号会分散写在许多位置，不靠某一个词撑住。

9
00:00:57,500 --> 00:01:05,000
编号可以代表系统 A；它不会自动告诉你真人作者是谁。

10
00:01:05,000 --> 00:01:11,600
第一关：藏线索以后，别改变各个词原本出现的概率。

11
00:01:11,600 --> 00:01:18,200
第二关：几百个词的篇幅里，要能放下有用的编号。

12
00:01:18,200 --> 00:01:24,800
第三关：文字被删改以后，还希望找回一些线索。

13
00:01:24,800 --> 00:01:31,400
给某些词额外加分是一条路，保持概率不变是另一条路。

14
00:01:31,400 --> 00:01:38,000
PURA 选择后者：不动词的概率，转动背后的随机数。

15
00:01:38,000 --> 00:01:46,333
把云、雨、海、光、风放上尺子。概率大，就占得宽一点。

16
00:01:46,333 --> 00:01:54,667
所有宽度加起来正好是 1，像把整张抽签纸分给五个词。

17
00:01:54,667 --> 00:02:03,000
闭眼在尺子上均匀点一下：点中谁的地盘，就选谁。

18
00:02:03,000 --> 00:02:11,333
点恰好落在 0.15 时，
算右边的“雨”，不算左边的“云”。

19
00:02:11,333 --> 00:02:19,667
多抽几次，地盘越宽的词，被选中的次数通常越多。

20
00:02:19,667 --> 00:02:28,000
一次抽中什么不重要；重要的是每个位置都有同样的机会。

21
00:02:28,000 --> 00:02:35,767
现在把尺子弯成一只钟表。走过一圈，就回到起点。

22
00:02:35,767 --> 00:02:43,500
来源编号决定往前转多少，不是规定最后必须落在哪一格。

23
00:02:43,500 --> 00:02:51,267
从 0.15 出发，往前转 0.375 圈。
数字可以先记在一边。

24
00:02:51,267 --> 00:02:59,000
停在 0.525，落进“海”的范围，
于是这次输出“海”。

25
00:02:59,000 --> 00:03:06,767
把均匀散开的点一起转动，它们转完仍然均匀散开。

26
00:03:06,767 --> 00:03:14,500
抽一万次看看：转动前后，各段接住的点数仍然差不多。

27
00:03:14,500 --> 00:03:22,267
论文的单次调用保证，还依赖伪随机、种子不重复等前提。

28
00:03:22,267 --> 00:03:30,000
所以，分布能保持，不等于固定密钥反复使用就绝对安全。

29
00:03:30,000 --> 00:03:36,833
模型几乎确定要选哪个词时，能腾挪的空间就很小。

30
00:03:36,833 --> 00:03:43,667
选择越丰富，才越有机会多放几位；放不下的位置就跳过。

31
00:03:43,667 --> 00:03:50,500
编号也讲究排法：普通二进制跨一格，可能同时变三位。

32
00:03:50,500 --> 00:03:57,333
Gray 码让相邻格只差一位，
能减轻近邻偏移带来的误差。

33
00:03:57,333 --> 00:04:04,167
密钥和前面两个词元决定写哪几位；重复的种子要跳过。

34
00:04:04,167 --> 00:04:11,000
还可以把词在尺子上的顺序打乱，但每个词的宽度不变。

35
00:04:11,000 --> 00:04:18,700
找回编号也需要工具：密钥，以及源模型或兼容代理模型。

36
00:04:18,700 --> 00:04:26,433
看见“海”，只知道点落在一段范围，猜不回唯一的位置。

37
00:04:26,433 --> 00:04:34,133
验证方拿出几种可能的转法，看看哪一种更说得通。

38
00:04:34,133 --> 00:04:41,867
图里的山峰与这段范围重叠越多，就给这种解释更高的分。

39
00:04:41,867 --> 00:04:49,567
再把解释分成两边：这一位是 0，还是 1？

40
00:04:49,567 --> 00:04:57,300
两边分数一比较，得到支持分 LLR：
正数偏向 1，负数偏向 0。

41
00:04:57,300 --> 00:05:05,000
先保留这种“更像哪边”的线索，不急着让一个词拍板。

42
00:05:05,000 --> 00:05:11,667
四处线索一起加：+0.42、+0.94、−0.30、+0.41，
得到 +1.47。

43
00:05:11,667 --> 00:05:18,333
分数相加后偏向哪边，就更支持哪一位；
绝对值越大越有把握。

44
00:05:18,333 --> 00:05:25,000
额外校验能发现一些错误，再尝试翻转最没把握的那一位。

45
00:05:25,000 --> 00:05:31,500
删掉一个词，后面的局部线索也可能对不上原来的节奏。

46
00:05:31,500 --> 00:05:38,000
没受影响的位置还能帮忙；失步的位置就不能照常解读。

47
00:05:38,000 --> 00:05:44,500
改写会让线索变少，也可能让一些线索转而支持错误答案。

48
00:05:44,500 --> 00:05:51,000
关键是：留下的正确线索，能不能压过干扰？

49
00:05:51,000 --> 00:05:57,500
在 Γ 大于 0 等条件下，
有效线索越多，单比特误码上界越低。

50
00:05:57,500 --> 00:06:04,000
TM1 攻击者知道算法，
但拿不到密钥，也看不到检测反馈。

51
00:06:04,000 --> 00:06:11,000
先看同一场考试：36 个数据位、200 个词元，
而且没有后续改写。

52
00:06:11,000 --> 00:06:18,000
要求是整串编号一位不差：StealthInk 为 0.5%，
BiMark 为 28.9%。

53
00:06:18,000 --> 00:06:25,000
PURA 用兼容代理模型核验为 91.7%，
用源模型为 97.2%。

54
00:06:25,000 --> 00:06:32,000
RS-BH 为 81.4%，
但它会改变分布，要单独看待。

55
00:06:32,000 --> 00:06:39,000
99.02% 是单个位的准确率；
约 0.05 秒是每次核验用时。

56
00:06:39,000 --> 00:06:46,000
另一项测试里，特定分类器为 50.23%，
接近一半一半地猜。

57
00:06:46,000 --> 00:06:52,800
换一道题：只有 18 位原始编号，
也关掉了 SPC 校验修复。

58
00:06:52,800 --> 00:06:59,600
遇到 Diaa 等人的定向重写，
整串编号匹配率只剩 8.69%。

59
00:06:59,600 --> 00:07:06,400
线索多一些会有帮助：长到 5,000 个词元时，
每位准确率超过 98%。

60
00:07:06,400 --> 00:07:13,200
更强的密钥相关压力测试里，
每位准确率还能降到 47.35%。

61
00:07:13,200 --> 00:07:20,000
所以它提供有条件的来源线索，
能找回多少仍取决于具体条件。

62
00:07:20,000 --> 00:07:30,000
下次看到 AI 文字，不妨想想：
选词背后的随机数，也能留下线索。
