01 / 読書ガイド
読書ガイド
引用
Katz, J., & Lindell, Y. (2025). Introduction to Modern Cryptography (3rd ed., revised). Chapman & Hall/CRC.
章の要約
本書は三部十五章からなり、その後に二つの付録(数学的背景、基礎的なアルゴリズム数論)が続く。各章の末尾には参考文献と演習問題がある。アスタリスク付きの章・節は任意で、著者は、アスタリスクのない中核部分がそれらに依存しないと述べている。
第I部、第1–2章:序論、完全秘匿暗号
第1章では、秘密鍵暗号の設定、歴史的な暗号とその解読、そして以後の内容を貫く三つの原則(形式的な定義、明確な仮定、安全性の証明)を導入する。章末では「証明可能な安全性」と「現実世界の安全性」を区別している。第2章では完全秘匿性を定義し、ワンタイムパッドを示し、完全秘匿性が実用的でない理由を説明したうえで、アスタリスク付きの節でシャノンの定理を証明する。
第II部、第3–8章:秘密鍵(共通鍵)暗号
第3章「秘密鍵暗号」は、計算量的安全性(具体的アプローチと漸近的アプローチ)から始め、盗聴者に対する安全な暗号の定義、擬似乱数生成器と帰着による証明を経て、CPA安全性、擬似ランダム関数・置換、そしてストリーム暗号やノンスベース暗号を含む利用モードへと進む。第4章「メッセージ認証コード」は完全性と秘匿性を区別し、CBC-MAC、GMAC、Poly1305などのMACを構成する。第5章「CCA安全性と認証付き暗号」では、選択暗号文攻撃、認証付き暗号方式、安全な通信セッションを扱う。
第6章「ハッシュ関数とその応用」は、定義、Merkle–Damgård変換、汎用的攻撃、ランダムオラクルモデル、さらなる応用を扱う。第7章「共通鍵プリミティブの実用的構成」は、ストリーム暗号、ブロック暗号、ハッシュ関数の基盤となる圧縮関数に目を向ける。第8章(アスタリスク付き)「共通鍵プリミティブの理論的構成」では、一方向関数とハードコア述語から擬似乱数生成器・関数・置換を構成する。
第III部、第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での利用。
- 耐量子暗号:量子コンピュータが先に述べた構成に与える影響。
批判的分析
長所
- 方法が明示されている。 序文は本書を、1980年代以降の暗号学の厳密かつ入門的な叙述と位置づけ、定義・仮定・証明を組織原理とし、前提条件も明記している。すなわち離散数学の科目一つと、基礎的な確率およびモジュラー算術である。
- 理論と実践の両立。 第3版ではノンスベース暗号、GMAC、Poly1305、GCM、CCM、ChaCha20-Poly1305、SHA-3とスポンジ構成、楕円曲線の拡充、TLS 1.3、そして耐量子暗号の章が加わった。第7章は実際に使われる暗号とハッシュ関数に充てられている。
- 選択的な読み方に配慮した構成。 アスタリスクの仕組みと序文の「本書の使い方」により、依存関係が明確で、理論寄り・数学寄りといった方向づけも提案されている。
- 参考資料の充実。 各章に参考文献と演習があり、付録では確率、漸近記法、有限体、アルゴリズム数論を復習できる。
短所
- 数学的成熟度は依然必要。 著者は、本書が定義・証明・抽象概念を用い、証明にある程度触れていることを前提とすると述べている。付録は復習であり、証明中心の最初の科目の代わりにはならない。
- 暗号に限定されている。 章立てにはアクセス制御、ソフトウェアセキュリティ、ネットワーク防御が含まれない。第13章のTLSの総合例を除けば、暗号プリミティブと方式にとどまり、セキュリティ全般の概観書ではない。
- 版の表記。 2025年のCRC Press版は第3版と同じ追加内容を持つ。版を比較する際は、手元の刷を確認するとよい。
コースにおける位置づけ
このコースの書籍リストの中で、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 を読むとよい。問いが「どのアルゴリズムが使われているか」から「それは正確に何を保証し、どの仮定に基づくのか」に変わる段階である。
本書の使い方
離散数学、基礎的な確率、擬似コード、ビッグオー記法に慣れた学部上級生、大学院の初学者、独学の実務者に向いている。著者によれば、アスタリスクのない内容の大部分は、1学期(35時間)の学部または修士レベルの授業で扱える。
実践的な進め方:
- 中核: 第1–6章を順に読み、次に第7章(著者は少なくとも一部を勧めているが、後続の内容はこれに依存しない)、続いて第9章、第11章、時間の許す範囲で第12–13章を読む。
- 任意: アスタリスク付きの内容。理論寄りなら3.2.2節と第8章、数学寄りなら4.6節、第9章の難しい部分、第10章を加える。第14・15章は耐量子暗号と発展的な公開鍵方式を補う。
- 演習: 演習問題に取り組み、帰着による各証明は、本書の記述を読む前に自分で書いてみる。第3–5章の証明が以後の型を作る。
