索引 / 001 ZH-CN
Introduction to Modern Cryptography(现代密码学导论) cover

计算机科学

计算机科学

Introduction to Modern Cryptography(现代密码学导论)

Jonathan Katz; Yehuda Lindell

英文原名: Introduction to Modern Cryptography

一本建立在精确定义、明确假设和安全性证明之上的严谨密码学导论。作者从理论基础讲到实际使用的方案与标准,涵盖私钥和公钥密码原语。修订第3版增加了认证加密、新标准以及量子计算影响等内容。

需要的基础: 离散数学、概率基础和算法课程;熟悉模运算会有帮助。

难度等级
高级
学术层次
本科
cryptographyprovable securityencryptiondigital signaturespublic-key cryptography教科书

01 / 导读

导读

引用

Katz, J., & Lindell, Y. (2025). Introduction to Modern Cryptography (3rd ed., revised). Chapman & Hall/CRC.

章节概要

全书分为三个部分共十五章,其后是两个附录(数学背景;基础算法数论)。每章末尾都有参考文献与习题。带星号的章节和小节为可选内容:作者声明,不带星号的核心内容不依赖它们。

第一部分,第1–2章:引言;完美保密加密

第1章介绍私钥加密的基本设定、历史密码及其密码分析,并提出统领后续内容的三条原则:形式化定义、精确的假设、安全性证明。章末区分了“可证明安全”与“现实世界中的安全”。第2章定义完美保密,介绍一次性密码本,说明完美保密为何难以实用,并在带星号的一节中证明香农定理。

第二部分,第3–8章:私钥(对称)密码学

第3章“私钥加密”从计算安全(具体方法与渐近方法)讲起,给出针对窃听者的安全加密定义,引入伪随机生成器和归约证明,继而讨论CPA安全、伪随机函数与置换,以及工作模式,包括流密码和基于随机数(nonce)的加密。第4章“消息认证码”把完整性与保密性区分开来,构造MAC,涉及CBC-MAC、GMAC和Poly1305。第5章“CCA安全与认证加密”讨论选择密文攻击、认证加密方案和安全通信会话。

第6章“哈希函数及其应用”涵盖定义、Merkle–Damgård变换、通用攻击、随机预言机模型以及更多应用。第7章“对称密钥原语的实用构造”转向流密码、分组密码,以及哈希函数背后的压缩函数。第8章(带星号)“对称密钥原语的理论构造”利用单向函数和硬核谓词构造伪随机生成器、函数和置换。

第三部分,第9–15章:公钥(非对称)密码学

第9章“数论与密码学困难性假设”提供本部分其余内容所需的群论、素数、分解、RSA以及循环群假设。第10章(带星号)讲分解与离散对数的算法,并以推荐密钥长度作结。第11章“密钥管理与公钥革命”从密钥分发中心讲到Diffie–Hellman密钥交换。

第12章“公钥加密”给出定义,介绍通过KEM/DEM范式实现的混合加密、基于Diffie–Hellman的加密和基于RSA的加密,包括填充RSA、OAEP和实现中的陷阱。第13章“数字签名方案”涵盖“先哈希后签名”、RSA签名、由身份认证方案得到的签名(Schnorr、DSA/ECDSA)、证书与公钥基础设施,并以TLS作为综合案例。第14章(带星号)“后量子密码学”讨论Shor算法并给出后量子加密与签名的例子。第15章(带星号)“公钥加密的高级专题”涉及陷门置换、Paillier、秘密共享与门限加密,以及Goldwasser–Micali和Rabin方案。

核心概念

第1–2章:基础

  • 现代密码学的三条原则:形式化定义、精确假设和安全性证明;前言认为正是这一方法使该领域由技艺变成科学。
  • 完美保密:对不受计算能力限制的敌手也成立的安全性,一次性密码本可以做到,代价是密钥与消息等长。

第3–8章:私钥密码学

  • 计算安全:针对高效敌手的安全性,书中分具体与渐近两种形式讨论。
  • EAV、CPA与CCA安全:针对能力逐级增强的攻击者的一组递进定义。
  • 消息认证码与认证加密:保证完整性的工具,以及把保密与完整结合起来的工具。
  • 随机预言机模型:对哈希函数的理想化模型,书中较早引入,以便与其余内容一并处理标准化的公钥方案。
  • 伪随机生成器、函数与置换:构造加密和MAC所用的基本原语。

第9–15章:公钥密码学

  • 密码学困难性假设:分解、RSA与离散对数类假设,书中都做了精确表述。
  • 混合加密(KEM/DEM):用公钥工具加密密钥,用对称工具加密数据。
  • 数字签名与公钥基础设施:签名、证书及其在TLS中的使用。
  • 后量子密码学:量子计算机对前述构造的影响。

评析

优点

  • 方法明确。 前言把本书定位为对20世纪80年代以后密码学的严谨而入门的论述,以定义、假设和证明为组织原则,并写明先修要求:一门离散数学课程,加上基本的概率与模运算。
  • 理论与实践并重。 第三版增加了基于nonce的加密、GMAC、Poly1305、GCM、CCM和ChaCha20-Poly1305,SHA-3与海绵构造,更多椭圆曲线内容,TLS 1.3,以及一章后量子密码学。第7章专门讲实际使用的密码和哈希函数。
  • 便于选择性阅读。 星号体系和前言中的“本书使用指南”明确了各部分的依赖关系,并为课程建议了偏理论、偏数学等不同取向。
  • 配套内容齐全。 每章都有参考文献和习题,附录回顾了概率、渐近记号、有限域和算法数论。

局限

  • 仍需要一定的数学成熟度。 作者说明本书使用定义、证明和抽象概念,并期望读者接触过证明;附录只是复习,不能替代第一门以证明为主的课程。
  • 只涉及密码学。 章节目录中没有访问控制、软件安全或网络防御;除第13章的TLS综合案例外,全书围绕密码学原语和方案展开,并非安全领域的综述。
  • 版本标注。 2025年的CRC Press印本带有与第三版相同的新增内容;对比版本时应核对手头的印次。

在课程中的定位

在本课程书单中,Katz 和 Lindell 是密码学方面严谨、以证明为主的论述。Paar 与 Pelzl 的 Understanding Cryptography 是更平缓、侧重实现的入门读物,强调密码如何工作而较少形式证明,适合没有数论基础的读者作为第一本书。Stallings 与 Brown 的 Computer Security: Principles and Practice 以及 Easttom 的 Computer Security Fundamentals 广泛介绍安全,密码学只是其中一个组成部分。Anderson 的 Security Engineering 把密码学放在整个系统中,配有银行、医疗等领域的案例;Bishop 的 Computer Security: Art and Science 则把密码学视为位于策略、模型和保证之下的一个实现层。

在读过综述性或应用性读物之后再读 Katz 和 Lindell,此时问题已经从“用的是哪种算法”变为“它究竟保证什么、基于什么假设”。

如何使用本书

本书适合已熟悉离散数学、基本概率、伪代码和大O记号的高年级本科生、研究生新生和自学的从业者。作者说明,无星号的大部分内容可以在一学期(35学时)的本科或硕士课程中讲完。

建议的学习安排:

  • 核心: 依次读第1–6章,然后读第7章(作者建议至少读其中一部分,不过后面的内容并不依赖它),再读第9章、第11章,以及时间允许范围内的第12–13章。
  • 可选: 带星号的内容。偏理论可加入3.2.2节和第8章;偏数学可加入4.6节、第9章中较难的部分以及第10章;第14、15章补充后量子与高级公钥方案。
  • 练习: 做习题,并在阅读书中的证明之前先自己写出每个归约证明;第3–5章的证明为后面各章定下了模式。