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章的證明為後面各章定下了模式。
