STEP 2 専門記事 / 数学史

🔢 フェルマーから楕円曲線へ:現代暗号につながる17世紀の数学史

もふねこ

もふねこだよ🐾 前の記事ではスキュタレー・シーザー・戦国武将の暗号を見てきたね。今回はぐっと深く進んで、17〜20世紀の「数学の歴史」が現代暗号にどうつながるのかを専門的に解説するよ!

この記事の3秒まとめ

  • フェルマーの小定理(1640年):素数の判定に使われる数論の基礎
  • カーマイケル数:素数に「偽装」する危険な合成数。RSAへの悪影響に要注意
  • ミラー–ラビン法:現代で使われる確率的素数判定アルゴリズム
  • 楕円曲線理論:フェルマーの最終定理の証明に使われた理論が、ビットコインの暗号(ECC)として現代に生きている

⚙️ フェルマーの小定理(1640年)と暗号への応用

1640年、フランスの数学者ピエール・ド・フェルマーは次の定理を発見しました。

📐 フェルマーの小定理
p が素数で、ap の倍数でないとき:
ap-1 ≡ 1 (mod p)
例:p=7(素数)、a=3 のとき
36 = 729 = 7×104 + 1 → 729 mod 7 = 1
読者
読者

これが暗号にどう関係するの?

もふねこ
もふねこ

RSA暗号の正しい動作(暗号化した後に復号すると元に戻る保証)は、実はこのフェルマーの小定理の延長線上にある「オイラーのトーシェント定理」から来ているんだよ🐾

さらに、この定理は「素数かどうかを判定するテスト」として使えます。もし ある数 p に対してランダムな a を選んで ap-1 mod p = 1 が成り立てば、p は素数らしい——という「フェルマー素数テスト」です。


⚠️ 危険な「偽装者」:擬素数とカーマイケル数

しかし、フェルマーの素数テストには致命的な欠陥がありました。

⚠️ 擬素数(Pseudoprime)とは?
フェルマーの小定理を満たしている(= 素数らしく見える)にもかかわらず、実は合成数(素数でない数)である数のことです。
例:561 = 3 × 11 × 17 は明らかに合成数ですが、フェルマーテストをパスしてしまいます。

カーマイケル数:完全な偽装者

カーマイケル数は、さらに悪質な「どんな a を選んでもフェルマーテストをパスしてしまう合成数」です。これらは「絶対擬素数」とも呼ばれます。

カーマイケル数 素因数分解 フェルマーテスト
5613 × 11 × 17全ての a で ≡ 1 → 素数と誤判定
1,1055 × 13 × 17全ての a で ≡ 1 → 素数と誤判定
1,7297 × 13 × 19全ての a で ≡ 1 → 素数と誤判定
読者
読者

これをRSAの素数として誤って使ったらどうなるの?

もふねこ
もふねこ

大変なことになるよ!RSAは2つの「大きな素数」の掛け算の素因数分解が困難であることを安全性の前提にしている。カーマイケル数のような合成数を使うと、この前提が崩れてRSA暗号が解読されてしまうんだ🐾


🔬 現代の解決策:ミラー–ラビン素数判定法

カーマイケル数問題を解決するために、1975年(Miller)と1980年(Rabin)が考案したのが「ミラー–ラビン法(Miller-Rabin Primality Test)」です。

ミラー–ラビン法の特徴

  • 確率的アルゴリズム:「素数である確率 = 1 − 4−k」でテスト回数 k を増やすほど精度が上がる
  • カーマイケル数を排除できる:フェルマーの素数テストと違い、偽装を見破れる
  • 実用例:OpenSSL・Java・Pythonの組み込みライブラリなど、現代の暗号ライブラリのほぼ全てで採用
  • k = 40 回テストすると誤判定確率は約 10-24(実質ゼロに近い)

🌀 フェルマーの最終定理と楕円曲線暗号(ECC)

1637年、フェルマーは余白に「xn + yn = zn(n > 2)を満たす正の整数解は存在しない」と書き残し、350年以上証明されないままでした。

1995年:証明の鍵は「楕円曲線」だった

アンドリュー・ワイルズが350年越しの証明を成し遂げた。その核心にあったのが「楕円曲線」の理論だった。楕円曲線とは、y² = x³ + ax + b の形をした曲線で、代数的に非常に豊かな構造を持つ。

楕円曲線の数学理論(17世紀〜)
y² = x³ + ax + b の代数幾何学
フェルマーの最終定理の証明(1995年)
ワイルズが楕円曲線を使って350年の謎を解明
楕円曲線暗号 ECC(1985年考案→現代の主流)
ビットコイン・TLS・SSH など幅広く採用。RSAより短い鍵で同等の安全性

なぜECCはRSAより強いのか?

比較項目 RSA ECC
安全性の根拠素因数分解の困難さ楕円曲線離散対数問題
128bit安全性に必要な鍵長3072 bit256 bit(約1/12!)
処理速度やや遅い高速
主な採用例SSL証明書・メール署名Bitcoin・TLS 1.3・SSH
もふねこ
もふねこ

17世紀のフェルマーが数学の楽しさで探求した「楕円曲線」が、400年後にビットコインを守る技術になるなんて、なんてロマンがあるんだろう🐾

読者
読者

数学って「いつ役に立つかわからない」けど、ちゃんと未来につながってるんだね…!


📌 まとめ:17世紀の数学が現代を守っている

  • フェルマーの小定理(1640年) → RSAの正しさを保証する数学的基盤
  • 擬素数・カーマイケル数 → 単純な素数テストの落とし穴。RSAのセキュリティを脅かす
  • ミラー–ラビン法 → 現代の暗号ライブラリが採用する確率的素数判定の標準
  • 楕円曲線理論 → フェルマー最終定理の証明の核心であり、ECC(楕円曲線暗号)の基礎
  • 歴史:スキュタレー → シーザー → フェルマー → ECC → 量子耐性暗号(ML-KEM)
🔙 古代〜戦国の暗号 へ戻る