Signal Double Ratchet

深入浅出图谱 · 11 张架构图重新讲一遍棘轮加密

面向工程师 含服务端视角 独立 HTML 图集
🐣
第一次接触 Signal?从零基础渐进版开始
25 步交互式教程,每步只引入一个新概念,配键盘 ← / → 导航。完全不需要密码学背景。 老手可以直接看下方 11 张图谱。

本图谱以独立 HTML 图集形式呈现 Signal Double Ratchet 协议,11 张图各自专注一个角度: 全景视角、安全直觉、状态机、消息乱序、X3DH 与 Double Ratchet 衔接、服务端契约。

从全景到细节、从握手到运行、从客户端到服务端。 每张图都遵循"虚线说语境,实线说实体"的视觉规范,并配有 takeaway 一句话结论。

建议按编号顺序阅读 (#01 → #11),也可参考下方"阅读路径"按需跳读。

A Foundation · 全景与直觉 从最高视角建立心智模型
B Mechanics · 棘轮机制 单棘轮 + DH 翻转 + 双棘轮联动
C Edge Cases · 工程实战 乱序处理 — 实现复杂度的根源
D Bootstrap · X3DH 启动 离线协商 + 与 Double Ratchet 衔接 + OPK 防复用
E System View · 系统视角 完整链路 + 密钥总账

📖 推荐阅读路径

📊 完整精读 01 → 02 → 03 → 04 → 05 → 06 → 07 → 08 → 09 → 10 → 11
⚡ 30 分钟分享 01 → 02 → 05 → 08 (4 张, 抓骨架)
🔧 服务端 RD 01 → 09 → 10 → 11 (协议外壳 + 服务端契约)
🔐 安全工程师 02 → 03 → 04 → 06 → 11 (密码学机制深挖)
🆕 新人 Onboarding 01 → 02 → 07 → 11 (建立全景 + 速查)

📚 基础术语速查 · Glossary

本图谱涉及的核心术语. 详细底层概念在每张子图的"Reference"小节有补充。

概念端到端加密 (E2EE)

加密发生在客户端, 中间任何节点 (含服务端) 都看不到明文. Signal Protocol 是 E2EE 的工业标准。

协议Signal Protocol

Open Whisper Systems 设计的 E2EE 协议家族. 由 X3DH 握手 + Double Ratchet 持续运转两部分组成。

机制棘轮 (Ratchet)

密码学中的"单向推进"机制. 每次推进生成新密钥, 旧密钥不可恢复. 是前向安全的核心实现手段。

安全前向安全 / 后向安全

FS (Forward Secrecy) 保护过去, PCS (Post-Compromise Security) 保护未来. Signal 同时提供两者。

概念公钥 / 私钥

私钥本地保密, 公钥可公开. 双方各自用私钥 + 对方公钥做 DH, 算出相同的共享密钥。

实现vodozemac / libsignal / Olm

Signal Protocol 的开源实现. vodozemac (Rust) = Matrix 用; libsignal = Signal 官方; Olm = Matrix 历史版本。