// ONE-TIME PAD · 理论上无法破解

一次性
密码本

数学上证明的绝对安全加密。只需要加减法,不需要任何工具。
密钥用完即废,每次都不同。

纯数字加法 理论上无法破解 香农完美保密
// 01 · CONCEPT

原理:字母变数字,做加法

OTP 的核心思想极简:把每个字母变成数字,和密钥数字相加,超过26就减26。解密是反过来减。

加密 = 字母数字相加
明文字母转成数字,加上密钥数字,超过26减26,转回字母。
( 明文 + 密钥 ) mod 26 = 密文
解密 = 字母数字相减
密文字母转成数字,减去密钥数字,不够就加26,转回字母。
( 密文 - 密钥 + 26 ) mod 26 = 明文
🎲
密钥必须完全随机
和消息一样长的随机数字序列,提前写好给对方。每次用不同密钥,用完就销毁。
密钥长度 ≥ 消息长度
🔥
为什么无法破解?
没有密钥,任何密文都可以对应任意明文,没有额外信息,数学上无法区分。
香农 1949年证明
// 字母数字对照表(抄在课本夹缝里)
// 02 · TRAINER

加解密练习器

输入消息和密钥,看完整的手算过程,每一步都显示出来,练习脑子怎么算。

// OTP CALCULATOR
位置 明文 明文数字 操作 密钥 密钥数字 相加 mod 26 密文
// 输入消息和密钥查看计算过程
加密结果
// 03 · MANUAL

手算完整步骤

不用任何工具,完全靠脑子和笔在纸条上完成加密。以 "MEET" + 密钥 "XKQZ" 为例。

STEP 01 · 加密
把每个字母写成数字
A=0, B=1 … Z=25,背下来或偷看夹缝里的表
M=12 E=4 E=4 T=19
X=23 K=10 Q=16 Z=25
STEP 02 · 加密
对应位置相加
明文数字 + 密钥数字,超过26就减26
12+23=35 → 35-26=9 → J
4+10=14 → 14 → O
4+16=20 → 20 → U
19+25=44 → 44-26=18→ S
STEP 03 · 加密
得到密文
数字转回字母,写在纸条上传给对方
MEET + XKQZ → JOUS

对方拿到:JOUS
STEP 04 · 解密
相减还原(密钥相同)
密文数字 − 密钥数字,不够就先加26
J=9 - X=23 = -14+26=12→M
O=14 - K=10 = 4 →E
U=20 - Q=16 = 4 →E
S=18 - Z=25 = -7+26=19→T
// 真实纸条长这样
TS: 2506011435 时间戳,防重放
F: K7 T: T3 S: 007 ID + 序列号
M: JOUS XMKF OTP 密文
V: Q3R MAC 校验码
// 04 · COMPARISON

OTP vs 维吉尼亚

两种方法各有适用场景,选哪个取决于你有多少时间准备密钥。

对比项 OTP 一次性密码本 维吉尼亚密码
加密速度 中等(数字加法) 较快(熟练后)
安全性 理论无敌 很高(不能频率分析)
密钥长度 和消息一样长 4个字母就够
密钥复用 绝对不能重复用 可以多次使用
密钥准备 每次要提前写好一页随机数 当面说一个词就行
适用场景 极重要消息,有时间提前准备 日常传纸条,快速灵活
历史使用 二战间谍、冷战热线 19世纪外交电报
// 05 · KEY AGREEMENT

密钥本怎么约定

OTP 最大的挑战是提前安全地把密钥传给对方。这是唯一需要当面完成的事。

01
课前或课间,当面各写一页
两人都拿一张纸,随机写下10-20个字母(闭眼乱戳键盘的感觉),互相交换一份副本。
这是唯一需要当面的步骤
02
密钥本编号,从第1行开始用
密钥本上的每一行编号对应 SEQ 序列号。第1张纸条用第1行,第2张用第2行,依次往下。
SEQ=007 → 用密钥本第7行
03
用完立即划掉或撕掉
每行密钥用过之后立刻划掉,绝对不能重复使用。重复使用等于没有加密,可以被分析破解。
重复使用 = 彻底失效
04
密钥本用完就约定下一本
快用完时提前再当面交换新的一页。也可以约定"密钥生成规则",比如把某本书某页第一行字母当密钥。
推荐:书本第N页,前M个字母
⚠ 密钥本本身就是秘密。如果有人得到密钥本,加密完全失效。把它藏好,不要放在明显的地方。