🏠 总目录📚 本教程 00 · 怎么用这份教程
📑 本页目录(点开跳转)

00 · 怎么用这份教程

16 分钟


🎯 一句话

这套教程回答一个和本库其他几套完全不同方向的问题: 「怎么在一个有敌人的世界里,保证一件事是真的?」


🧭 它和本库其他教程的关系

   其他几套(机器学习 / 推荐 / Kaggle / 大模型 / 智能体):
        目标是【让预测更准】
        对手是【噪声和过拟合】—— 它们不会针对你

   这一套(密码学):
        目标是【让保证成立】
        对手是【一个聪明的、主动的、会针对你的人】⭐

🔑 这个差别决定了两个领域的思维方式完全不同: 机器学习里,「在测试集上跑得好」就算成功。 密码学里,「我想不出怎么攻破它」什么都不算 —— 必须证明「攻破它 ⟹ 解决某个公认的数学难题」。

所以这套教程不需要任何前置知识,和其他教程零依赖,可以独立读。 但反过来,读完它以后,本库这几处会突然变得好懂:

本库的哪一章 学完这套之后回去看,会接上什么
智能体教程 · 沙箱与提示注入 全库唯一另一处「假设对手是主动的」——它的威胁建模、分层防御、硬边界,和第 1 章是同一套语言 ⭐
Claude 资料库 · 零信任架构 「不靠藏起来获得安全」的现代工程版,就是第 1 章的 Kerckhoffs 原则
Kaggle · 数据泄露与外部数据 里面的「对抗验证」是训一个二分类器去区分两个分布——那正是第 4 章第 8 章里的判别器 D ⭐
数学原理 · PAC 学习 「承认做不到完美,改要求高概率近似」——和第 8 章的 negl 是同一个妥协
大模型 · 合规与伦理 那边给的是要求(PII 脱敏、数据不出内网、保留期限),第 1922 章给的是兑现这些要求的技术
模型上线之后 · 合规审计与模型卡 那边「审计要能回答的五个问题」全都默认记录本身是可信的;而「记录有没有被事后改过」它没有回答,数据库时间戳也答不了 —— 只有第 17 章的签名 + 哈希链答得了 ⭐

📚 你会学到什么(25 篇的全景)

阶段 内容 你会拿到什么
0 · 坐标系 到底在保护什么 四个安全目标,以及它们为什么必须分开谈
1 · 从失败里学 古典密码 / 一次一密 所有古典密码倒掉的同一个原因;唯一数学上完美的方案
2 · 对称加密 伪随机 / 流密码 / 分组密码 / 模式 / 安全定义 能看懂 AES-GCM 这行配置里每个词在干嘛
3 · 完整性 哈希 / MAC / 认证加密 / Merkle 树 「加密了」≠「安全了」 —— 这一段讲为什么
4 · 公钥密码 数论 / RSA / DH / 椭圆曲线 / 签名 那个「不用见面也能共享秘密」的魔术
5 · 真实系统 PKI / 密钥管理 / 区块链 浏览器那把小锁背后到底发生了什么
6 · 前沿 零知识证明 / 云密码学 / 后量子 密码学正在解决的下一批问题
7 · 动手 三个项目 亲手打破五个错误实现(nonce 重用 / CBC 填充预言 / 长度扩展 / 教科书 RSA / ECDSA 的 k 重复),再实现一个带 AAD 的加密文件格式,最后写一个密码学代码审计器

⚠️ 三条阅读规则

① 数学全部可以跳过

每个公式下面都有 💡人话翻译只看人话翻译,你能拿到 80% 的价值。 推导放在 <details markdown="1"> 折叠块里,标注 📐 推导(想看再点)——不点开完全不影响读下一章

② 这套教程的写法:先讲怎么被打破 ⭐

   常见的教法:讲一个方案 → 说它很安全 → 下一个
   → 结果:你记住了一堆没来由的规矩
           ("IV 必须随机"、"nonce 不能重复"、"要用 OAEP 填充")

   这套的教法:
   ① 提出一个看起来合理的方案
   ② 【把它打破】—— 给出具体攻击
   ③ 修补,看修补后的样子
   → 结果:那些规矩你根本不用背,因为你知道不遵守会死在哪 ⭐

💡 这也是密码学真实的历史进程。几乎每一个现代设计,都是某次事故的伤疤。

③ 每章都有「真实世界翻车案例」

Nonce 重用打穿了 WEP 和 PlayStation 3、k 值复用泄露了索尼的签名私钥、 长度扩展攻击打穿过一批 API 认证 —— 这些都不是假想,是真的发生过的事故


🧩 每章的固定结构

   🎯 一句话        ← 这章的核心,30 秒读完
   正文(先攻击 → 再修补 → 再形式化)
   📐 折叠推导      ← 想看再点
   💥 真实世界翻车  ← 这个设计是哪次事故的伤疤
   ⭐ 坑表 / 洞察
   🔗 和站内其他章的关系
   ✅ 检查点        ← 答案折叠着,先自己想
   🛑 可以停在这里
   ⚡ 走神救援      ← 整章的浓缩,回来时先读这个 ⭐

「走神救援」是为 ADHD 专门设计的: 中断之后回来,不要从头读 —— 直接读上一章的走神救援,30 秒接回上下文。


🧮 需要的数学(比你以为的少)

   ✅ 需要:
   · 加减乘除、取余数(mod)        ← 真的就这些
   · 知道什么叫「指数」 2¹⁰ = 1024
   · 一点点概率直觉("两个人生日相同的概率")

   ❌ 不需要:
   · 抽象代数、数论课
   · 微积分、线性代数
   · 编程(想动手才需要,第 24 章才用)

💡 第 13 章会把公钥密码需要的数论从零讲一遍,就四个概念。 在那之前完全不需要数学准备。


⏱️ 四种读法

你的情况 路线 时间
只想搞懂「https 那把锁」 01 → 08 → 09 → 14 → 15 → 17 → 18 3 小时
想要那几个「啊哈」时刻 03 → 08 → 15 → 21 2 小时
做安全/后端开发 01–19 顺读,跳过 16、20 1 周
完整打牢 全部顺读 + 做项目 2–3 周

💡 如果只有一小时:读 03 一次一密08 安全定义这两章会永久改变你看待「安全」这个词的方式。


🗺️ 三章高光

章节 为什么
第 3 章 · 一次一密 唯一数学上可证明完美的加密方案 —— 以及它为什么几乎没人用
第 8 章 · 安全定义 「安全」这个词第一次有了精确的、可证伪的定义。全教程的思维转折点
第 21 章 · 零知识证明 向别人证明你知道一个秘密,却不透露秘密的任何信息。密码学里最反直觉的结果

✅ 检查点

  1. 密码学和机器学习面对的"对手"有什么根本不同?
  2. 这套教程的写法有什么特别之处?为什么这么写?
  3. 遇到公式卡住了,正确的做法是什么?
  4. 中断之后回来,应该先读什么?
  5. 只有一小时的话该读哪两章?
👀 答案
  1. 机器学习的对手是噪声和过拟合,它们不会针对你;密码学的对手是一个聪明的、主动的、会针对你的人。所以机器学习里"测试集跑得好"算成功,密码学里"我想不出怎么攻破"什么都不算。
  2. 先讲怎么被打破,再讲怎么修。因为这样那些规矩(IV 要随机、nonce 不能重复)你不用背——你知道不遵守会死在哪。这也是密码学真实的历史进程。
  3. 只看 💡人话翻译,跳过折叠的推导块。不点开完全不影响读下一章。
  4. 上一章的 ⚡走神救援,30 秒接回上下文,不要从头读。
  5. 03 一次一密 + 08 安全定义。它们会永久改变你看待"安全"这个词的方式。

🛑 开始

走神救援

这套教程和本库其他几套零依赖,可独立读。核心差别:机器学习的对手是不针对你的噪声,密码学的对手是一个聪明的、主动的人——所以机器学习里"测试集好"算成功,密码学里"我想不出怎么攻破"什么都不算,必须证明"攻破它⟹解决某个公认数学难题"。⭐写法:先讲怎么被打破,再讲怎么修——这样那些规矩(IV要随机/nonce不能重复/要OAEP填充)你不用背,因为知道不遵守会死在哪。数学全部可跳过(有💡人话翻译,推导折叠),需要的只有取余数和一点概率直觉。三章高光:03 一次一密(唯一可证明完美的方案,以及为什么没人用)、08 安全定义("安全"第一次有精确定义,思维转折点)、21 零知识证明(证明你知道秘密却不透露它)。只有一小时就读 03 + 08

👉 01-密码学到底在保护什么.md

打卡记录保存在你的浏览器里,首页能看到总进度