advertisements

『サマーウォーズ』の2056桁を追いかけて——素因数分解ツールで辿る暗号技術の限界線

 - innovaTopia - (イノベトピア)

私は中学生の頃、細田守監督の『サマーウォーズ』を見ました。主人公・小磯健二が鼻血を流しながら、目の前のキーボードに向かうシーン。「よろしくおねがいします!」という叫びとともに、エンターキーを押し込む瞬間。あの一瞬が、私の記憶に強く残りました。

健二の携帯に届いたのは、2056桁の数字の羅列でした。「Solve Me(私を解いて)」という件名とともに。数学オリンピック日本代表候補だった健二は、一晩でこの暗号を解き、返信してしまいます。しかしそれは、仮想世界OZのセキュリティを支える暗号システムの鍵だったのです。

映画を見た多くの人が思ったはずです。あの暗号は、本当に解けるものなのか? そして私自身も、いつかあの暗号に挑んでみたいと思いました。最近、私はその思いを形にしました。素因数分解ツールを作ったのです。

2から割っていく

素因数分解とは、ある数を素数の積に分解することです。素数とは、1とその数自身でしか割り切れない数——2、3、5、7、11、13…と続いていきます。

最もシンプルな方法は、2から順番に割っていくことです。例えば12という数なら、まず2で割ります。12÷2=6。次に6をまた2で割ります。6÷2=3。3はもう素数なので、これ以上分解できません。答えは12=2×2×3です。

このプロセスは、誰でも理解できます。小学校の算数で習う範囲です。しかし、桁数が増えると話は変わります。10桁、20桁、そして2056桁。数が大きくなるにつれ、試すべき素数の数は爆発的に増えていきます。これが、RSA暗号の強さの根拠です。

17年越しの解答

RSA暗号は1977年、3人の数学者によって発明されました。ロナルド・リベスト、アディ・シャミア、レオナルド・エーデルマン。彼らの名前の頭文字から、この暗号方式は「RSA」と名付けられています。

公開鍵暗号という新しい概念を具体化したRSAは、大きな2つの素数を掛け合わせた数を公開鍵とし、元の素数を秘密鍵とします。公開鍵から秘密鍵を導くには、素因数分解が必要です。しかし、桁数が大きければ、その計算は現実的に不可能——これがRSAの安全性の根拠でした。

同じ1977年、Scientific American誌に129桁の合成数を使ったRSA暗号の懸賞問題が掲載されました。問題番号にちなんで「RSA-129」と呼ばれるこの挑戦は、解読には4京年必要だろうと予測されていました。

しかし1994年4月、予想は覆されます。オックスフォード大学、アイオワ州立大学、マサチューセッツ工科大学の研究者たちが、インターネット上で約600名のボランティアを集め、大規模な解読プロジェクトを開始しました。8ヶ月で800万以上の計算が行われ、最終的にスーパーコンピューターMP-1で45時間かけて、連立方程式を解きました。

答えは”The magic words are squeamish ossifrage”——「魔法の言葉は臆病なヒゲワシ」でした。17年の歳月を経て、RSA-129は解読されたのです。

この解読は、暗号技術の進化を促しました。RSAは今も使われていますが、次第に楕円曲線暗号へと移行が進んでいます。1985年に発明された楕円曲線暗号は、RSAの2048ビットと同等の安全性を、わずか224ビット程度で実現できます。短い鍵長ゆえに処理が速く、ビットコインやイーサリアム、スマートフォンのTLS通信などで広く採用されています。

129桁でこれだけの規模と時間が必要でした。では、サマーウォーズの2056桁は?

私の応答

私がこのツールを作ろうと思ったのは、健二が最後に鼻血を流しながら暗算で解くシーンへの応答としてでした。あの瞬間の必死さ、そして「よろしくおねがいします!」という叫び。そこには、問題に立ち向かう人間の姿がありました。

ツールの制作には、2時間ほどかかりました。使った技術はHTMLです。アルゴリズムは、最もシンプルな方法——2から順番に割っていく試し割り法を選びました。

なぜシンプルな方法を選んだのか。それは、人間が素因数分解を解くプロセスと同じだからです。健二が暗算で解いたプロセスを、コンピューターで再現してみたかったのです。

効率化のため、100万までの素数リストを格納しました。このリストにある素数だけを使って、順番に割っていきます。100万までにした理由は、プログラムが重くなりすぎないようにするためです。ブラウザ上で動作するツールとして、現実的なバランスを選びました。

GitHub Pagesで公開し、誰でも試せるようにしました。URLは https://kikuchi131221.github.io/RSA/factoring.html です。

実際に使ってみると、こうなります。

10桁の数を入力すれば、ほぼ一瞬で結果が出ます。15桁も、数によってはほぼ一瞬です。20桁になると、約7秒ほどかかります。桁数が増えるにつれ、計算時間は急激に伸びていきます。

そして、試しに2056桁の数を入力してみました。

処理中のまま、動きません。

このツールでは、サマーウォーズの暗号を解くことはできません。それどころか、30桁を超えたあたりから、現実的な時間では答えが出なくなるでしょう。

しかし、この「動かなさ」こそが、暗号の強さを教えてくれます。最もシンプルな方法で挑むからこそ、素因数分解がどれほど困難な問題なのかが体感できるのです。RSA-129が600人×8ヶ月を要した理由が、画面の前で待ち続けるうちに、静かに理解できます。

このツールは「速く解く」ためのものではありません。「限界を体感する」ためのものです。2から順番に割っていく——その単純さが、かえって暗号の深淵を浮かび上がらせます。

進化する暗号——楕円曲線からポスト量子へ

興味深いことに、RSA-129が解読されたのと同じ1994年、アメリカの数学者ピーター・ショアが、まったく異なるアプローチを考案しました。量子コンピューターを使った素因数分解のアルゴリズム、通称「ショアのアルゴリズム」です。

量子コンピューターは、従来のコンピューターとは根本的に異なる原理で動作します。量子ビットという特殊な計算単位を使い、0と1を同時に扱うことができます。この性質により、素因数分解を多項式時間で解くことが理論上可能になるとされています。

2023年1月、富士通は量子シミュレーターを使った実験結果を公表しました。現在一般的な2048ビットのRSA暗号を解読するには、約1万量子ビットと約2兆2300億の量子ゲートが必要で、約104日間量子ビットを誤りなく保持する必要があるという結果です。現在の量子コンピューターは数百量子ビット程度であり、短期的にはRSA暗号は安全だと結論づけられました。

しかし、IBMは2032年までに2000論理量子ビットを実現する計画を示しています。2030年前後が、転換点になる可能性があると指摘する専門家もいます。

そして重要なのは、ショアのアルゴリズムは楕円曲線暗号も破れるということです。むしろ、RSAよりも楕円曲線暗号の方が量子コンピューターには脆弱だとされています。256ビットの楕円曲線暗号には2330量子ビットが必要ですが、3072ビットのRSA暗号には6146量子ビットが必要です。

こうした背景から、量子コンピューターでも解読できない「ポスト量子暗号(PQC)」の開発が進められています。米国国立標準技術研究所(NIST)は2016年から標準化活動を開始し、2024年8月、3つの暗号方式を正式な連邦情報処理標準として公開しました。ML-KEM(鍵交換)、ML-DSA(デジタル署名)、SLH-DSA(デジタル署名)という新しい標準です。

これらは、格子問題や符号復号問題という、量子コンピューターでも効率的な解法が見つかっていない数学問題を安全性の根拠としています。

すでに実装も始まっています。Google Chromeは2023年にポスト量子暗号を導入し、Zoomは2024年5月、Apple iMessageは2024年2月に導入を発表しました。日本でも、2025年5月、金融庁が大手・地方銀行に対し、ポスト量子暗号を活用したサイバー防御に着手するよう要請したと報じられています。

暗号技術の歴史は、常に進化の連続でした。RSAから楕円曲線へ、そしてポスト量子暗号へ。それぞれの時代に、それぞれの挑戦者がいました。

創造の連鎖

映画の一瞬が、創造を触発します。そして創造されたものが、また誰かの体験になります。

私のツールは、この長い物語のほんの小さな一部です。しかし、2から順番に割っていくその単純さが、暗号という知恵の深さを教えてくれます。

もしよろしければ、試してみてください。10桁の数を入力して、結果が出るまでの一瞬を。そして20桁の数を入力して、7秒という時間を。画面が動かなくなるまで、桁数を増やしてみてください。

その体験が、健二の鼻血の意味を、少しだけ教えてくれるかもしれません。


素因数分解ツール

開発:innovaTopia編集部 satsuki
https://kikuchi131221.github.io/RSA/factoring.html


参考

RSA暗号と暗号史

量子コンピューターとRSA暗号の安全性

ポスト量子暗号(PQC)

【関連記事】

投稿者アバター
Satsuki
テクノロジーと民主主義、自由、人権の交差点で記事を執筆しています。 データドリブンな分析が信条。具体的な数字と事実で、技術の影響を可視化します。 しかし、データだけでは語りません。技術開発者の倫理的ジレンマ、被害者の痛み、政策決定者の責任——それぞれの立場への想像力を持ちながら、常に「人間の尊厳」を軸に据えて執筆しています。 日々勉強中です。謙虚に学び続けながら、皆さんと一緒に、テクノロジーと人間の共進化の道を探っていきたいと思います。

読み込み中…

innovaTopia の記事は、紹介・引用・情報収集の一環として自由に活用していただくことを想定しています。

継続的にキャッチアップしたい場合は、以下のいずれかの方法でフォロー・購読をお願いします。