未来を形作るテクノロジーの深掘り記事。

量子暗号:開発者が本当に知っておくべきこと

量子コンピュータは現在の暗号を脅かします。何が現実で何が誇大広告か、そして耐量子暗号(PQC)に今どう備えるべきかを解説します。

金色の量子コンピュータのシャンデリアの前に浮かぶ結晶状の光子の鍵

チャールズ・ベネットとジル・ブラサールは、量子情報科学における基礎的な業績によりチューリング賞を受賞しました。対象は1984年に発表したBB84量子鍵配送プロトコルです。論文発表からチューリング賞まで40年。量子コンピューティングの理論研究がCS分野全体に認められるまでに、どれだけ時間がかかるかがよくわかります。

今回の受賞は絶妙なタイミングでのものです。RSA暗号を破れる量子コンピュータはまだ存在せず、あと10年は現れないかもしれません。それでも暗号コミュニティはすでに全面的な移行モードに入っています。NISTは最初の耐量子暗号(PQC)標準を確定させ、主要ブラウザは耐量子鍵交換のテストを進め、SignalはすでにPQCを本番環境に導入しています。「いつか量子コンピュータが暗号を破る」から「今システムを変えなければならない」までの距離は、もう縮まってしまいました。

量子コンピュータが実際に脅かすもの

量子コンピュータと暗号に関する一般的な報道は、「あらゆる暗号が破られる!」と煽る恐怖論か、「実用化されるはずがない」と切り捨てる懐疑論のどちらかに偏りがちです。実際はもっと具体的で、もっと面白い話です。

量子コンピュータが脅かすのは非対称暗号です。大きな数の素因数分解(RSA)や離散対数計算(Diffie-Hellman、ECC)の数学的な難しさに基づく方式が対象になります。十分な規模の量子コンピュータで動くShorのアルゴリズムは、これらの問題を多項式時間で解けます。古典コンピュータでは解読に何十億年もかかるRSA-2048も、理論上は量子コンピュータなら数時間で破られるかもしれません。

対称暗号に対しては、量子コンピュータの脅威ははるかに小さくなります。Groverのアルゴリズムは総当たり探索を二次的に高速化するため、実質的に鍵長が半分になります。量子攻撃者に対しては、AES-256はAES-128と同等の強度になります。それでも総当たりは非現実的です。AES-128は64ビット相当の強度まで下がるため懸念はありますが、壊滅的とまでは言えません。

What's threatened by quantum computers:
BROKEN (by Shor's algorithm):
├── RSA (all key sizes)
├── Diffie-Hellman key exchange
├── Elliptic Curve Cryptography (ECDSA, ECDH)
└── DSA
WEAKENED (by Grover's algorithm):
├── AES-128 → effectively 64-bit security (upgrade to AES-256)
├── AES-256 → effectively 128-bit security (still secure)
└── SHA-256 → effectively 128-bit preimage resistance (still secure)
NOT AFFECTED:
├── One-time pads
├── Hash-based signatures (SPHINCS+)
└── Symmetric encryption with sufficiently large keys

実務上の意味はこうです。TLSハンドシェイク、SSH接続、コード署名、暗号資産、デジタル署名など、公開鍵暗号を使うものはすべて耐量子アルゴリズムへの移行が必要になります。対称暗号は主に鍵長を伸ばすだけで済みます。

「Harvest Now, Decrypt Later」問題

量子コンピュータがまだ何も破れないのに、移行が急務である理由がこれです。主に国家レベルの攻撃者が、暗号化された通信を今この瞬間も記録しているとほぼ確実に考えられます。量子コンピュータが実用化された時点で復号するためです。

20年以上の機密性が必要なデータを考えてみてください。外交通信、諜報報告、企業秘密、医療記録などです。こうしたデータを今日RSAやECDHで暗号化し、15年後に実用的な量子コンピュータが登場すれば、暗号は過去に遡って破られることになります。データは最初から脆弱だったのに、その事実にまだ誰も気づいていないだけなのです。

これは想像上の脅威モデルではありません。NSAは機密システムについて、耐量子アルゴリズムへの移行を明確に推奨しています。諜報コミュニティの前提は、国家レベルのアクターがすでに暗号化トラフィックを蓄積しているというものです。長期の機密性が求められるデータを扱っているなら、移行を始めるべきだったのは昨日です。

耐量子暗号:NISTが選んだもの

NISTは耐量子暗号アルゴリズムを標準化するため、複数年にわたる公募・評価プロセスを実施しました。AESが選ばれたときと同様のやり方です。数十の候補を評価した結果、主要な3つのアルゴリズムが標準化されました。

  • ML-KEM(Kyber) — 鍵カプセル化方式(KEM)による鍵交換用のアルゴリズムです。格子暗号のModule Learning With Errors(MLWE)問題に基づきます。TLSハンドシェイクなどで、Diffie-HellmanやECDHを置き換えます。高速で鍵サイズも比較的小さく、汎用的な鍵交換にはまずこれが推奨されます。
  • ML-DSA(Dilithium) — 格子暗号に基づくデジタル署名アルゴリズムです。署名用途でRSAやECDSAを置き換えます。署名サイズはECDSAより大きく(約2.5KB対64バイト)、証明書チェーンや多数の署名を送信するプロトコルに影響します。
  • SLH-DSA(SPHINCS+) — ハッシュベースのデジタル署名方式です。格子問題ではなく、ハッシュ関数の安全性に基づきます。ML-DSAより遅く署名も大きいものの、安全性の根拠はよく研究されたハッシュ関数の仮定にあり、比較的新しい格子ベースの仮定に頼りません。いわば保守的な予備の選択肢です。

ML-KEMやML-DSAなどの格子ベースのアルゴリズムは性能面で有利ですが、数十年にわたり解析されてきたRSAやAESと比べると、基盤となる数学的問題は比較的新しいものです。格子暗号の解析に突破口が開かれ弱体化する可能性は小さいながらゼロではありません。SPHINCS+は保険の役割を果たします。その安全性は30年以上研究されてきたハッシュ関数に依拠しているからです。

すでに導入されている技術

耐量子暗号はもう理論上の話ではありません。今日あなたが使っている本番システムにすでに組み込まれています。

  • ChromeとFirefoxは、TLS接続でハイブリッド鍵交換(X25519 + ML-KEM-768)を使用しています。「ハイブリッド」とは、従来型の鍵交換と耐量子型の鍵交換を組み合わせることを意味します。どちらか一方が破られても、接続の安全性は保たれます。TLSハンドシェイクのサイズは約1KB増えます。
  • Signalは、初期鍵交換に耐量子鍵合意プロトコルのPQXDHを導入しました。新しいSignalの会話はすべて、耐量子の前方秘匿性を備えるようになりました。
  • Apple iMessageは、定期的な再鍵交換を伴う耐量子鍵交換方式PQ3を導入しました。Appleは、これが同社のフレームワークで最高レベルの「Level 3」セキュリティを提供すると主張しています。
  • CloudflareはCDNで耐量子鍵交換をサポートしています。Cloudflareの背後にあるサイトなら、知らないうちにML-KEMを使った接続になっているかもしれません。
  • AWS KMSは、鍵管理操作においてハイブリッド耐量子TLSをサポートしています。

開発者にとっての移行の課題

暗号を使うソフトウェア(つまりほぼすべてのソフトウェア)を作っているなら、実際の移行がどのようなものかを見ておきましょう。

TLS:大部分は自動的に対応される

アプリケーションが標準ライブラリ(OpenSSL、BoringSSL、Goのcrypto/tlsなど)経由でTLSを使っているなら、耐量子対応はライブラリ側で追加されていきます。依存関係の更新で自然に取り込めるはずです。主な対応事項は、古いTLSライブラリのバージョンに固定していないかを確認することと、ハンドシェイクサイズがわずかに大きくなる点にシステムが対応できるかを確かめることです。

サイズの増加は想像以上に影響します。ML-KEM-768はTLSのClientHelloメッセージに約1,100バイトを追加します。ミドルボックス、ファイアウォール、実装の雑なTLSスタックの中には、約512バイトを超えるClientHelloを扱えないものがあります。Googleが耐量子鍵交換を展開した際には、約0.5%の接続がミドルボックスの非互換性により失敗したそうです。ユーザーが企業ファイアウォールの内側にいるなら、必ずテストしてください。

デジタル署名:より大きな影響がある

耐量子署名は、従来型の署名よりかなり大きくなります。ECDSA署名は64バイトですが、ML-DSA-65の署名は約3,300バイトです。SLH-DSAの署名は17,000バイトを超えることもあります。これは次のような連鎖的な影響を生みます。

  • X.509証明書チェーンが大幅に大きくなります。ML-DSA署名を使った3枚の証明書からなる典型的なチェーンは、ECDSAの場合より約10KB大きくなります。帯域が限られた接続では、これは無視できません。
  • コンパクトな署名に依存するブロックチェーンや暗号資産システムは、スケーラビリティの課題に直面します。耐量子署名を使ったトランザクション1件は、約50倍の領域を占めます。
  • コード署名、パッケージ署名、ソフトウェア更新の検証は、既存ツールのサイズ前提を壊さずに、より大きな署名を扱えるようにする必要があります。
  • Certificate Transparencyログ、OCSPレスポンス、CRL配布もすべて肥大化します。

アプリケーション層の暗号:自分で対応すべき課題

アプリケーションが独自の暗号プロトコルを実装している場合(エンドツーエンド暗号化、独自の鍵交換、署名付きトークン、暗号化ストレージなど)、移行を能動的に計画する必要があります。基本的な方針は次のとおりです。

  1. 暗号の依存関係を棚卸しする。RSA、ECDSA、ECDH、Diffie-Hellmanを使っている箇所をすべて洗い出してください。ライブラリ、鍵管理システム、認証局、HSM(ハードウェアセキュリティモジュール)も含まれます。
  2. まずハイブリッド方式を採用する。従来型と耐量子型のアルゴリズムを組み合わせます。耐量子アルゴリズムに弱点が見つかっても、従来型の安全性に戻れます。量子コンピュータが登場すれば、耐量子の保護が働きます。
  3. 実績のあるライブラリを使う。耐量子アルゴリズムを自前で実装してはいけません。liboqs(Open Quantum Safe)を使いましょう。OpenSSLと統合でき、ML-KEM、ML-DSA、SPHINCS+のテスト済み実装を提供しています。
  4. 性能への影響をテストする。耐量子演算は全般的に高速です(ML-KEMの鍵生成はECDHと同程度)。ただし署名検証は遅くなり、鍵や署名のサイズは帯域幅とストレージに影響します。
  5. 暗号のアジリティを確保する。プロトコルを壊さずに暗号アルゴリズムを差し替えられる設計にしてください。後から組み込むのは難しく、最初から設計に入れるほうがずっと楽です。

量子鍵配送(QKD)はどうなのか?

ベネットとブラサールのBB84は、彼らがチューリング賞を受賞した研究であり、量子鍵配送(QKD)と呼ばれるものです。これは根本的に異なるアプローチです。量子コンピュータが解けない数学問題に頼るのではなく、量子力学の物理的性質を利用して暗号鍵を配送します。鍵交換を盗聴しようとすると量子状態が乱れ、検出できるのです。

QKDは理論的に美しく、計算量の仮定ではなく物理法則に基づいて安全性が証明されています。しかし実用上は深刻な制約があります。専用の光ファイバーリンクが必要で(インターネット越しには動きません)、量子リピーターがない限り最大距離は数百キロメートル程度です(大規模な量子リピーターはまだ存在しません)。さらにコストも非常に高額です。中国は北京と上海の間にQKDネットワークを構築しましたが、信頼できる中継ノードに依存しており、その目的をある程度損なっています。

当面は、耐量子暗号(古典コンピュータ上で動く数学的アルゴリズム)が現実的な道です。QKDは高度な機密性が求められる政府や軍事の通信では意味がありますが、あなたのWebアプリケーションのTLSを置き換えることはありません。

タイムライン:いつ本当に問題になるのか?

暗号上意味のある量子コンピュータ(CRQC)、つまりRSA-2048を破れる規模のものがいつ登場するかは、誰にもわかりません。予測は2030年から「決して来ない」まで幅があり、専門家の多くは2035〜2040年あたりに集中しています。現在最大の量子コンピュータは物理量子ビットが約1,000個程度ですが、RSA-2048を破るには数百万個規模の誤り訂正済み論理量子ビットが必要と見積もられています。

しかし重要なのは、正確にいつかは問題ではないということです。移行そのものに数年かかります。大組織は、暗号の利用状況を棚卸しし、ライブラリを更新し、互換性をテストし、鍵と証明書をローテーションし、プロトコルを更新する必要があります。NISTは2035年までに移行を完了することを推奨しています。企業のソフトウェア移行が5〜10年かかるのが普通であることを考えると、今から始めても、すでに遅いと言えるかもしれません。

実践的なアドバイスは地味ですが、正しいものです。TLSライブラリを更新し、署名の移行を計画し、可能な場所ではハイブリッド方式を採用し、新しいシステムには暗号のアジリティを組み込みましょう。パニックになる必要はありませんが、始める必要はあります。耐量子移行を、緊急事態になるまで将来の問題として扱い続ける組織が、最も苦労することになるでしょう。