01 / 导读
导读
引用
Paar, C., Pelzl, J., & Güneysu, T. (2024). Understanding Cryptography: From Established Symmetric and Asymmetric Ciphers to Post-Quantum Algorithms (2nd ed.). Springer.
章节概要
第二版共十四章,参考文献和索引之前的正文约520页。每章先介绍算法及其所需的数学,通常接着是安全性和实现两节,然后是"讨论与延伸阅读"(Discussion and Further Reading)、"要点回顾"(Lessons Learned)和习题。作者的配套网站称新版经过大幅修订,最大的新增内容是长达85页的后量子密码一章。
第1章:密码学与数据安全导论
先概述密码学和全书结构,再以代换密码为例介绍对称加密的基础。随后讨论密码系统如何被攻破、密钥需要多少位才算足够,并以移位密码(凯撒密码)和仿射密码为例引入模运算和整数环。
第2章:流密码
比较流密码与分组密码,然后讨论随机数发生器、一次一密以及走向实用流密码的思路。线性反馈移位寄存器(LFSR)与针对单个LFSR的已知明文攻击一并介绍,本章最后给出三种实用设计:Salsa20、ChaCha和Trivium。
第3章:数据加密标准(DES)及其替代方案
先引入混淆与扩散,再逐步讲解DES:总体结构、初始置换与末置换、f函数、密钥编排和解密。接着讨论安全性(穷举密钥搜索、分析攻击)和实现,最后介绍替代方案:AES及其他决赛算法、三重DES与DESX,以及轻量级密码PRESENT。
第4章:高级加密标准(AES)
在讲解密码本身之前,先用一节介绍伽罗瓦域:素域和扩域GF(2^m),以及其中的加法、乘法和求逆。然后逐层描述AES的内部结构(字节代换层、扩散层、密钥加层)及其密钥编排,再讨论解密和实现。
第5章:分组密码进阶
介绍工作模式(ECB、CBC、OFB、CFB、计数器模式和XTS-AES),重新审视穷举密钥搜索,并说明增强分组密码安全性的方法:双重加密与中间相遇攻击、三重加密以及密钥白化。
第6章:公钥密码导论
对比对称密码与非对称密码,然后讨论实践层面:安全机制、公钥真实性问题、主要的公钥算法类别,以及密钥长度与安全级别。后半部分提供后续章节要用到的数论:(扩展)欧几里得算法、欧拉φ函数,以及费马定理和欧拉定理。
第7章:RSA密码体制
先讲加密、解密、密钥生成及正确性证明,再讲快速幂运算和加速技术(短公钥指数、利用中国剩余定理加速解密)。本章还讨论大素数的寻找与素性检测、实际使用中的填充、密钥封装、攻击和实现。
第8章:基于离散对数问题的密码体制
从Diffie–Hellman密钥交换开始,然后引入群、循环群和子群。本章定义素域和一般群中的离散对数问题,概述针对它的攻击,讨论Diffie–Hellman的安全性,并由密钥交换推导出Elgamal加密方案。
第9章:椭圆曲线密码体制
定义椭圆曲线及其群运算,在曲线上构造离散对数问题并在曲线上执行Diffie–Hellman密钥交换,随后讨论安全性和实现。
第10章:数字签名
说明为什么仅靠对称密码不够,阐述签名的原理、安全服务和应用,然后介绍RSA签名、Elgamal签名、DSA和ECDSA,并分别讨论其计算问题和安全性。
第11章:散列函数
从对长消息签名的需要出发,定义抗原像性、抗第二原像性和抗碰撞性(包括生日攻击),并概述由分组密码构造的散列函数和专用的SHA系列。本章详细讲解SHA-256,之后介绍SHA-3:总体结构、填充与输出、Keccak-f置换,以及基于Keccak的其他函数。
第12章:后量子密码
本版新增,也是篇幅最长的一章。在说明量子计算对密码学意味着什么之后,本章讨论基于格的密码(带误差学习问题、一个简单的LWE加密系统、Ring-LWE以及实践中的LWE)、基于编码的密码(线性码、校验子译码问题、加密方案、码的选择)和基于散列的签名(一次签名与多次签名),最后以一节后量子密码标准化收尾。
第13章:消息认证码(MAC)
介绍MAC的原理、由散列函数构造的HMAC,以及由分组密码构造的MAC:CBC-MAC和CMAC、认证加密模式CCM和GCM,以及GMAC。
第14章:密钥管理
内容包括密钥派生;使用对称技术的密钥建立(密钥分发中心、Needham–Schroeder协议,以及对称密钥分发遗留的问题);使用非对称技术的密钥建立、中间人攻击和证书;公钥基础设施(PKI)、证书链与证书撤销;以及密钥管理的实际问题。
核心概念
第1–2章:基础与流密码
- 模运算:整数环中的运算,通过移位密码和仿射密码引入,贯穿全书。
- 线性反馈移位寄存器:一种简单的密钥流发生器,其线性特性使它容易受到已知明文攻击。
第3–5章:分组密码
- 混淆与扩散:DES及其后继算法背后的两条设计原则。
- 伽罗瓦域GF(2^m):AES各层所依赖的有限域运算。
- 工作模式:如CBC和CTR,用于加密长于一个分组的消息的规则。
- 中间相遇攻击:双重加密带来的安全性远低于其密钥长度所暗示水平的原因。
第6–9章:公钥密码
- 扩展欧几里得算法:计算模逆元的工具,RSA密钥生成需要用到。
- 离散对数问题:Diffie–Hellman、Elgamal和椭圆曲线方案背后的困难问题,书中在素域和一般循环群中讨论。
第10–14章:签名、散列、后量子方案与密钥
- 抗碰撞性与生日攻击:散列函数三项安全要求中最强的一项,以及决定散列输出必须多长的通用攻击。
- 带误差学习(LWE)问题:第12章基于格的方案所依赖的格问题。
- 认证加密:如CCM和GCM,同时提供机密性和完整性的模式。
- 证书与PKI:确认公钥确实属于其声称所有者的机制。
评析
优点
- 以易懂为设计目标。 作者表示,书中所需的数学只要具备最基本的大学微积分基础即可理解,目录也印证了这一点:数论、群和有限域都是在需要它们的章节中引入(4.3、6.3和8.2节),而不是作为预备知识。
- 注重实用。 本书聚焦实际使用的算法,从ChaCha和AES到SHA-3、GCM和证书,大多数章节都有一节讨论软件和硬件实现。
- 后量子内容。 新增的第12章用80多页讲解标准化后量子方案所依据的三类方法(格、编码和基于散列的签名),使本版保持时效。Ron Rivest撰写的序言推荐本书同时用于本科和研究生课堂。
- 为教学而设计。 每章都有习题、延伸阅读讨论和"要点回顾"。奇数题解答在配套网站免费提供,网站还公布了两套一学期课程方案;Christof Paar基于第一版录制的25讲YouTube课程也覆盖了大量相同内容。
局限
- 不是以证明为基础的讲法。 作者把数学保持在最低限度,目录中没有讨论形式化安全定义或归约的章节;Rivest的序言本身也提到,面向偏理论的学生可以另作补充。
- 协议只处于边缘位置。 密钥管理和PKI出现在最后一章,但目录中没有为TLS这类完整协议单独设章,系统层面的安全也不在本书范围之内。
- 对2024年后量子标准本身着墨较少。 第12章从零构建底层问题和简单方案,而关于标准化只有一个简短的小节,需要了解具体标准算法的读者还得查阅标准文件。
- 视频课程落后于正文。 配套网站上的讲课视频和幻灯片都基于第一版。
在课程中的定位
在本课程书单中,Paar、Pelzl和Güneysu的这本书是专门讲应用密码学的教材。两本综合性概论,Easttom的 Computer Security Fundamentals 和Stallings与Brown的 Computer Security: Principles and Practice,都只是在更广泛的威胁与防御概述中用一部分篇幅讲密码学;本书则对底层算法讲得详细得多,当课程用几周时间专讲密码学时,可以与其中任何一本配合阅读。
Katz和Lindell的 Introduction to Modern Cryptography 是自然的下一步:它通过精确的定义和安全性证明来讨论类似的密码原语。配套网站把本书侧重算法及其数学背景的第二套课程方案定位为这类理论课程的准备。至于整个系统的工程设计,Ross Anderson的 Security Engineering(可从作者网站免费获取)和Matt Bishop的 Computer Security: Art and Science 把密码学放在协议、策略和保障的框架中讨论。
如何使用本书
本书适合从信息安全专业一年级到研究生阶段的计算机科学、数学和电气工程学生,也适合自学的工程师。作者只要求最基本的大学微积分基础,其余内容都在正文中展开。
作者用两个学期讲授全书,并公布了两种一学期的选讲方案:
- 侧重应用(例如安全类专业):第1章;2.1–2.2节;第4章;5.1节;第6章;7.1–7.3、8.1–8.3、10.1–10.2和11.1–11.3节;12.1和12.4节;13.1节;14.1–14.3节。
- 侧重算法与数学(例如数学专业,或作为理论课程的准备):第1、2、4、6、7和9章;8.1–8.4、10.1–10.2和11.1–11.3节;12.1、12.2和12.4节。
两种方案都不包括讲DES的第3章,因此可以略读。建议认真做习题,并用免费的解答手册核对奇数题答案;用代码实现一个小型密码,例如仿射密码、LFSR或教科书式RSA,是很好的配套练习。配套网站还链接了CrypTool,这是一个可以动手试验各种密码的开源学习项目。准备继续学习以证明为基础课程的学生,应特别重视第6–9章和第12章中关于格的各节。
