索引 / 001 JA
Understanding Cryptography: From Established Symmetric and Asymmetric Ciphers to Post-Quantum Algorithms(暗号を理解する:確立された共通鍵・公開鍵暗号から耐量子アルゴリズムまで) cover

コンピュータサイエンス

コンピュータサイエンス

Understanding Cryptography: From Established Symmetric and Asymmetric Ciphers to Post-Quantum Algorithms(暗号を理解する:確立された共通鍵・公開鍵暗号から耐量子アルゴリズムまで)

Christof Paar; Jan Pelzl; Tim Güneysu

英語原題: Understanding Cryptography: From Established Symmetric and Asymmetric Ciphers to Post-Quantum Algorithms

現代の主要な暗号方式とプロトコルの仕組みを、形式的な証明よりも理解を重視して説明する応用暗号の入門教科書。整数論の素養がない学生を対象に、必要な数学をその都度導入し、各アルゴリズムを実際の用途や実装と結びつけて解説する。

前提知識: 情報系や工学系1年次程度の離散数学と剰余演算の基礎。必要な整数論は本文中で導入される。

難易度レベル
初級
学術レベル
学部
cryptographycomputer securitypublic-key cryptographyblock cipherspost-quantum cryptography教科書

01 / 読書ガイド

読書ガイド

引用

Paar, C., Pelzl, J., & Güneysu, T. (2024). Understanding Cryptography: From Established Symmetric and Asymmetric Ciphers to Post-Quantum Algorithms (2nd ed.). Springer.

章の要約

第2版は全14章からなり、参考文献と索引の前の本文は約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章:離散対数問題に基づく暗号系

ディフィー・ヘルマン鍵交換から始め、群、巡回群、部分群を導入する。素体および一般の群における離散対数問題を定義し、それに対する攻撃を概観し、ディフィー・ヘルマンの安全性を論じたうえで、鍵交換からエルガマル暗号を導く。

第9章:楕円曲線暗号系

楕円曲線とその群演算を定義し、楕円曲線上に離散対数問題を構成して、曲線上でディフィー・ヘルマン鍵交換を行う。続いて安全性と実装を扱う。

第10章:デジタル署名

共通鍵暗号だけでは不十分な理由を説明し、署名の原理、提供するセキュリティサービス、応用を示したうえで、RSA署名、エルガマル署名、DSA、ECDSAを、それぞれの計算上の側面と安全性とともに紹介する。

第11章:ハッシュ関数

長いメッセージに署名する必要性から出発し、原像計算困難性、第二原像計算困難性、衝突困難性(誕生日攻撃を含む)を定義して、ブロック暗号から作るハッシュ関数と専用のSHAファミリーを概観する。SHA-256を詳しく説明したのち、SHA-3について、全体構造、パディングと出力、Keccak-f置換、Keccakに基づくほかの関数を扱う。

第12章:耐量子暗号

この版で新設された、最も長い章である。量子計算が暗号にとって何を意味するかを説明したあと、格子暗号(LWE問題、単純なLWE暗号方式、Ring-LWE、実際のLWE)、符号ベース暗号(線形符号、シンドローム復号問題、暗号方式、符号の選び方)、ハッシュベース署名(ワンタイム署名と多回署名)を扱い、耐量子暗号(PQC)の標準化に関する節で終わる。

第13章:メッセージ認証コード(MAC)

MACの原理、ハッシュ関数から作るHMAC、そしてブロック暗号から作るMACとして、CBC-MACとCMAC、認証付き暗号のモードであるCCMとGCM、GMACを扱う。

第14章:鍵管理

鍵導出、共通鍵技術による鍵確立(鍵配送センター、ニーダム・シュレーダー・プロトコル、共通鍵配送に残る問題)、公開鍵技術による鍵確立と中間者攻撃・証明書、公開鍵基盤(PKI)と証明書チェーン・失効、そして鍵管理の実務的側面を扱う。

主要概念

第1〜2章:基礎とストリーム暗号

  • モジュラー演算:整数環での演算。シフト暗号とアフィン暗号を通じて導入され、本書全体で用いられる。
  • 線形帰還シフトレジスタ:単純な鍵ストリーム生成器。その線形性ゆえに既知平文攻撃に弱い。

第3〜5章:ブロック暗号

  • 混乱と拡散:DESとその後継の背後にある二つの設計原理。
  • ガロア体GF(2^m):AESの各層の基礎となる有限体の演算。
  • 暗号利用モード:CBCやCTRのように、1ブロックより長いメッセージを暗号化するための規則。
  • 中間一致攻撃:二重暗号化が鍵長から期待されるほどの安全性をもたらさない理由。

第6〜9章:公開鍵暗号

  • 拡張ユークリッドの互除法:法の逆元を求める道具で、RSAの鍵生成に必要となる。
  • 離散対数問題:ディフィー・ヘルマン、エルガマル、楕円曲線方式の背後にある困難な問題。素体と一般の巡回群の両方で扱われる。

第10〜14章:署名、ハッシュ、耐量子方式、鍵

  • 衝突困難性と誕生日攻撃:ハッシュ関数の三つの安全性要件のうち最も強いものと、ハッシュ出力に必要な長さを決める汎用攻撃。
  • LWE(誤り付き学習)問題:第12章の格子暗号方式の基礎となる格子の問題。
  • 認証付き暗号:CCMやGCMのように、機密性と完全性を同時に提供するモード。
  • 証明書とPKI:公開鍵が主張どおりの持ち主のものであることを確かめる仕組み。

批判的分析

長所

  • わかりやすさを前提とした設計。 著者たちは、必要な数学は大学レベルの微積分の最低限の素養があれば理解できるようにしたと述べており、目次もそれを裏づける。数論、群、有限体は前提知識としてではなく、それを必要とする章の中で導入される(4.3節、6.3節、8.2節)。
  • 実用的な守備範囲。 ChaChaやAESからSHA-3、GCM、証明書まで、実際に使われているアルゴリズムに焦点を当てており、ほとんどの章にソフトウェアとハードウェアでの実装の節がある。
  • 耐量子暗号の内容。 新設の第12章は、標準化された耐量子方式の基礎となる三つの系統(格子、符号、ハッシュベース署名)を80ページ以上かけて扱い、この版を最新の状態に保っている。ロン・リベストの序文は、学部と大学院のどちらの授業にも本書を推薦している。
  • 授業向けの構成。 各章に演習問題、文献案内の議論、「学んだこと」のまとめがある。奇数番号の問題の解答は公式サイトで無料公開され、1学期用のカリキュラム案が二つ示されているほか、第1版に基づくクリストフ・パールの25回分の講義動画がYouTubeにあり、多くの内容が重なる。

短所

  • 証明に基づく扱いではない。 著者たちは数学を最小限にとどめており、目次には形式的な安全性定義や帰着を扱う節がない。リベストの序文自体も、理論志向の学生向けには補足が可能だと述べている。
  • プロトコルは周辺的な扱い。 鍵管理とPKIは最終章に登場するが、TLSのような完全なプロトコルには目次上独立した章がなく、システムレベルのセキュリティは対象外である。
  • 2024年の耐量子標準そのものの扱いは軽い。 第12章は基礎となる問題と単純な方式を一から組み立てるが、標準化については短い節が一つあるだけなので、標準化された具体的なアルゴリズムが必要な読者は標準文書にあたる必要がある。
  • 講義動画が本文に追いついていない。 公式サイトの講義動画とスライドは第1版に基づいている。

コースにおける位置づけ

このコースの文献リストの中で、パール、ペルツル、ギュネイスの本書は応用暗号を専門に扱うテキストである。幅広い概説書であるイーストムの Computer Security Fundamentals と、スターリングスとブラウンの Computer Security: Principles and Practice は、いずれも脅威と防御をめぐる広い概観の一部として暗号を扱う。本書はその下にあるアルゴリズムをはるかに詳しく説明しており、授業で暗号に数週間を割く場合には、どちらとも並行して読める。

カッツとリンデルの Introduction to Modern Cryptography は自然な次の一歩であり、同様のプリミティブを厳密な定義と安全性証明によって扱う。公式サイトは、アルゴリズムとその数学的背景に焦点を当てた本書の第二のカリキュラムを、そうした理論の授業への準備として位置づけている。システム全体の設計については、ロス・アンダーソンの Security Engineering(著者のウェブサイトで無料公開)とマット・ビショップの Computer Security: Art and Science が、暗号をプロトコル、ポリシー、保証の中に位置づけている。

本書の使い方

本書は、ITセキュリティ専攻の1年生から大学院生までの計算機科学、数学、電気工学の学生と、独学するエンジニアに向いている。著者たちが求めるのは大学レベルの微積分の最低限の素養だけで、それ以外は本文の中で展開される。

著者たちは本書全体を2学期かけて教えており、1学期用の選択案を二つ公開している。

  • 応用重視(例:セキュリティ系のプログラム):第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章の格子の節に特に注意を払うとよい。