返回笔记本

密码学 - 学习导航

2026-11-05 期中范围更新:教材第 1 至 7 章(止于 RSA)。
建议依序研读:第1至2章基础解析 →\to 第3至5章对称密码解析 →\to 第6至7章数论与RSA解析,并在 31道重点课后习题详解 中集中演练。

一、期中核心复习路线与知识索引

本次期中考查重点截止于教材第 7 章(RSA 密码体制)。前三篇系统梳理底层机制、代数证明与标准算例;第四篇对全部 31 道指定课后题提供详尽的手算推演与考点辨析。

学习次序核心知识模块解析核心考点与技能掌握
1第1至2章:古典密码、序列密码与LFSR掌握单表代换统计分析、同余剩余类与模逆判据、一次一密(OTP)条件及 LFSR 状态环周期推导
2第3至5章:DES、AES与操作模式证明 Feistel 网络可逆性、推导 DES 首轮位数据流通路、掌握 GF(28)\mathrm{GF}(2^8) 有限域代数手算与工作模式攻击
3第6至7章:数论工具与RSA全流程掌握扩展欧几里得(EEA)求模逆、平方-乘快速模幂、RSA 密钥生成、双模数规范及全域正确性证明
4前7章期中指定课后题详解针对 31 道指定典型题逐题给出已知参量、代数模型、逐步推导、最终结论与易错陷阱

指定典型习题清单(31 题)

  • 第1章: 1.1(单表替换)、1.2(移位密码)、1.5(同余等价类)、1.7(环与乘法逆元表)、1.9(模幂与离散对数)。
  • 第2章: 2.1 仅第(1)(2)问(序列密码)、2.5(LFSR 输出序列)、2.8(四位 LFSR 状态环分解)。
  • 第3章: 3.1(S盒查表)、3.3(DES首轮推导)、3.4(子密钥位影响)、3.5(单比特雪崩效应)、3.6(弱密钥)、3.9(DES 穷举复杂度)。
  • 第4章: 4.4(有限域加法)、4.5(有限域模乘)、4.6(不可约多项式约简)、4.7(有限域乘法逆元)。
  • 第5章: 5.1(ECB/CBC 差错传播)、5.2(IV 泄露与密钥搜索)、5.3(CBC 缺少 IV 解密)、5.5(OFB 密钥流重用)、5.16(DESA 白化掩码消去)。
  • 第6章: 6.3(对称密钥组合数)、6.5(辗转相除法)、6.6(扩展欧几里得求模逆)、6.10(仿射密码模逆求解)。
  • 第7章: 7.1(欧拉函数 φ(n)\varphi(n))、7.2(RSA 密钥对生成判定)、7.3(快速模幂与加解密验证)、7.11(小模数质因数分解攻击)。

下方保留全书知识图谱以助宏观理解。第 8 章以后的 Diffie-Hellman、ECC 椭圆曲线、散列函数、数字签名与 PKI 信任协议属于后续全书拓展,暂不纳入本次前 7 章期中主线。当前各复习模块以上表为准。


一、为什么需要重新整合这套笔记

很多时候学密码学容易陷入两种极端:要么一上来就掉进抽象数论和复杂的公式推导里,背了一堆欧拉定理、有限域多项式,却不知道在实际网络中到底用在哪里;要么直接去调 OpenSSL 或 Web Crypto API,把 encrypt() 当成万能黑盒,误以为“加密了就安全”,结果在协议设计时把缺少认证的密文、复用 IV 的 CTR 模式、甚至裸奔的教科书 RSA 直接送上了生产环境。

密码学不是孤立的数学拼盘,而是一套严密的对抗性工程系统。它的终极目标,是在完全不可信、充满敌意(窃听、篡改、重放、冒充)的公共信道上,构建起可信的安全通信通道。

为了避免“每章记几页速记卡片、知识点支离破碎”的问题,本系列笔记参考 Christof Paar 的经典教材《深入浅出密码学——常用加密技术原理与应用》(Understanding Cryptography),将全书 13 章内容与实际网络协议经验深度融合,重构为 4 大核心主题篇 + 1 篇综合复习与考题库 的体系化大专题。

这份本地 PDF 的正文书内第 1 页对应 PDF 第 14 页;下表及各篇中,PDF 页序 = 书内页码 + 13。PDF 页序从整个文件第一页算起,引用时不要与书页底部数字混用。


二、全景知识图谱与阅读主线

现代密码学围绕三个最核心的问题展开:

  1. 通信内容如何保密?(防窃听 →\to 对称加密、流密码、分组密码与工作模式)
  2. 消息如何防篡改与防伪造?(完整性与防抵赖 →\to 哈希函数、消息认证码 MAC、数字签名)
  3. 互不相识的双方如何建立信任并共享秘密?(身份与密钥管理 →\to 数论陷门、公钥加密、DH 密钥协商、KDC、PKI/CA 与 TLS 协议)
00 / CRYPTOGRAPHY MAP从“想防什么”,走到“需要哪些机制”
不让人看懂
对称加密 → AES、序列密码、操作模式

前提:双方已有可用的秘密密钥。

建立共同秘密
公钥数学 → RSA、DH、ECDH(全书草稿,未发布)

DH/ECDH 产生共享秘密;再经 KDF 派生具体用途的密钥。交换过程还要认证。

发现恶意改动
认证 → MAC、数字签名(全书草稿,未发布)

散列压缩消息,但单独一个公开摘要不能抵抗主动替换。MAC 依赖共享秘密;签名可用公钥验证。

确认对端是谁
信任 → KDC / 票据,或 PKI / 证书链(全书草稿,未发布)

先建立可追溯的信任关系,再核验本次协议中的持钥证明。

在协议中组合,而不是任选一个算法 ↓
一个完整实例 · 证书认证的 TLS 1.3

证书链与签名认证服务器;临时 ECDHE 建立秘密;HKDF 派生密钥;Finished 确认握手;AEAD 保护应用数据。重放与消息顺序还需要协议状态处理。

阅读时始终追问三件事:谁知道这份数据?谁可以修改它?接收方凭什么接受它?各篇图解中的“公开 / 秘密 / 错误影响”均有文字标记。


三、专题笔记目录与核心问题对照

专题笔记涵盖教材范围解决的核心问题核心机制与考点演练
1. 基础概念与对称密码第 1、2、3、4、5 章(PDF 第 14—153 页)在不可信信道上,如何以极高吞吐率保密传输海量数据?算法如何对抗统计分析与代数差分攻击?柯克霍夫原则、四种攻击模型、OTP 完美保密与密钥流复用、LFSR 破译原理、Feistel 网络可逆性证明、DES 轮函数与 S 盒、GF(28)\text{GF}(2^8) 有限域代数与 xtime、AES 四大轮变换、ECB 企鹅图缺陷、CBC/CTR 模式、Padding Oracle 攻击、GCM 认证加密。
2. 公钥密码与数论基础(未发布的全书草稿)第 1、6、7、8、9 章(PDF 第 14—39、154—257 页)在没有预先共享密钥的陌生人之间,如何利用单向陷门函数实现秘密传递?扩展欧几里得求逆元、费马小定理与欧拉定理、快速幂平方乘、CRT 中国剩余定理加速、Miller-Rabin 素性测试、RSA 密钥生成与正确性严格证明、教科书 RSA 的确定性与同态攻击面、RSA-OAEP、离散对数与 Diffie-Hellman 密钥协商、椭圆曲线 Weierstrass 方程与群加法法则、标量乘法与 ECDH。
3. 散列函数、消息认证与数字签名(未发布的全书草稿)第 10、11、12 章(PDF 第 258—325 页)如何证明消息未被篡改,且不可抵赖地证明消息由特定发送方生成?散列三性质(抗第一原像、第二原像、碰撞抗性)、生日攻击与生日悖论数学证明、Merkle-Damgård 结构与长度扩展攻击、SHA-1 结构与退役演进、MAC 与数字签名的根本区别、HMAC 双层嵌套证明、CBC-MAC 长度欺骗反例、RSA 签名与 PSS、ElGamal 签名、DSA 与 ECDSA 签名及验证全推导、临时随机数复用泄漏私钥的数学推导(PS3 越狱漏洞)。
4. 密钥建立、信任体系与协议安全(未发布的全书草稿)第 13 章(PDF 第 326—351 页)与现代网络协议现实网络中,如何识别公钥属于谁?如何防止历史通信在未来私钥泄露时被解密?密钥分发的 O(n2)O(n^2) 困境、KDF/HKDF 提取与扩展、集中式对称信任(KDC 与 Kerberos 票据/认证器/重放缓存)、公钥中间人调包攻击、PKI 与 X.509 数字证书链校验算法、CRL/OCSP/OCSP 封套、完美前向保密(PFS)原理(静态 RSA 交换 vs 临时 ECDHE)、现代 TLS 1.3 握手时序与全原语融合。
5. 复习与典型题(未发布的全书草稿)跨章节综合实战检验是否能离开书本,独立进行数学推导、算法手算、漏洞构造与协议分析。模逆 EEA 表格手算、平方乘快速模幂追踪、GF(28)\text{GF}(2^8) 乘法手算、AES 单列列混淆手算、RSA 密钥生成与 CRT 加速解密、ECC 点加与倍点手算、ECDSA 随机数复用反解私钥、CBC-MAC 长度伪造构造、中间相遇攻击复杂度计算、10 大典型概念陷阱深度辨析。

四、学习方法论:“四栏分析法”

学习任何一个密码学算法或安全协议时,不要死记代码片段。强烈建议拿出一张草稿纸,建立 四栏分析表:

栏目核心考量典型疑问
1. 公开量(Public)攻击者在信道上能完整截获哪些数据?密文 CC、公钥 pkpk、模数 nn、初始化向量 IVIV、Nonce、数字证书、签名值 (r,s)(r, s)。公开这些量为什么不会泄露秘密?
2. 秘密量(Secret)绝对不能被攻击者获取的物理秘密是什么?私钥 sksk、主密钥 KK、内部状态、ECDSA 临时随机数 kk、RSA 素因子 p,qp, q。一旦发生哪怕微弱的侧信道偏差,会引发什么连锁崩溃?
3. 每次更新的量(Ephemeral)每一条消息、每一次连接必须变化的是什么?计数器 Counter、随机数 Nonce、临时 DH 私钥、会话密钥。如果这个量重复使用(Reuse),会发生什么灾难?(如流密码 C1⊕C2C_1 \oplus C_2,ECDSA 算回私钥)。
4. 必须验证的条件(Invariants)接收方或验证方在相信结果前,必须检查哪些数学或逻辑条件?模逆互素条件 gcd⁡(a,n)=1\gcd(a, n) = 1、椭圆曲线点是否在曲线上且非无穷远点、证书链签名与有效期、MAC 标签是否一致、解密填充是否有效。如果少检查一步会怎样?(如无效曲线攻击、填充预言机攻击)。

五、如何看待教材背景与现代标准演进

学习教材时,既要掌握经典算法的设计智慧(如 Feistel 网络、S 盒差分均匀性、欧拉定理),也要具备现代密码工程的辨析能力:

  • 历史算法是教学标本:DES、3DES、MD5、SHA-1 在教材中占据重要篇幅,它们是理解现代算法前身和攻防博弈的绝佳案例。但在实际工程和新系统中,这些算法的可用范围需要按具体用途和标准判断;旧算法的教学价值不构成新系统选型依据。DES/3DES 与 SHA-1 的具体状态见相应正文。
  • 裸公式 ≠\ne 工业方案:教科书上的 RSA 加密(c=me mod nc = m^e \bmod n)和裸签名(s=md mod ns = m^d \bmod n)在数学上是对称的,但在工程上直接使用属于重大漏洞(乘法同态、小指数开根、存在性伪造)。现代密码学必须搭配填充标准(如 RSA-OAEP、RSA-PSS)。
  • 保密 ≠\ne 安全:过去人们常常只做单纯的加密(如 CBC 模式),现代密码工程的共识是:不带认证的加密是极其危险的,所有新建系统应优先采用认证加密(AEAD,如 AES-GCM、ChaCha20-Poly1305)。

各篇笔记已在对应小节明确标出“经典数学原理”与“现代工业标准边界”,帮助我们在扎实搞懂原理的同时,建立起现代实战视角。



0 / 2000
正在加载评论...