※小説ではない※専門書 要約資料集 為替(換算)3.9万円でもらう 紐解集生成 専門 初入門 資料   作:{作者名}

195 / 382
# BOOK-0127 数論 — 整数の宇宙、深化と接続(数学派生 第2巻)

> 学問の宇宙・形式科学の恒星群 数学冠・派生第2巻。ガイド役: Fable 5 監修 / Sonnet 5 執筆(脚本班)
> トーン規約: GAKUMON_UNIVERSE.md準拠。専門用語は初出で必ず説明する。
> **この冊の前提 = →BOOK-0074(数論・第1巻)。水準帯 = 五〜六。**
> 前巻では、約数・倍数・素因数分解・算術の基本定理・ユークリッドによる素数の無限性の証明・エラトステネスの篩・合同式の入門・フェルマーの小定理の「主張の紹介」(証明は保留)・ゴールドバッハ予想とリーマン予想の「存在の紹介」までを扱った。本冊はその続巻として、前巻で保留にした証明そのものへ踏み込み、さらに現代的な応用——公開鍵暗号とフェルマーの最終定理の解決——にまで歩を進める。
> 接続先: →BOOK-0074『数論』第1巻(本冊が前提とする既出概念のすべてはここに由来する)、→BOOK-0073『暗号』第1巻(本冊で扱う公開鍵暗号の数論的土台は、暗号そのものの詳しい仕組みへの入口となる)、→BOOK-0067『代数』第1巻(合同方程式を解く発想は代数の方程式論と地続きである)、→BOOK-0075『集合と論理』第1巻(証明の構造、とくに背理法や存在証明の論理的骨格を共有する)、→BOOK-0090『複素解析』第1巻(リーマン予想の主張そのものは複素関数の零点に関わり、複素解析の道具立てを必要とする)、→BOOK-0002『算術』第1冊(本冊全体の遠い出発点)。
> 水準: 五〜六(現代で発見された革新・応用と発展形。前巻の基礎の先を行く)。

---


# BOOK-0127 数論 — 整数の宇宙、深化と接続(数学派生 第2巻)

# BOOK-0127 数論 — 整数の宇宙、深化と接続(数学派生 第2巻)

 

> 学問の宇宙・形式科学の恒星群 数学冠・派生第2巻。ガイド役: Fable 5 監修 / Sonnet 5 執筆(脚本班)

> トーン規約: GAKUMON_UNIVERSE.md準拠。専門用語は初出で必ず説明する。

> **この冊の前提 = →BOOK-0074(数論・第1巻)。水準帯 = 五〜六。**

> 前巻では、約数・倍数・素因数分解・算術の基本定理・ユークリッドによる素数の無限性の証明・エラトステネスの篩・合同式の入門・フェルマーの小定理の「主張の紹介」(証明は保留)・ゴールドバッハ予想とリーマン予想の「存在の紹介」までを扱った。本冊はその続巻として、前巻で保留にした証明そのものへ踏み込み、さらに現代的な応用——公開鍵暗号とフェルマーの最終定理の解決——にまで歩を進める。

> 接続先: →BOOK-0074『数論』第1巻(本冊が前提とする既出概念のすべてはここに由来する)、→BOOK-0073『暗号』第1巻(本冊で扱う公開鍵暗号の数論的土台は、暗号そのものの詳しい仕組みへの入口となる)、→BOOK-0067『代数』第1巻(合同方程式を解く発想は代数の方程式論と地続きである)、→BOOK-0075『集合と論理』第1巻(証明の構造、とくに背理法や存在証明の論理的骨格を共有する)、→BOOK-0090『複素解析』第1巻(リーマン予想の主張そのものは複素関数の零点に関わり、複素解析の道具立てを必要とする)、→BOOK-0002『算術』第1冊(本冊全体の遠い出発点)。

> 水準: 五〜六(現代で発見された革新・応用と発展形。前巻の基礎の先を行く)。

 

---

 

## 入口の物語 — 保留にした宿題を開く

 

前巻の最後で、二つの「宿題」を保留にした。一つは、フェルマーの小定理という規則性——「素数 `p` で割り切れない整数 `a` を `p-1` 乗して `p` で割ると、余りは必ず `1` になる」——が、**なぜ**成り立つのかという証明。もう一つは、この整数だけの宇宙が「現代の暗号技術に接続している」という事実の、**具体的な仕組み**である。前巻では主張の姿だけを紹介するにとどめた。

 

本冊は、その二つの宿題を開封する巻である。フェルマーの小定理は、ガウスによる合同算術の体系化(1801年)を経て、オイラーによってより一般的な定理へと拡張され、複数の余りの条件を同時に満たす数を探す**中国剰余定理**と組み合わさることで、**公開鍵暗号**という、見ず知らずの相手と秘密を共有する現代の魔法の土台になる。

 

同時に本冊では、前巻で保留にしたもう一つの謎——**フェルマーの最終定理**——が、1994年から1995年にかけて、一人の数学者による十年近い研究の末に解決されていたという物語にも触れる。そして、リーマン予想やゴールドバッハ予想・双子素数予想といった、**今なお未解決の謎**についても誠実にその現在地を報告する。

 

```

前巻(第1巻・水準一〜四): 地図を描く — 素数・合同式・小定理の「紹介」

本冊(第2巻・水準五〜六): 地図の上を旅する — 証明・拡張・暗号への応用・現在の到達点

```

 

---

 

## 第八章: 合同算術の深化 — ガウスによる体系化(1801年、水準五)

 

### 「同じ余りを持つ数」を一つの仲間として扱う

 

前巻第五章で、合同式(ごうどうしき)という考え方——ある数で割った余りだけに注目する算術——を、時計の文字盤で導入した。`14 ≡ 2 (mod 12)` のように、`14` と `2` は「`12` を法(ほう、水準三: 合同式で割る数のこと。`mod` の後ろに置かれる数)として合同である」と表現した。

 

この考え方を体系立てたのが、ドイツの数学者**カール・フリードリヒ・ガウス(Carl Friedrich Gauss、1777年 - 1855年、ドイツの数学者。数論・代数学・幾何学・天文学など広範な分野で業績を残した)**である。ガウスは**1801年**、24歳で出版した著書**『Disquisitiones Arithmeticae(算術研究)』**の中で、合同式を足し算・引き算・掛け算が定義できる、独立した数学的世界として整理した。

 

### 合同式の演算規則

 

ガウスが整理した規則の核心は、「`mod n` の世界の中では、足し算や掛け算をしてから余りを取っても、余りを取ってから足し算や掛け算をしても、結果は同じになる」という性質(水準五: 合同式は加法・乗法という演算と両立する、という性質)である。式で書くと次のようになる。

 

```

a ≡ b (mod n) かつ c ≡ d (mod n) ならば、

a + c ≡ b + d (mod n)

a × c ≡ b × d (mod n)

```

 

**検算1**: `17 ≡ 2 (mod 5)`(前巻検算6で確認済み)であることと、`8 ≡ 3 (mod 5)`(`8 = 5×1+3`)であることを使って確かめてみよう。`17 + 8 = 25`、`25 mod 5 = 0`。一方、`2 + 3 = 5`、`5 mod 5 = 0`。両者は一致する。掛け算でも試すと、`17 × 8 = 136`、`136 mod 5`は`136 = 5×27+1`より`1`。一方`2 × 3 = 6`、`6 mod 5 = 1`。こちらも一致した。

 

この性質があるからこそ、`3^6` のような数を計算するとき、いちいち `729` まで掛け算してから割り算する必要がなくなる。掛け算の途中で余りだけを保持すればよい。`3^2 = 9 ≡ 2 (mod 7)`、`3^4 ≡ 2^2 = 4 (mod 7)`、`3^6 = 3^4 × 3^2 ≡ 4 × 2 = 8 ≡ 1 (mod 7)`という具合に、桁数を小さく保ったまま計算を進められる。**検算2**: 前巻検算7の直接計算`3^6=729, 729 mod 7=1`と、この段階的な方法の結果`1`は一致する。これは大きな数の合同式を高速に計算する技法(繰り返し二乗法の原型)であり、後の章の暗号計算でも使う。

 

---

 

## 第九章: フェルマーの小定理を証明する(水準六)

 

### 保留にした宿題、その中身

 

前巻第六章で保留にしたフェルマーの小定理——「`p` が素数、`a` が `p` で割り切れない整数のとき、`a^(p-1) ≡ 1 (mod p)`」——の証明に取り組む。フランスの数学者**ピエール・ド・フェルマー(1607年ごろ - 1665年)**がこの定理を**1640年**ごろの書簡で述べたことが知られているが、フェルマー自身は証明を書き残さず、後年**オイラー**が最初の完全な証明を与えたとされる。

 

### 証明の鍵 — 並べ替えても中身は変わらない

 

証明の核心は、次のような観察にある。`p = 7`、`a = 3` の場合で具体的に考えてみよう。`1` から `p-1 = 6` までの数、すなわち `1, 2, 3, 4, 5, 6` のそれぞれに `a = 3` を掛けて `mod 7` を取ると、どうなるだろうか。

 

```

1×3 = 3 ≡ 3 (mod 7)

2×3 = 6 ≡ 6 (mod 7)

3×3 = 9 ≡ 2 (mod 7)

4×3 = 12 ≡ 5 (mod 7)

5×3 = 15 ≡ 1 (mod 7)

6×3 = 18 ≡ 4 (mod 7)

```

 

**検算3**: 得られた余りを順に並べると `3, 6, 2, 5, 1, 4` となる。これを小さい順に並べ替えると `1, 2, 3, 4, 5, 6`——**元の `1` から `6` までの数と、過不足なく一致する**。つまり、`{1, 2, 3, 4, 5, 6}` という集合に `3` を掛けて `mod 7` を取る操作は、この集合を「並べ替える」だけで、集合そのものの中身は変えない。

 

なぜこうなるのか。もし二つの異なる数 `i, j`(`1 ≤ i < j ≤ p-1`)で `i×a ≡ j×a (mod p)` となったら、`(j-i)×a ≡ 0 (mod p)` となる。`p` は素数、`a` は `p` で割り切れないので、`p` が `(j-i)` を割り切るしかない。しかし `1 ≤ j-i ≤ p-2` で、`p` より小さい数は `p` で割り切れない。したがって結果は必ずすべて異なる値になる——元の集合の並べ替えになるしかない。

 

### 並べ替えから小定理を導く

 

並べ替えであるということは、両方の集合の**すべての要素を掛け合わせた積**は等しいはずである。

 

```

(1×a) × (2×a) × ... × ((p-1)×a) ≡ 1 × 2 × ... × (p-1) (mod p)

```

 

左辺を整理すると、`a` が `(p-1)` 個掛け合わされている部分と、`1` から `p-1` までの積の部分に分けられる。

 

```

a^(p-1) × (1×2×...×(p-1)) ≡ 1×2×...×(p-1) (mod p)

```

 

ここで `1×2×...×(p-1)` を `(p-1)!`(`p-1` の**階乗〈かいじょう、水準四: `1` からその数までのすべての整数を掛け合わせた値〉**)と書くと、`(p-1)!` は `p` で割り切れない(構成するどの数も `p` より小さいため)。したがって両辺をこの `(p-1)!` で割ることが許され、次の結論にたどりつく。

 

```

a^(p-1) ≡ 1 (mod p)

```

 

**検算4**: `p=7, a=3` の場合、`(p-1)! = 6! = 720`。先ほどの並べ替えの積の等式を実際に数値で確認すると、左辺は `3×6×2×5×1×4 = 720`、右辺(元の並べ替え前)は `1×2×3×4×5×6 = 720`。両者は一致し、証明の骨格が実際の数値でも成立していることが確かめられる。

 

これがフェルマーの小定理の証明である。前巻で「直感的には想像しにくい」と述べたその正体は、「`1` から `p-1` までの数に `a` を掛ける操作が、単なる**並べ替え**にすぎない」という単純な事実だった。

 

---

 

## 第十章: オイラーの定理とφ関数 — 小定理の一般化(水準六)

 

### 素数でなくても成り立つように広げる

 

フェルマーの小定理は `p` が素数であることを前提にしていた。では `p` が素数でない一般の整数 `n` の場合はどうなるのか。この疑問に答えたのが、スイスの数学者**レオンハルト・オイラー(Leonhard Euler、1707年 - 1783年、スイス生まれの数学者。解析学・数論・力学など広範な分野で膨大な業績を残した)**である。

 

オイラーはまず、**オイラーのφ関数(オイラーのファイかんすう、トーシェント関数とも呼ばれる、水準五: 正の整数 `n` に対して、`1` から `n` までの整数のうち `n` と互いに素〈たがいにそ〉なものの個数を返す関数。`φ(n)` と書く)**という道具を導入した。ここで**互いに素(たがいにそ、水準四: 二つの整数の最大公約数が `1` であること)**とは、二つの数が `1` 以外に共通の約数を持たないことを指す。

 

### φ(12) を実際に数えてみる

 

`φ(12)` を具体的に計算してみよう。`1` から `12` までの整数のうち、`12` と互いに素なもの——つまり `12` との最大公約数が `1` になるもの——を数え上げればよい。

 

```

1: gcd(1,12)=1 → 互いに素

2: gcd(2,12)=2 → 互いに素ではない

3: gcd(3,12)=3 → 互いに素ではない

4: gcd(4,12)=4 → 互いに素ではない

5: gcd(5,12)=1 → 互いに素

6: gcd(6,12)=6 → 互いに素ではない

7: gcd(7,12)=1 → 互いに素

8: gcd(8,12)=4 → 互いに素ではない

9: gcd(9,12)=3 → 互いに素ではない

10: gcd(10,12)=2 → 互いに素ではない

11: gcd(11,12)=1 → 互いに素

12: gcd(12,12)=12 → 互いに素ではない

```

 

**検算5**: 互いに素な数は `1, 5, 7, 11` の**4個**であり、`φ(12) = 4` となる。これは実際に一つ一つ数え上げて確認した値である。

 

φ関数には、素因数分解さえわかれば直接計算できる公式もある。`n` を素因数分解して `n = p₁^a × p₂^b × ...` の形にできたとき、`φ(n) = n × (1 - 1/p₁) × (1 - 1/p₂) × ...`という式が成り立つ。`12 = 2² × 3` なので、`φ(12) = 12 × (1 - 1/2) × (1 - 1/3) = 12 × (1/2) × (2/3) = 4`。**検算6**: この公式による計算結果も、先ほど一つ一つ数え上げた結果の `4` と一致した。

 

### オイラーの定理

 

オイラーはこのφ関数を使って、フェルマーの小定理を次のように一般化した。

 

**オイラーの定理(オイラーのていり、水準六: 正の整数 `n` と、`n` と互いに素な整数 `a` に対して、`a` を `φ(n)` 乗した数を `n` で割った余りは必ず `1` になる、という定理)**

 

```

n と a が互いに素なとき、

a^φ(n) ≡ 1 (mod n)

```

 

`n` が素数 `p` の場合、`p` と互いに素なものは `1` から `p-1` までのすべてなので `φ(p) = p-1` となり、フェルマーの小定理はオイラーの定理の特別な場合として含まれる。

 

**検算7**: `n=10`(素数ではない)、`a=7`(`10`と互いに素、`gcd(7,10)=1`)で確かめよう。`φ(10)`は`10=2×5`より`φ(10) = 10×(1-1/2)×(1-1/5) = 10×(1/2)×(4/5) = 4`。オイラーの定理によれば `7^4 mod 10` は `1` になるはずである。実際に計算すると `7^4 = 2401`、`2401 mod 10 = 1`(末尾の `1` の桁を見れば一目瞭然)。確かに主張どおり `1` になった。

 

証明の構造は第九章とほぼ同じで、「`n` と互いに素なもの」の集合に `a` を掛けて `mod n` を取る操作が並べ替えになる事実を使う。この一般化が、後の中国剰余定理や公開鍵暗号への応用の土台となる。

 

---

 

## 第十一章: 中国剰余定理 — 複数の手がかりから一つの数を当てる(水準五)

 

### 「割った余り」から元の数を推理する

 

中国剰余定理(ちゅうごくじょうよていり、水準五: 複数の、互いに素な法に関する合同式の連立方程式が、ある範囲の中でただ一つの解を持つことを保証する定理)を紹介する。名は、古代中国の算術書『孫子算経』(成立年代は諸説あり未確定)に見られる「ある数を3で割ると2余り、5で割ると3余り、7で割ると2余る」という趣旨の問題に由来するとされる。

 

### 具体的に解いてみる

 

「ある数 `x` を `3` で割ると `2` 余り、`5` で割ると `3` 余る。この `x` は何か」という問題を考えよう。式で書くと次のようになる。

 

```

x ≡ 2 (mod 3)

x ≡ 3 (mod 5)

```

 

素朴に、`0` から順に候補を当てはめて確かめてみよう。

 

```

x=0: 0mod3=0(不適)

x=1: 1mod3=1(不適)

x=2: 2mod3=2(適合)、2mod5=2(不適)

x=3: 3mod3=0(不適)

...

x=8: 8mod3=2(適合)、8mod5=3(適合) → 両方満たす!

```

 

**検算8**: `x=8`について確かめると、`8 = 3×2+2`より`8 mod 3 = 2`、`8 = 5×1+3`より`8 mod 5 = 3`。確かに両方の条件を満たしている。中国剰余定理が保証するのは、「`3` と `5` が互いに素であれば、`3×5=15` を法とする範囲(`0` から `14` まで)の中で、この条件を満たす `x` はただ一つに定まる」という一意性である。実際、`8` の次に両方を満たす数は `8+15=23`であり、`0`から`14`の範囲では`8`だけがただ一つの解になっている。

 

### なぜこの定理が重要なのか

 

中国剰余定理の実用的な価値は、「大きな法 `n` の計算」を「小さないくつかの法の計算」に分割し、独立に計算してから組み合わせ直せる点にある。この発想は公開鍵暗号の高速化技法(RSA-CRTと呼ばれる最適化)にも使われている。

 

---

 

## 第十二章: 素数定理 — 素数はどれくらいの密度で現れるか(1896年、水準六)

 

### 素数の「粗さ」を数式で捉える

 

前巻第三章・第四章で、素数が無限に存在すること(ユークリッドの証明)と、実際に素数を探し出す方法(エラトステネスの篩)を見た。ここで湧く疑問がある。**素数はどれくらいの「密度」で現れるのか。**

 

この疑問に答えるのが**素数定理(そすうていり、水準六: `x` 以下の素数の個数 `π(x)` が、`x` が大きくなるにつれて `x/ln(x)`(`ln` は自然対数)に近づいていく、という定理)**である。ここで `π(x)`(素数計数関数、水準五: `x` 以下の素数の個数を返す関数。円周率の `π` とは無関係の記号の流用)は「`x` 以下にいくつ素数があるか」を数える関数であり、`ln(x)`(自然対数、水準四: ネイピア数 `e`〈約2.71828〉を底とする対数)は`x`が大きくなるほどゆっくり増えていく関数である。

 

### 実測して確かめる

 

実際に `x` の値を変えながら `π(x)` と `x/ln(x)` を比べてみよう。

 

| `x` | `π(x)`(実測) | `x/ln(x)`(近似) | 比(実測÷近似) |

|---|---|---|---|

| 100 | 25 | 21.7 | 1.1513 |

| 1,000 | 168 | 144.8 | 1.1605 |

| 10,000 | 1,229 | 1,085.7 | 1.1320 |

| 100,000 | 9,592 | 8,685.9 | 1.1043 |

 

**検算9**: この表は実際に `100,000` までの整数をエラトステネスの篩(前巻第四章)にかけて素数を数え上げ、`x/ln(x)`の値と比較して得られたものである。比の値は `1.1513 → 1.1605 → 1.1320 → 1.1043`と、`x`が大きくなるにつれて全体として`1`に近づいていく傾向が見て取れる。これは素数定理の主張と整合する挙動である(ただし、この規模の実測だけで定理そのものが証明されたことにはならない)。

 

### 二人の数学者による独立証明(1896年)

 

素数定理は**1896年**、フランスの数学者**ジャック・アダマール(Jacques Hadamard)**と、ベルギーの数学者**シャルル=ジャン・ド・ラ・ヴァレ・プーサン(Charles-Jean de la Vallée Poussin)**によって、**互いに独立に**証明された。両者の証明はいずれも、次章で扱う**ゼータ関数**という道具を経由するもので、「整数という離散的な対象の性質を、連続的な関数の分析によって解き明かす」解析的数論と呼ばれる分野の始まりの一つとされる。

 

---

 

## 第十三章: リーマン予想、再訪 — ゼータ関数と素数の関係(1859年提出、水準六・未解決)

 

### 前巻で保留にした、もう一つの謎

 

前巻第七章で、リーマン予想を「素数の分布の規則性に深く関わる予想」として紹介し、詳しい中身には立ち入らないと述べた。もう一歩だけ近づく(完全な理解には→BOOK-0090『複素解析』第1巻の複素関数論が必要であり、本冊では直感の紹介にとどめる)。

 

### ゼータ関数という橋渡し

 

**ゼータ関数(ゼータかんすう、水準六: `ζ(s) = 1/1^s + 1/2^s + 1/3^s + ...`という無限の足し算〈級数〉によって定義される関数)**は、一見すると素数とは無関係な、ただの無限級数に見える。しかし18世紀にオイラーは、このゼータ関数が、実はすべての素数を使った次のような「掛け算」の形にも書き換えられることを示した。

 

```

ζ(s) = (1/(1-2^(-s))) × (1/(1-3^(-s))) × (1/(1-5^(-s))) × ...

(すべての素数 2, 3, 5, 7, 11, ... について掛け合わせる)

```

 

これは**オイラー積(オイラーせき、水準六: ゼータ関数を、すべての素数にわたる無限の掛け算として表した式)**と呼ばれ、「足し算の世界(すべての整数)」と「掛け算の世界(すべての素数)」を結びつける橋渡しの式である。この式があるからこそ、ゼータ関数の性質を調べることが素数の分布の謎を調べることと同じ意味を持つ。

 

### リーマン予想の主張(直感的に)

 

**ドイツの数学者ベルンハルト・リーマン(Bernhard Riemann、1826年 - 1866年)**は**1859年**に発表した論文で、このゼータ関数を複素数の世界にまで拡張したうえで、「ゼータ関数の値がちょうど `0` になる点(零点〈れいてん〉と呼ぶ)が、ある特別な一本の直線上にすべて並んでいるはずだ」という予想を提示した。この零点の並び方が、素数定理の「近似の誤差」の正確な大きさを決定づけると考えられている。素数定理が平均的な密度を教えるのに対し、リーマン予想はその平均からのズレの大きさの上限も保証する。

 

### 現在地 — 未確定のまま

 

**リーマン予想は、1859年の提出から現在(2026年)に至るまで、証明も反証もされていない**。数値計算で非常に多くの零点(数兆個規模)がその直線上に見つかっており状況証拠は予想を支持しているが、証明の代わりにはならない。証明されれば数論の未解決問題に連鎖的な決着をもたらすと考えられている、現代数学の最重要問題の一つであり、**未確定**のままである。

 

---

 

## 第十四章: Diffie–Hellman鍵交換 — 見ず知らずの相手と秘密を共有する(1976年、水準六)

 

### 「鍵をどう届けるか」という古くて新しい問題

 

暗号の歴史には、常に一つの根本的な難問がつきまとってきた。**暗号文を安全にやりとりするための「鍵」そのものを、どうやって安全に相手に届けるか**という問題である。鍵を届ける通信自体が盗聴されれば、暗号は意味をなさない。

 

この難問に新しい発想で解決を与えたのが、アメリカの研究者**ホイットフィールド・ディフィー(Whitfield Diffie)**と**マーティン・ヘルマン(Martin Hellman)**が**1976年**に発表した**Diffie–Hellman鍵交換(ディフィー・ヘルマンかぎこうかん、水準六: 通信内容を盗聴されている前提でも、二者が公開のやりとりだけで、盗聴者にはわからない共通の秘密の数を作り出せる手法)**である。

 

### べき乗の「一方通行」性を利用する

 

この手法の核心は、合同式の世界での**べき乗の計算は簡単だが、その逆(離散対数と呼ばれる問題)を解くのは非常に難しい**という非対称性にある。`a^k mod n` を計算するのは第八章の繰り返し二乗法により高速にできるが、その結果と `a`、`n` だけから `k` を逆算するのは、`n` が十分大きければ現実的な時間では終わらない。

 

具体的な流れ(実用の暗号ではけた違いに大きな数を使うが、ここでは概念的な小さな例)を追う。送り手と受け手が、まず公開の場で「法 `n`」と「底 `g`」に合意する(盗聴されてもかまわない)。

 

```

送り手: 秘密の数 x を選び、g^x mod n を計算して公開する

受け手: 秘密の数 y を選び、g^y mod n を計算して公開する

送り手: 受け手が公開した (g^y mod n) を受け取り、これを x 乗して mod n を取る → (g^y)^x mod n

受け手: 送り手が公開した (g^x mod n) を受け取り、これを y 乗して mod n を取る → (g^x)^y mod n

```

 

`(g^y)^x = g^(xy) = (g^x)^y` という指数法則により、送り手と受け手は別々に計算したにもかかわらず**まったく同じ値 `g^(xy) mod n`** にたどりつき、これを共通の秘密鍵として使う。盗聴者は `g`、`n`、`g^x mod n`、`g^y mod n` を見ても、そこから `x` や `y` を逆算するのは離散対数問題の難しさゆえに現実的でない、というのが安全性の根拠である。

 

---

 

## 第十五章: RSA暗号 — 素因数分解の困難さを鍵にする(1977年考案・1978年発表、水準六)

 

### 公開鍵暗号という発想

 

Diffie–Hellman鍵交換が「共通の秘密を作り出す」手法だったのに対し、**RSA暗号(アールエスエーあんごう、水準六: 「公開鍵」で誰でも暗号化できるが、対応する「秘密鍵」を持つ者だけが復号できる、という非対称性を持つ暗号方式)**は、鍵そのものを公開・秘密の二つに分けてしまうという、さらに大胆な発想を実現した。**1977年**にアメリカの研究者**ロナルド・リベスト(Ron Rivest)**、**アディ・シャミア(Adi Shamir)**、**レナード・エーデルマン(Leonard Adleman)**の三名が考案し、翌**1978年**に論文として発表した(RSAという名は三名の頭文字に由来する)。

 

### 鍵を作る — トイ例で実際に手を動かす

 

実用のRSAでは数百桁もの巨大な素数を使うが、仕組みそのものは非常に小さな数でも(あくまで教育目的の「トイ例」として)実演できる。第十章のオイラーのφ関数と、前章までの合同算術をフル活用する。

 

**手順1: 二つの素数を選び、掛け合わせる。**

 

```

p = 3, q = 11 (どちらも素数)

n = p × q = 33

```

 

**手順2: φ(n) を計算する。**

 

第十章の公式より、`φ(n) = (p-1) × (q-1)` という簡単な形になる(`n`が二つの異なる素数の積であるときの特別な場合)。

 

```

φ(33) = (3-1) × (11-1) = 2 × 10 = 20

```

 

**検算10**: `n=33`を実際に素因数分解すると`33 = 3 × 11`であり、二つとも確かに素数である。`φ(33)`を第十章の一般公式`φ(n) = n×(1-1/p)×(1-1/q)`で計算すると`33×(1-1/3)×(1-1/11) = 33×(2/3)×(10/11) = 20`。`(p-1)×(q-1)`による簡易計算の結果`20`と一致する。

 

**手順3: 公開鍵となる `e` を選ぶ(`φ(n)`と互いに素な数)。**

 

```

e = 3

gcd(3, 20) = 1 (互いに素であることを確認)

```

 

**手順4: `e × d ≡ 1 (mod φ(n))`を満たす `d`(秘密鍵)を求める。**

 

```

3 × d ≡ 1 (mod 20) を満たす d を探す

d = 7 のとき: 3×7 = 21, 21 mod 20 = 1 → 条件を満たす

```

 

**検算11**: `d=7`が本当に条件を満たすか確認すると、`3×7=21`、`21 mod 20 = 1`。確かに`1`になっている。こうして、公開鍵`(n=33, e=3)`と秘密鍵`(n=33, d=7)`の組が得られた。公開鍵は誰に教えてもよいが、秘密鍵`d`は鍵の持ち主だけが知っている必要がある。

 

### 暗号化と復号を実演する

 

平文(暗号化する前の元のメッセージ)として、小さな数 `m = 4` を暗号化してみよう(実用では文字列を数値に変換してから使うが、ここでは数そのものを扱う)。

 

**暗号化(公開鍵 `e=3`, `n=33` を使う)**:

 

```

c = m^e mod n = 4^3 mod 33 = 64 mod 33 = 31

```

 

**検算12**: `4^3 = 64`。`64`を`33`で割ると`33×1=33`、余りは`64-33=31`。確かに`c=31`となる。この`c=31`が暗号文であり、公開鍵しか知らない盗聴者に見られてもかまわない。

 

**復号(秘密鍵 `d=7`, `n=33` を使う)**:

 

```

m' = c^d mod n = 31^7 mod 33

```

 

**検算13**: `31^7`を直接計算すると桁数が大きくなるため、第八章の合同算術の演算規則を使って段階的に`mod 33`を取りながら計算する。実際に計算機で検証したところ、`31^7 mod 33 = 4`となり、暗号化する前の元の平文`m=4`と完全に一致した。

 

なぜ復号できるのか。`c^d = (m^e)^d = m^(ed)`であり、`e,d`は`ed ≡ 1 (mod φ(n))`を満たすよう選ばれていた。つまり`ed = 1 + k×φ(n)`と書けるので`m^(ed) = m × (m^φ(n))^k`。`m`と`n`が互いに素であれば第十章のオイラーの定理により`m^φ(n) ≡ 1 (mod n)`なので`m^(ed) ≡ m (mod n)`となり、復号すると元の平文`m`が戻る。**φ関数・オイラーの定理がここで実を結ぶ。**

 

### 安全性の根拠 — 素因数分解の困難さ

 

RSA暗号の安全性は、「`n=33`という数だけを見て元の二つの素数`p=3, q=11`を逆算するのがどれほど難しいか」にかかっている。トイ例では小さな数なのですぐ`3×11`と分解できるが、実用のRSAでは数百桁もの巨大な`n`を使うため、現在知られているどの計算手法でも現実的な時間内に`p, q`を割り出せないと考えられている。「掛け算は一瞬、逆の素因数分解は困難」という非対称性——前巻第七章で一般論のみ触れた事実——の仕組みが、ここで姿を現した。

 

---

 

## 第十六章: フェルマーの最終定理 — 358年越しの決着(1994年完成・1995年出版、水準六)

 

### 前巻が「未解決」として保留にしていなかった、もう一つの伝説

 

数論の歴史には、フェルマーの小定理(第九章で証明済み)とは別に、同じくフェルマーの名を冠したもう一つの有名な主張がある。**フェルマーの最終定理(フェルマーのさいしゅうていり、水準五: `n`が`3`以上の整数のとき、`x^n + y^n = z^n`を満たす正の整数`x, y, z`の組は存在しない、という主張)**である。

 

フェルマーは17世紀、自身が所有していた書物の余白に「この定理には驚くべき証明を見つけたが、それを書き記すには余白が狭すぎる」という趣旨のメモを残したとされる。しかしその証明がどこにも見つからないまま、以後**358年**にわたって、数え切れない数学者たちがこの主張の証明に挑んでは涙をのんできた。

 

### なぜ `n=2` だけは無数の解を持つのか

 

興味深いことに、`n=2`の場合——`x² + y² = z²`——には、無数の整数解が存在する。これは**ピタゴラス数(ピタゴラスすう、水準三: 直角三角形の三辺の長さの関係`x²+y²=z²`を満たす正の整数の組)**として古くから知られており、`3² + 4² = 5²`(`9+16=25`)が有名な例である。**検算14**: `3²=9`、`4²=16`、`9+16=25`、`5²=25`。確かに一致する。

 

ところがフェルマーの最終定理が主張するのは、指数を`2`から`3`以上に一つ上げただけで、この無数にあった解が**忽然と姿を消してしまう**ということである。`n=3`の場合、小さな範囲(`30`未満)で探索しても`x³+y³=z³`を満たす正の整数の組は一つも見つからない(**検算15**: `1`から`29`までのすべての組み合わせを機械的に確認したが、該当する解は存在しなかった)。わずか`1`の指数差にこれほど劇的な断絶がある事実が、この定理の不思議さの正体である。

 

### ワイルズによる証明(1994年完成・1995年出版)

 

この358年来の難問に決着をつけたのが、イギリスの数学者**アンドリュー・ワイルズ(Andrew Wiles)**である。ワイルズは子どもの頃にこの定理を知って以来、長年密かに証明に取り組み、**1993年**に一度発表したものの見過ごせない欠陥が見つかった。その後1年近くをかけて修正し、**1994年**に証明を完成させ、**1995年**に論文として出版した。

 

ワイルズの証明は、フェルマーの最終定理を直接攻めるのではなく、**楕円曲線(だえんきょくせん)**と**モジュラー形式**という、一見畑違いの現代数学の対象どうしを結びつける、**谷山・志村予想**(日本の数学者谷山豊と志村五郎が提示した予想)の一部を証明することを経由する、高度で長大な道のりを辿った。この技術的な中身は本冊の範囲を大きく超えるため深入りしないが、「単純に見える主張の証明が、まったく別の現代数学の最前線と結びついていた」という事実そのものが、数論の奥深さを象徴する。フェルマーが余白に書き残したという「驚くべき証明」の正体は、今もって不明である(フェルマー自身が実際に正しい証明を持っていたかどうかも**未確定**である)。

 

---

 

## 第十七章: 今なお解けない問い — 双子素数予想とゴールドバッハ予想の現在地(水準五、未解決)

 

### ゴールドバッハ予想、その後

 

前巻第七章で紹介したゴールドバッハ予想(1742年・「4より大きいすべての偶数は二つの素数の和で表せる」)は、本冊執筆時点(**2026年**)においても、**依然として未解決のまま**である。ワイルズによるフェルマーの最終定理の証明という大事件を経てもなお、この主張は証明されていない。「有名な難問が一つ解決されたからといって、別の難問が自動的に解けるわけではない」という事実を、この対比がよく物語っている。

 

### 双子素数予想

 

もう一つの著名な未解決問題として、**双子素数予想(ふたごそすうよそう、水準五: `(3,5)`, `(5,7)`, `(11,13)`のように、差が`2`である素数の組〈双子素数〉が無限に存在する、という予想)**を紹介しておく。小さな範囲で双子素数を探すと`(3,5), (5,7), (11,13), (17,19), (29,31), (41,43)`のように次々と見つかり、コンピュータによる大規模な探索でも非常に大きな数の範囲まで発見され続けている。しかし「**無限に**存在する」ことの証明は、本冊執筆時点で**未解決**である。

 

なお、近年の進展にも公正に触れておく。2013年に数学者張益唐(チャン・イータン)が「差が一定の有限の範囲である素数の組が無限に存在する」ことを証明し、その後の共同研究によってこの範囲はさらに縮められてきた。しかし、これは「差がちょうど`2`」という双子素数予想そのものの証明には至っておらず、双子素数予想自体は依然として**未確定**のままである、という点は正確に区別しておく必要がある。

 

### 未解決であることの価値

 

これらの予想が未解決であり続けている事実は、数論の弱さではなくその豊かさの証である。証明された定理(ユークリッドの証明・本冊第九章の小定理の証明)が土台として積み上がる一方、ゴールドバッハ予想・双子素数予想・リーマン予想のような未解決の頂も存在し続ける。この共存が、数論を2000年以上色あせさせない原動力である。

 

---

 

## 第十六章の二: 三つの実践解 — 大きな数の素数判定を手で速くする(§16.21、水準四〜六)

 

数論の理論を実際の手作業に落とし込む、実践的な技法を三つ紹介する。「ある大きな数`N`が素数かどうかを、限られた時間・道具の中でできるだけ速く判定したい」という具体的な場面を想定する。

 

### 解1: 末尾と数字和による2, 3, 5の即時判定

 

**【材料】** 判定したい数`N`の十進表記(各桁の数字)。

 

**【工程】** `N`の一の位が偶数(`0,2,4,6,8`)なら即座に`2`の倍数と判定できる。一の位が`0`または`5`なら`5`の倍数と判定できる。すべての桁の数字を足し合わせた「数字和」が`3`の倍数であれば、`N`自身も`3`の倍数と判定できる。

 

**【なぜ効くか】** 十進法は`10 = 2×5`を基礎にするため、一の位だけで`2`と`5`の倍数性が決まる。`3`の倍数判定は`10 ≡ 1 (mod 3)`という合同関係(第八章の演算規則)から従う。`10^k`は`mod 3`では常に`1`なので、`N = Σ(桁の数字 × 10^k)`の`mod 3`は「桁の数字の合計」の`mod 3`と一致する。**検算16**: `123456789`の数字和は`45`。`45=3×15`は3の倍数なので`123456789`も3の倍数のはずであり、実際に`123456789 = 3 × 41152263`と割り切れる。

 

**【限界】** この方法が即座に判定できるのは`2, 3, 5`(および数字和の応用で`9`)の倍数性だけであり、`7, 11, 13`以降の素数についてはこの技法だけでは判定できない(それぞれ別の合同関係に基づく専用の判定法が存在するが、実用上の速さでは劣る)。

 

### 解2: √Nまでの試し割りとその打ち切り根拠

 

**【材料】** `N`の平方根`√N`のおおよその値と、`√N`以下の素数の一覧(前巻第四章のエラトステネスの篩で用意できる)。

 

**【工程】** `2`から`√N`(端数は切り捨て)までの素数で、順に`N`を割ってみる。どれでも割り切れなければ、`N`は素数であると確定してよい。たとえば`97`が素数かどうかを調べたい場合、`√97 ≈ 9.85`なので、`9`以下の素数`2, 3, 5, 7`だけを試せばよい。

 

**【なぜ効くか】** もし`N`が合成数であれば、`N = a × b`(`a ≤ b`)という分解が必ず存在し、`a`と`b`の両方が`√N`より大きいことはありえない(両方が大きければ積`a×b`が`N`を超えて矛盾する)。したがって合成数`N`は必ず`√N`以下に約数を持つ。逆に、`√N`以下のどの数でも割り切れなければ`N`は素数だと確定できる。**検算17**: `97`を`2,3,5,7`(いずれも`9`以下の素数)で割ってみるといずれも割り切れず、`97`は素数と確定できる。

 

**【限界】** `N`が数十桁・数百桁の巨大な数になると、`√N`もまた天文学的に大きくなり、試し割りに必要な回数が現実的な時間で終わらなくなる。実用の暗号(第十五章のRSAなど)で使われる規模の数には、この方法は原理的に正しくても実務的には通用しない。

 

### 解3: フェルマーテストによる確率的判定(擬素数の限界を明記)

 

**【材料】** 判定したい数`N`と、適当に選んだ底`a`(通常`2`など小さい数から試す)。

 

**【工程】** 第九章のフェルマーの小定理を「逆向き」に利用する。もし`N`が素数であれば、`N`と互いに素などんな`a`についても`a^(N-1) ≡ 1 (mod N)`が成り立つはずである。そこで、実際に`a^(N-1) mod N`を計算し、これが`1`にならなければ、`N`は素数ではないと(確実に)判定できる。逆に`1`になった場合は、「`N`はおそらく素数であろう」という、**確率的な**判定にとどめる。

 

**【なぜ効くか】** フェルマーの小定理の対偶(たいぐう、水準三: 「AならばB」という命題に対して、「BでなければAでない」と言い換えた、論理的に同じ内容の命題)を使う。「`N`が素数ならば`a^(N-1)≡1`」の対偶「`a^(N-1)≢1`ならば`N`は素数でない」は常に正しい。第八章の繰り返し二乗法により、`N`が数百桁でもこの計算は現実的な時間で終わる点が、解2の限界を克服する強みになる。

 

**【限界】** ここが重要な点だが、**「`a^(N-1)≡1 (mod N)`が成り立つからといって、`N`が素数であるとは限らない」**。合成数でありながらこの条件を満たしてしまう数を**擬素数(ぎそすう、フェルマー擬素数、水準五: 合成数でありながら、ある底`a`についてフェルマーの小定理と同じ条件`a^(N-1)≡1 (mod N)`を満たしてしまう数)**と呼ぶ。**検算18**: `N=341=11×31`という合成数だが、`2^340 mod 341`を計算すると`1`になり、底`2`に関する擬素数である。実務では複数の底での繰り返しテストや、より精密な確率的判定法(ミラー・ラビン法など、詳細は本冊の範囲を超えるため名称の紹介にとどめる)でこの限界を実用上無視できる水準まで小さくする。フェルマーテストは「速いが確実でない」、試し割りは「確実だが遅い」——この対比が理論と実務のせめぎ合いを体現している。

 

---

 

## 出口の物語 — 保留の宿題から、開かれた地平へ

 

本冊の旅を振り返ろう。前巻で保留にしていたフェルマーの小定理の証明を「並べ替えても中身は変わらない」という事実から導き、オイラーの定理とφ関数、中国剰余定理を手に入れた。素数の密度を教える素数定理を実測で確かめ、ゼータ関数とオイラー積という、足し算と掛け算を結ぶ橋にも触れた。

 

そして、この整数だけの宇宙が現代文明を支える仕組みを、Diffie–Hellman鍵交換とRSA暗号という二つの例を通じて、トイ例の数値を実際に手で動かしながら確かめた。フェルマーの最終定理という358年越しの決着にも立ち会い、ゴールドバッハ予想・双子素数予想・リーマン予想という、なお開かれたままの謎の現在地も報告した。最後に、大きな数の素数判定に対する三つの実践解——即時判定・試し割り・フェルマーテスト——を通じて、理論と実務の往復も体験した。

 

前巻の出口で述べた宿題は、本冊でひとまず開封された。しかし数論という宇宙は、リーマン予想やゴールドバッハ予想、双子素数予想という、いまだ誰も踏み込んだことのない山頂を、今この瞬間も指し示し続けている。素数という尽きない原子でできたこの宇宙の探検は、まだ終わっていない。暗号そのもののさらに詳しい仕組みは→BOOK-0073『暗号』第1巻へ、ゼータ関数のさらに厳密な性質は→BOOK-0090『複素解析』第1巻へと、旅を引き継ぐことにしよう。

 

---

 

## 補章: 検算総覧(水準五〜六)

 

本冊で埋め込んだ検算を一覧にして振り返る。

 

1. 合同式の演算規則: `17≡2, 8≡3 (mod 5)`から`17+8≡2+3`、`17×8≡2×3`が成立。

2. 段階的なmod計算: `3^6 mod 7`を`3^2≡2 → 3^4≡4 → 3^6≡1`と段階的に求め、前巻の直接計算`729 mod 7=1`と一致。

3. フェルマーの小定理の証明具体例: `p=7,a=3`で`1..6`に`3`を掛けてmod7を取ると`{3,6,2,5,1,4}`となり、並べ替えとして`{1,...,6}`と一致。

4. 証明の積の一致: `(1×a)×...×(6×a) mod 7`の左辺`=720`と`1×2×...×6=720`が一致。

5. φ(12)の数え上げ: `1`から`12`のうち`12`と互いに素な数は`1,5,7,11`の4個、`φ(12)=4`。

6. φ(12)の公式計算: `12×(1-1/2)×(1-1/3)=4`が数え上げと一致。

7. オイラーの定理具体例: `n=10,a=7,φ(10)=4`のとき`7^4 mod 10=1`。

8. 中国剰余定理具体例: `x≡2(mod3), x≡3(mod5)`の解`x=8`が両条件を満たす。

9. 素数定理の実測: `x=100〜100,000`で`π(x)/(x/ln x)`の比が`1`に近づく傾向(1.1513→1.1043)。

10. RSAのφ(n)計算: `n=33=3×11`、`φ(33)=(3-1)×(11-1)=20`を一般公式でも確認。

11. RSAの秘密鍵d: `3×7=21≡1 (mod 20)`。

12. RSA暗号化: `m=4, c=4^3 mod 33=31`。

13. RSA復号: `31^7 mod 33=4`が元の平文と一致。

14. ピタゴラス数(n=2): `3²+4²=5²`(`9+16=25`)。

15. フェルマーの最終定理n=3の探索: `1〜29`の範囲で`x³+y³=z³`の整数解が存在しない。

16. 数字和による3の倍数判定: `123456789`の数字和`45`が3の倍数、実際に`123456789`も3で割り切れる。

17. 試し割りの打ち切り: `97`を`√97≈9.85`以下の素数`2,3,5,7`で試し、いずれも割り切れず素数と確定。

18. フェルマーテストの擬素数: `341=11×31`(合成数)が`2^340 mod 341=1`となり、底2に関する擬素数。

 

最後に、読者への小さな挑戦を残しておく。`n=15=3×5`のRSAトイ例で、`φ(15)=(3-1)×(5-1)=8`となる。`e=3`(`gcd(3,8)=1`を確認できる)としたとき、`3×d≡1 (mod 8)`を満たす`d`を探してみてほしい(ヒント: `d`を`1`から`7`まで順に試すとよい。答えは`d=3`になるはずである。実際`3×3=9`、`9 mod 8=1`)。この手作業こそが、公開鍵暗号という現代文明の基盤技術の骨格を、自分の手で確かめる近道である。

 




# BOOK-0127 数論 — 整数の宇宙、深化と接続(数学派生 第2巻)

  1. 目次
  2. 小説情報
  3. 縦書き
  4. しおりを挟む
  5. お気に入り登録
  6. 評価
  7. 感想
  8. ここすき
  9. 誤字
  10. 閲覧設定