2009年に公開された細田守監督のアニメ映画『サマーウォーズ』。主人公の小磯健二(けんじ)くんが、携帯に届いた謎の暗号を暗算で一晩中かけて解いたシーンは、視聴者に大きなインパクトを与えました。
あの暗号は、RSA暗号をモデルにしたものと世間では騒がれています。
コンピュータでさえ何十年もかかると言われる複雑な暗号を、紙とペンで計算しきったけんじくんの天才ぶりがここで際立ちます。
この記事では、RSA暗号の仕組みを初心者にもわかりやすく解説しながら、けんじくんのすごさや現代の課題、さらには「量子コンピュータで解けるの?」という話題にも踏み込みます。
RSA暗号ってそもそも何?
公開鍵暗号の代表格!
RSA暗号とは、**Rivest(リベスト)・Shamir(シャミア)・Adleman(アドルマン)**という3人の数学者が1977年に発表した暗号方式です。
名前の「RSA」は3人の頭文字から来ています。
「公開鍵」と「秘密鍵」のペアで守る
RSA暗号の特徴は、「公開鍵」と「秘密鍵」の2つの鍵を使って情報を守るところにあります。
操作 | 使用する鍵 | 内容 |
---|---|---|
暗号化 | 公開鍵「🔓」 | メッセージを暗号文に変換する |
復号 | 秘密鍵「🔑」 | 暗号文を元のメッセージに戻す |
この仕組みにより、誰でも暗号化できても、それを復号できるのは秘密鍵の持ち主だけです。
「公開鍵」と「秘密鍵」をわかりやすく解説
まず、「公開鍵」と「秘密鍵」の説明をする時はよく南京錠を例に出されます。そして、それぞれの役割は
- 公開鍵:🔓(南京錠の本体、鍵を掛けるものを指します)
- 秘密鍵:🔑(南京錠の本体を解錠する方のものを指します)
といった感じです。
もう少し掘り下げると、「公開鍵🔓(南京錠の本体)」は解錠された状態で皆んなに配ります。配り方は、特定の人に渡すもよし、適当にばら撒くもよしです。誰の手に渡っても問題無いものです。
※「秘密鍵🔑」だけは、絶対に誰の手にも渡ってはなりません。
そして、「公開鍵🔓」のペアとなる「秘密鍵🔑」を持っている者にメッセージを送る際は、公開鍵を用いてロック(暗号化)してメッセージを送ります。
そうすることによって、一度「公開鍵🔓」でロック「🔒」されたメッセージは「秘密鍵🔑」を持っている者しか解錠(復号)出来なくなります。
これが、公開鍵と秘密鍵の役割です。
なぜ安全なの? → 素因数分解が超難しいから!
RSAの仕組みは、数学の「素因数分解」に依存しています。
例えば、
61 × 53 = 3233
これは簡単な掛け算ですね。でも逆に、
3233を素因数分解せよ(元の2つの素数を探せ!)
と言われると、なかなか面倒です。
RSAでは、もっと巨大な2つの素数(数百桁など)を使って掛け算をし、その結果を公開します。
そして、秘密鍵を知っている人だけが、ある特別な「式」を使って暗号を元に戻せるようになっています。
けんじくんの天才ぶりがわかるシーン
『サマーウォーズ』でけんじくんが解いたのは、AIが世界中のシステムを乗っ取るための「暗号キー(公開鍵)」のようなものでした。
暗号には「P」「Q」「R」と3つの数値が使われており、これらを基に復号キーを計算するのですが、作中ではけんじくんがそれを暗算でやってのけます。
現実のRSAなら、例えば「N = P × Q」のPとQを見つけるだけでも、以下のような超膨大な計算が必要です。
鍵の長さ | 素因数分解に必要な推定時間(現代のコンピュータで) |
---|---|
1024ビット | 数週間~数ヶ月(現在の最高技術でギリギリ) |
2048ビット | 数十年~数百年(事実上不可能) |
4096ビット | 数千年~天文学的時間(理論的に解けても無理) |
映画の暗号がもし2048ビット級だったとしたら、けんじくんは何百年分の計算を一晩でこなしたことになります。まさに天才、いや超人ですね。
実際のRSA暗号の作り方(ざっくり解説)
- 素数PとQを選ぶ(大きければ大きいほど安全)
- N = P × Q を計算(Nは公開鍵に使う)
- φ(N) = (P-1)(Q-1) を計算(これも必要な値)
- e(公開鍵)を決定(多くは65537などの決まり値)
- d(秘密鍵)を計算(eとφ(N)の関係から導出)
→ 公開鍵:e, N
→ 秘密鍵:d, N
暗号化では「メッセージ^e mod N」、復号では「暗号^d mod N」という数式を使います。
RSA暗号はどこで使われているの?
RSAは、私たちが知らないうちに日常的に使っている技術です。たとえば:
- 📦 Amazonなどの通販サイト(SSL/TLS)
- 💬 LINEやInstagramなどのメッセージアプリ
- 💳 クレジットカードの認証
- 🧾 電子署名や公的文書の確認
- 🛡️ ブロックチェーンの一部技術
「https://」で始まる安全なサイトの裏では、多くの場合RSA暗号が使われています。
将来RSAは破られる?量子コンピュータとショアのアルゴリズム
量子コンピュータ登場で状況が変わる!
現代のコンピュータではRSA暗号は非常に安全です。ところが、量子コンピュータという次世代のコンピュータが登場すると、この安全性が揺らぎます。
理由は、「ショアのアルゴリズム(Shor’s Algorithm)」の存在です。
ショアのアルゴリズムって何?
1994年、数学者のピーター・ショアが考案したアルゴリズムで、量子コンピュータ上で大きな数を素因数分解する方法です。
このアルゴリズムが量子コンピュータで実装されると、2048ビットのRSA暗号でもわずか数時間〜数分で解読される可能性があります。
つまり、RSAの「素因数分解は難しい」という前提が崩れてしまうのです。
RSAの未来と「耐量子暗号」への移行
こうした背景から、現在ではポスト量子暗号(Post-Quantum Cryptography, PQC)と呼ばれる新しい暗号方式が研究・導入されています。
たとえば:
- 格子ベース暗号(Lattice-based)
- ハッシュベース署名
- 多変数多項式暗号
RSAが今後も使われ続けるかどうかは、量子コンピュータの進化次第とも言えるでしょう。
おわりに:RSA暗号は現代社会を支える「数式の盾」
RSA暗号は、私たちの暮らしを裏側で守る「数式の盾」です。
そして、映画『サマーウォーズ』に登場したような暗号解読のシーンは、現実でも起こりうるセキュリティの戦いを象徴しています。
そして、最後に一言。
現代に「けんじくん」のような超絶天才が存在すれば、この世は「けんじくん」が原因でセキュリティが脅かされていたでしょう。。。
FAQ:RSA暗号についてよくある質問
- QRSA暗号の安全性は本当に信じていいの?
- A
現在のコンピュータでは2048ビット以上の鍵は安全とされていますが、将来の量子コンピュータには注意が必要です。
- Q公開鍵を公開してもいいの?
- A
はい、大丈夫です。公開鍵だけでは秘密鍵は求められません(少なくとも現状では)。
- Qけんじくんがやった暗号解読って実際に可能?
- A
現実には無理です。数学オリンピック金メダリストでも計算機無しでは解けません。
- QRSAの代わりに何が使われているの?
- A
楕円曲線暗号(ECC)や耐量子暗号(PQC)が注目されています。