🔢 フェルマーから楕円曲線へ:現代暗号につながる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暗号が解読されてしまうんだ🐾


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

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

ミラー–ラビン法の特徴

  • 確率的アルゴリズム:合成数を素数と誤判定してしまう確率の最大値が 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世紀〜20世紀)
y² = x³ + ax + b の代数幾何学
↙ ↘
楕円曲線暗号 ECC
(1985年 考案)
Bitcoin・TLS・SSHで採用
RSAより短い鍵で同等の安全性
フェルマーの最終定理の証明
(1995年 ワイルズ)
350年越しの謎を解明
楕円曲線と保型形式の接続が鍵
※ ECCと最終定理の証明は楕円曲線理論を共通の基盤としつつ、独立に発展した2つの応用です

なぜ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)

フェルマーが17世紀に残した「数の謎」が、ワイルズを経て楕円曲線理論に昇華し、そして今日のビットコイン・TLS・SSHへ――。この数学のバトンリレーは、「誰も管理しない、誰にも改ざんされない価値の記録」という現代の暗号資産へと続いています。

歴史×サイバーセキュリティ
💡 数学史が生んだテクノロジーを体験する

フェルマーの数学が守る「ビットコイン」を体験する

17世紀の数論から生まれた楕円曲線理論が、今まさにビットコインのウォレットを守っています。
その数学の強さを知った今、実際に体験してみませんか?🐾

📚 この記事の「現代への応用」を深掘りするには

この記事では「数学の歴史的な発展」を追いました。素因数分解・CSPRNG・ハッシュ関数が実際にインターネットをどう守るかの現代応用編はこちら:

🔢 現代暗号を支える応用数学:素因数分解・CSPRNG・ハッシュ関数を解説 →