基礎理論とコア技術

【公開鍵暗号 第1部】
魔法の誕生と鍵生成の数学

あなたは今日、一度も会ったことがない人と秘密を共有した

今日あなたがAmazonで買い物をしたとき、Amazonのサーバーとあなたのスマホは「暗号の鍵」を共有しました。でも、あなたはAmazonの担当者と一度も会っていない。電話もしていない。なのになぜ、誰にも知られずに「二人だけの秘密の鍵」を持てたのでしょうか。

その答えが「公開鍵暗号」です。

もふねこ

この魔法が生まれるまで、人類は3000年間も「ある絶対に解けない問題」に苦しめられていたんだ。今日は、世界の常識がひっくり返った歴史的な大逆転劇を見てみよう🐾

📝 この記事の目次

1. 1976年以前、秘密通信には「事前の出会い」が必要だった

古代ローマのカエサル暗号から、冷戦時代のスパイの通信まで、3000年以上にわたって暗号の世界には絶対に逃れられない制約がありました。
それは、「秘密の通信をするには、事前に会って鍵を共有しなければならない」というルールです。

離れた相手に鍵を送ろうにも、その鍵を途中で盗まれないためには、別の鍵で守る必要がある。インターネットのように初めて会う相手と、どうやって安全に秘密の鍵を決めるか。これが1970年代の暗号学者たちが頭を抱えていた「鍵配送問題」です。

もふねこ

つまり「鍵を安全に送るために、まず鍵が必要」という堂々巡りね🐾 この絶対に解けない矛盾が、3000年間の常識だったんだ。


2. 1976年、ディフィーとヘルマンが常識を壊した

この3000年間の絶望を打ち破ったのが、ホワイトフィールド・ディフィーとマーティン・ヘルマンです。
1976年、彼らは『暗号における新しい方向』という歴史的な論文を発表しました。そこに書かれていたアイデアは、当時の暗号学者の多くが「そんなことは不可能だ」と思っていた魔法のようなものでした。

彼らは、「鍵を渡す」という発想そのものを捨て、安全でない通信路上でお互いに計算を重ねて秘密の鍵を合成する『ディフィー・ヘルマン鍵共有(DH鍵共有:Diffie-Hellman Key Exchange)』という概念を提唱しました。これは、「累乗の計算は簡単だが、その結果から元の指数を割り出すのは極めて困難である」という数学の『離散対数問題(DLP:Discrete Logarithm Problem)』の難しさを安全性の根拠としています。

💡 公開鍵は「開いた南京錠」

もふねこと公開鍵の箱(南京錠)

公開鍵暗号(Asymmetric cryptography:非対称暗号)のアイデアは非常にシンプルです。暗号化と復号で『別々の鍵』を使うという数学的な性質を利用します。あなた自身が「開いた状態の南京錠(公開鍵)」を作り、それを世界中に配ります。誰もがその南京錠を持てます。

メッセージを送りたい人は、その南京錠で箱を「ガチャッ」と閉じて送るだけです。
しかし、その南京錠を再び開けられる「鍵(秘密鍵)」を持っているのは、錠を作ったあなただけです。南京錠を持っていても、開ける鍵は手に入りません。

「会わずに鍵を共有する」。不可能とされた魔法の正体は、この逆転の発想にありました。


3. なぜそれが可能なのか——素数という3000年前からの素材

1976年のディフィーたちの『夢のアイデア』に触発され、翌年「素数を使えばそれが実現できるぞ!」と具体的な計算式を完成させたのが、3人の天才数学者(リベスト、シャミア、アドルマン)でした。彼らの頭文字をとった『RSA暗号』の南京錠は、実は2300年前からある数学から作られています。

誰もが知っている「素数」(1と自分自身でしか割り切れない数)の掛け算には、「掛けるのは一瞬だが、元に戻すのは実質不可能」という強烈な性質があります。この『素因数分解問題(IFP:Integer Factorization Problem)』の非対称性を利用した仕組みを、現代の暗号学では『落とし戸付き一方向性関数(Trapdoor one-way function)』と呼びます。

例えば「61 × 53 = 3233」という計算は電卓で一瞬ですが、「3233 = ? × ?」を解くのは少し時間がかかります。
実際のRSA暗号では、600桁以上(2048ビット)の巨大な数を使います。現在、巨大な数の素因数分解には『一般数体ふるい法(GNFS:General Number Field Sieve)』という最速のアルゴリズムが用いられますが、それでも2048ビットの鍵を解読するには、世界最速のスーパーコンピュータを使っても宇宙の年齢(138億年)を遥かに超える時間がかかると言われています。

これを『計算論的安全性(Computational Security)』と呼び、「理論上は解けるが、現実的な時間内には絶対に解けない」という数学的な困難さ(素因数分解問題)を根拠として、誰に配っても破られない南京錠の頑丈さを作っているのです。

⚠️【暗号史最大のロマン】実は「イギリスの極秘機関」が先に発明していた?

実は、ディフィーやRSAの天才たちが発表する以前に、イギリスの諜報機関GCHQが極秘に同等の仕組みを発明していました。1969年にジェームズ・エリスが非対称暗号の理論的概念を考案し、1973年にクリフォード・コックスがRSAと同等のアルゴリズムを、1974年にマルコム・ウィリアムソンがDH鍵共有と同等の数学モデルを完成させていたのです。しかし軍事機密だったため世に出せず、歴史の表舞台に立つことはできませんでした。これらの機密は1997年に解除され、世界を驚かせました。


4. 鍵生成の数学——「なぜ必ず元に戻るのか」

素数を使って作った南京錠が、なぜあなたの手元の「秘密鍵」でだけ都合よくガチャッと開くのでしょうか?

これは、数学の「フェルマーの小定理」やそれを発展させた「オイラーの定理(オイラーのトーティエント関数)」という絶対的な法則によって、「秘密鍵を持っている人だけが元に戻せる」ことが完璧に証明されているからです。途中どんなに数字が複雑に混ざり合っても、素数の周期性に関するこの数学的定理によって、計算上必ず最初の状態にピッタリ戻ることが保証されています。

📝 【開発者向け】なぜ公開鍵に e = 65537 を使うのか?(クリックで展開)

公開鍵を生成する際、標準として「65537」という数字がよく使われます。これは数学的に「4番目のフェルマー素数(2^16 + 1)」であり、コンピュータの2進数で表すと「10000000000000001」となります。"1"が2つしかないため、バイナリ法(Square-and-Multiply algorithm)を用いたべき乗剰余計算の負荷が劇的に軽くなり、世界中のSSL/TLS証明書で採用されています。


🎯 あなたの秘密鍵は、あなただけの南京錠の鍵だ

1976年に起きた「会わずに秘密を共有する」という革命。この公開鍵暗号の魔法がなければ、現在のAmazonでの買い物も、安全なLINEの通信も存在しませんでした。

そして、ビットコインなどの暗号資産(仮想通貨)のウォレットにも、この『公開鍵暗号』とまったく同じ仕組みが使われています(※ビットコインでは素数ではなく「楕円曲線」という別の数学を使いますが、南京錠と鍵の概念は同じです)。あなたのウォレットにある「秘密鍵」は、まさにこの『南京錠を開ける唯一の鍵』です。それを失ったとき、世界中の誰もあなたの代わりにその金庫を開けることはできません——数学がそれを保証しているからです。

歴史上の天才たちが作り上げたこの強力な魔法の金庫。その仕組みを知った今、実際にあなた自身の手で、この強固な暗号を使った資産管理を始めてみませんか?

歴史×サイバーセキュリティ
💡 自分の資産を暗号で守る

暗号技術が守る「デジタル資産」を持とう

銀行に頼らず、数学と暗号の力だけで自分の財産を100%コントロールする。それがビットコインの根幹です。

🔍 次のステージへ

公開鍵暗号の仕組みが分かったら、次は実際に数字を使って暗号化と復号を体験してみましょう。
小学生の算数だけで、世界最高峰のセキュリティを自分の手で再現できます。

👉 第2部:RSA暗号化・復号の具体例 を読む