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章中關於格的各節。
