科目の 概要
RSA 暗号は 剰余環 の 上の 冪乗であり、その 正しさは オイラーの 定理と 中国剰余定理から 従う(第1・2章)。 ディフィー–ヘルマン鍵共有や DSA は 有限体の 乗法群 の 巡回部分群を、楕円曲線暗号は 有限体上の 楕円曲線の 点の 群を 使う(第2〜4章)。 - 線形符号は
の 部分 空間であり、巡回符号は 多項式環の 剰余環 の イデアルである。リード–ソロモン符号は 有限体上の 多項式の 値の 並びで、QR コードや CD は 上の リード–ソロモン符号を 使う(第5・6章)。共通鍵暗号 AES の 内部でも の 演算が 使われている。 - 格子暗号は
の 格子や、 のような 多項式環の 剰余環の 上の 問題を 使う(第7章)。
証明された 事実 :正しく 復号・検証できる こと、符号が 何個の 誤りを 訂正できるか、攻撃アルゴリズムの 計算量、そして「この 方式を 破れれば、あの 問題も 解ける」と いう 帰着 (たとえば RSA の 秘密鍵を 求める ことは の 素因数分解と 同じ くらい 難しい)。 - 仮定(予想)
:素因数分解、離散対数、楕円曲線上の 離散対数、格子上の 問題(LWE)などが 効率的には 解けない こと。これらは 一つも 証明されていない。そもそも「一方 向性関数」が 存在する ことさえ 証明されておらず、存在を 証明すれば P ≠ NP も 証明される ことになる。 経験的な 根拠 :数十年に わたって 多くの 研究者が 攻撃を 試みても 効率的な 解法が 見つかっていない こと、計算機実験の 記録(たとえば 2020 年に 829 ビットの RSA の 法が 数体ふる い法で 分解された)から 見積もった、安全な 鍵の 長さ。
前提知識
04-algebra 第1章 整数と 合同式 :合同式、中国剰余定理、オイラーの 定理、原始根、平方剰余。全章の 土台である。 04-algebra 第2章 群の 基礎 :巡回群、元の 位数、ラグランジュの 定理(第1〜4章)。 04-algebra 第5章 環と イデアル :剰余環、多項式環、中国剰余定理の 環版(第6・7章)。 04-algebra 第8章 体の 拡大 :有限体の 存在と 一意性、乗法群の 巡回性(第4〜7章)。 - 04-algebra 第11章 有限体
(発展):既約多項式と 原始多項式、 などでの 具体的な 計算、CRC と AES の 有限体。第6章を 読む前に あると 望ましい。 - 線形代数:行列・ベクトル空間・線形写像(02-linear-algebra 第1章〜第3章
)。第3章(二次ふる い法での 上の 一次従属)と 第5〜7章で 使う。線形符号は 有限体上の ベクトル空間の 部分 空間と して、格子は の 離散的な 部分群と して 扱う。 - 楕円曲線:第4章では、21-elliptic-curves 第2章 群法則と
第4章 有限体上の 楕円曲線 の 結果(加法公式、ハッセの 定理)を、主張と して 引用して 使う。21 を 読んでいなくても 第4章は 読めるが、証明を 知りたい 読者は 21 を 参照の こと。 確率:有限集合の P6上の 一様分布、独立性、条件付き確率と ベイズの 定理、期待値程度(ミラー–ラビン法の 誤り 確率や 誕生日攻撃で 使う)。高校の 確率( )で 足り、測度論は 使わない。 証明の 00-foundations)。読み 書きと 集合・写像・同値関係の 言葉(
この 科目の 記法
NOTATION.md
| 記号 | 意味 |
|---|---|
| を |
|
| 、 | 法 |
| 、 | |
| 、 | オイラー関数、カーマイケル関数( なら ) |
| 、 | |
| 、 | 長さ |
| 、 | |
到達目標
計算の 手間を ビット長で 評価し、反復二乗法・ 拡張ユークリッドの 互除法・ 中国剰余定理に よる 計算が 多項式時間である ことを 証明できる フェルマーテストの 限界を カーマイケル数と コルセルトの 判定法で 説明し、ミラー–ラビン法の 誤り 確率が 以下である ことを 証明できる RSA 暗号と RSA 署名の 正しさを 証明し、教科書的 RSA への 攻撃(準同型性・ 小さい 指数と 同報攻撃・共通法)を 小さい 数で 実演して、パディングの 必要性を 説明できる ディフィー–ヘルマン鍵共有・エルガマル暗号・DSA の 正しさを 証明し、それぞれの 安全性が どの 計算問題(離散対数・CDH・DDH)に 依存するかを 説明できる - ポラードの 法・
法、ベビーステップ・ジャイアントステップ法、ポーリッヒ–ヘルマン法の 正しさと 計算量を 説明し、推奨される 鍵長の 根拠を 述べられる 有限体上の 楕円曲線で ECDH・ECDSA を 計算し、ナンスの 再利用で 秘密鍵が 漏れる ことを 証明でき、公開鍵の 検証の 必要性と 安全な 曲線の 条件を 説明できる ハミング距離と 最小距離から 訂正能力を 求め、線形符号の シンドローム復号、ハミング符号、シングルトン限界・ハミング限界・ギルバート–ヴァルシャモフ限界を 証明できる - 巡回符号を
の イデアルと して 扱い、BCH 限界と リード–ソロモン符号が MDS 符号である ことを 証明して、復号の 仕組みを 説明できる 誕生日攻撃の 計算量を 評価し、格子問題と LWE 問題に 基づく 暗号の 仕組み、量子計算機が 暗号に 与える 影響、耐量子暗号への 移行の 考え方を 説明できる 暗号の 安全性の 主張を、証明された 事実・計算問題の 困難さの 仮定・経験的な 根拠に 分けて 読み、実装や 運用の どこで 仮定が 崩れうるかを 指摘できる
学習時間の 目安と 進め方
全体で 60〜80 時間(1 章あたり 8〜11 時間)を 目安と する。学部 3〜4 年の 半期から 通年の 講義に 相当する。 章の 依存関係は おおよそ次の とおりである。 第1章 → 第2章 → 第3章(暗号の 整数論。この 順に 読むこと) 第3章 → 第4章(第4章は 21-elliptic-curves第3章の 汎用的な 攻撃と 鍵長の 表を 使う。楕円曲線の 理論の 部分は の 結果を 引用する) 第5章 → 第6章(符号理論。第5章は 有限体と 線形代数だけで 読めるので、符号に 関心が ある 読者は 第1章を 読まずに 第5章から 始めて よい) 第7章は 第1〜3章の あとに 読む(格子の 部分では 線形代数を 使う)
定理を の RSA、読んだら、小さい 数で 実際に 計算してみる こと。本文の 数値例( の ディフィー–ヘルマンなど)は すべて 計算機で 確かめてあるので、手計算と Python(または PARI/GP)の 両方で 再現すると よい。攻撃も、小さい 数で 一度 自分で 実行してみると、なぜ危ないのかが 実感できる。 各章では、完全な 証明を つけた 定理と、主張だけを 述べた 定理(素数定理、ショアの アルゴリズム、ランダムオラクルモデルでの 安全性証明など)を 区別している。また「仮定のもとでの 安全性」と「証明された 正しさ」を 混同しないように 読んで ほしい。 各章の「実務では」の 囲みには、その 数学が 実際に どう 使われ、どこで 失敗しやすいかを 書いた。推奨鍵長や 規格は 改訂されるので、実務で 使う ときは 最新の 規格(NIST の FIPS・SP、IETF の RFC、日本では CRYPTREC の 暗号リスト)を 確認する こと。 演習問題は ★ を すべて 解いてから ★ ★ に 進むと よい。小さい 数で 暗号化・署名・攻撃を する 問題と、「この 設計の どこが 危ないか」を 問う 問題を 含めている。
参考文献
暗号
- J. Hoffstein, J. Pipher, J. H. Silverman, An Introduction to Mathematical Cryptography
(Springer) 数学科の 学部生向けに、離散対数と ディフィー–ヘルマン、素因数分解と RSA、デジタル署名、楕円曲線暗号、格子暗号を、証明と 計算例つきで 扱う。本科目の 暗号の 部分の 主な 参考書。 - D. R. Stinson, M. B. Paterson, Cryptography: Theory and Practice
(CRC Press) シャノンの 理論、ブロック暗号、ハッシュ関数、RSA、離散対数、署名、鍵共有から 耐量子暗号まで、暗号全般を 扱う 定番の 教科書。 - J. Katz, Y. Lindell, Introduction to Modern Cryptography
(CRC Press) 安全性の 定義(識別不 可能性など)と 帰着に よる 安全性証明を 厳密に 扱う。第2章の 安全性の 定義の 先を 学ぶのに 最適。 - N. Koblitz, A Course in Number Theory and Cryptography
(Springer) 暗号に 必要な 整数論(有限体、平方剰余、素数判定、素因数分解)と 公開鍵暗号、楕円曲線を 簡潔に 扱う。第1〜4章の 副読本に。 - A. J. Menezes, P. C. van Oorschot, S. A. Vanstone, Handbook of Applied Cryptography
(CRC Press) 暗号の アルゴリズムを 網羅した 事典的な本。1996 年刊で 規格の 記述は 古いが、多倍長演算・素数判定・鍵共有などの アルゴリズムの 正確な 記述の 参照先と して 有用。 - R. Crandall, C. Pomerance, Prime Numbers: A Computational Perspective
(Springer) 素数判定(ミラー–ラビン法、AKS 法など)と 素因数分解(二次ふる い法、数体 ふる い法など)の アルゴリズムを 詳しく 扱う。第1・3章の 発展に。 岡本龍明・山本博資『現代暗号』(産業図書) 公開鍵暗号を 中心に、現代暗号の 理論を 数理的な 基礎から 解説する 日本語の 教科書。 結城 浩『暗号技術入門』(SB クリエイティブ) 数式を ほとんど 使わずに、共通鍵暗号・公開鍵暗号・ハッシュ関数・署名・証明書・ TLS など 暗号技術の 全体像を 解説する。本科目の 数学が 実務の どこで 使われているかを つかむのに 向く。
符号
- F. J. MacWilliams, N. J. A. Sloane, The Theory of Error-Correcting Codes
(North-Holland) 符号理論の 古典的な 大著。線形符号・巡回符号・BCH 符号・リード–ソロモン符号などを 網羅する。 - R. M. Roth, Introduction to Coding Theory
(Cambridge University Press) 有限体上の 代数的な 符号と その 復号(リード–ソロモン符号の リスト復号を 含む)を 現代的に 扱う 大学院向けの 教科書。第6章の 発展に。 - J. H. van Lint, Introduction to Coding Theory
(Springer) 数学者向けに 簡潔に まとめた 符号理論の 教科書。限界式や 完全符号などを 扱う。 今井秀樹『符号理論』(電子情報通信学会) 符号理論の 標準的な 日本語の 教科書。代数的な 符号と 復号法を 工学的な 応用とともに 扱う。
格子
- D. Micciancio, S. Goldwasser, Complexity of Lattice Problems: A Cryptographic Perspective
(Springer) 最短ベクトル問題・ 最近 ベクトル問題などの 格子問題の 計算量と、その 暗号への 応用を 扱う。第7章の 発展に。
規格
NIST FIPS 186-5(デジタル署名の 規格。RSA・ECDSA・EdDSA)、NIST SP 800-186(楕円曲線の パラメータ) NIST FIPS 203(ML-KEM)・FIPS 204(ML-DSA)・FIPS 205(SLH-DSA):2024 年に 制定された 耐量子暗号の 規格 - IETF RFC 7748(X25519・X448)、RFC 8032(EdDSA)
次に 学ぶもの
- 21-elliptic-curves 楕円曲線
:第4章で 第5章引用した 群法則と ハッセの 定理の 証明、楕円曲線上の 離散対数への 攻撃や 楕円曲線法に よる 素因数分解、同種写像暗号( )。楕円曲線の 整数論 その ものへの 入口でもある。 - 15-algebraic-number-theory 代数的整数論
:数体 ふる い法は、代数体の 整数環に 含まれる 環 (整数環 第1章・第2章その ものとは 限らない)での 分解と、整数環の イデアルの 素イデアル分解( )を 背景に している。格子の 幾何は 第3章 数の 幾何学 で (扱われる。格子暗号で よく 使われる 環 は 2 の べき)は、1 の 原始 乗根で 生成される 円分体の 整数環に 同型であり、円分体は 第4章 で 扱われる。 - 04-algebra 第11章 有限体
:まだ 読んでいなければ。有限体上の 多項式の 因数分解の アルゴリズムや、AES・CRC・リード–ソロモン符号の 有限体の 計算を 詳しく 学べる。 05-complex-analysis 第8章 ゼータ関数と 素数定理 :第1章で 主張だけを 使った 素数定理の 証明。リーマン予想と その 一般化は、素数の 分布の 精密な 評価や、決定的な 素数判定の 理論(一般化リーマン予想のもとでの ミラーの 判定法)にも 関わる。 - 11-probability 確率論
:情報理論(シャノンの 通信路符号化定理)や 乱択アルゴリズムの 解析を 厳密に 扱う ための 確率論。