なぜ今、暗号の移行が必要なのか
インターネット上の暗号通信(HTTPS、VPN、メール署名など)の大部分は、RSA と 楕円曲線暗号(ECC) に依存しています。これらは「大きな数の素因数分解」「離散対数問題」という数学的難問に基づいており、現在のコンピュータでは解読に数千年かかります。
しかし、量子コンピュータは状況を一変させます。
Shorのアルゴリズム — 量子コンピュータの脅威
1994年に数学者Peter Shorが発表した量子アルゴリズムは、素因数分解と離散対数問題を多項式時間で解くことができます。
| アルゴリズム | 古典コンピュータ | 量子コンピュータ(Shor) |
|---|---|---|
| RSA-2048の解読 | 宇宙の年齢以上 | 数時間〜数日(理論上) |
| ECDSA P-256の解読 | 事実上不可能 | 数分〜数時間(理論上) |
| AES-256の解読 | 不可能 | Groverのアルゴリズムで112ビット強度に低下(依然安全) |
量子コンピュータがまだ実用化されていない今日でも、国家レベルの攻撃者は暗号化された通信を今すぐ大量に記録・保存しています。将来、量子コンピュータが完成した時点でそのデータを解読する「今収穫・後解読(HNDL: Harvest Now, Decrypt Later)」攻撃は、すでに実施中と考えられています。
医療記録・法的契約・国家機密など、10年以上の機密性が必要なデータは今すぐ移行を検討する必要があります。
量子コンピュータの実用化タイムライン
| 時期 | 状況 |
|---|---|
| 現在(2025年) | エラー率が高い「NISQ(ノイズあり中規模量子)」デバイスが存在。RSA解読には数百万の物理量子ビットが必要で未到達 |
| 2030〜2035年 | 多くの専門家が「暗号学的に意味のある量子コンピュータ(CRQC)」の出現可能性を指摘 |
| 2040年以降 | CRQC実用化の保守的な予測。ただし技術進歩は予測困難 |
NIST PQC 標準化プロジェクト
2016年から始まったNISTの標準化プロジェクトは、世界中の暗号研究者が提案した69のアルゴリズムを多年にわたって評価しました。
2024年8月:世界初のPQC標準が正式発布
| 標準番号 | アルゴリズム名 | 元アルゴリズム | 用途 | 特徴 |
|---|---|---|---|---|
| FIPS 203 | ML-KEM | CRYSTALS-Kyber | 鍵カプセル化(鍵交換) | 主要推奨。鍵サイズが小さく高速 |
| FIPS 204 | ML-DSA | CRYSTALS-Dilithium | デジタル署名 | 主要推奨。汎用署名向け |
| FIPS 205 | SLH-DSA | SPHINCS+ | デジタル署名(代替) | ハッシュベース。保守的な設計 |
FIPS 206(FN-DSA / FALCON) は署名アルゴリズムとして標準化予定です。格子問題に基づき、ML-DSAより署名サイズが小さいため、リソース制約のある環境(IoT、組み込みシステム)向けに適しています。
さらに、2025年3月にNISTはHQC(Hamming Quasi-Cyclic) を汎用暗号化のバックアップアルゴリズムとして選定しました。ML-KEMとは異なる符号理論ベースの設計であり、格子暗号に万一の脆弱性が見つかった場合の代替手段として、2026年にドラフト標準が公開予定です。
ML-KEM(FIPS 203)— 鍵カプセル化の仕組み
ML-KEM(Module-Lattice-based Key Encapsulation Mechanism) は、格子問題(Lattice Problem) の数学的困難性に基づいています。
格子問題とは
高次元格子上の最短ベクトル問題(SVP: Shortest Vector Problem)は、量子コンピュータでも効率的に解くアルゴリズムが知られていません。これがPQCの基盤となっています。
ML-KEM のセキュリティレベル
ML-KEM-512 → セキュリティレベル1(AES-128相当)
ML-KEM-768 → セキュリティレベル3(AES-192相当)★ 推奨
ML-KEM-1024 → セキュリティレベル5(AES-256相当)
RSA/ECDH との比較
| アルゴリズム | 公開鍵サイズ | 秘密鍵サイズ | 暗号文サイズ | 量子耐性 |
|---|---|---|---|---|
| RSA-3072 | 384バイト | 384バイト+ | 384バイト | なし |
| ECDH P-256 | 65バイト | 32バイト | 65バイト | なし |
| ML-KEM-768 | 1,184バイト | 2,400バイト | 1,088バイト | あり |
鍵サイズはRSA/ECCより大きくなりますが、計算速度はMLKEM-768とECDH P-256は同程度です。
ML-DSA(FIPS 204)— デジタル署名の仕組み
ML-DSA(Module-Lattice-based Digital Signature Algorithm) も格子問題に基づく署名アルゴリズムです。
セキュリティレベル
ML-DSA-44 → セキュリティレベル2(NIST推奨最低ライン)
ML-DSA-65 → セキュリティレベル3 ★ 汎用推奨
ML-DSA-87 → セキュリティレベル5(最高強度)
署名サイズ比較
| アルゴリズム | 公開鍵 | 署名 | 量子耐性 |
|---|---|---|---|
| RSA-3072 | 384B | 384B | なし |
| ECDSA P-256 | 65B | 64B | なし |
| Ed25519 | 32B | 64B | なし |
| ML-DSA-65 | 1,952B | 3,309B | あり |
署名サイズが大きくなるため、TLS証明書チェーンや大量の署名が必要なユースケースではパフォーマンスへの影響を評価する必要があります。
SLH-DSA(FIPS 205)— ハッシュベース署名
SLH-DSA(Stateless Hash-Based Digital Signature Algorithm) は、格子ではなくハッシュ関数の安全性のみに依存します。
格子暗号への全面依存を避けたい場合のバックアップ選択肢です。格子問題が将来解読される可能性(現時点では極めて低い)に備えた「多様性の確保」として標準化されました。署名サイズが ML-DSA より大きく(7〜49KB)、主に長期保護が必要な用途(コード署名、証明書)に適しています。
暗号移行の実践ガイド
ハイブリッド暗号方式(推奨)
移行期間中は古典暗号とPQCを組み合わせた「ハイブリッド方式」 が推奨されます。どちらかが破られても安全性が保たれます。
TLS ハイブリッド鍵交換の例:
X25519 (ECDH) + ML-KEM-768
→ どちらか一方が安全なら全体が安全
実デプロイ状況(2025〜2026年):
Google Chrome (v124+) — X25519+ML-KEM がデフォルト有効
Cloudflare — ハイブリッド鍵交換を全顧客向けに展開中
Akamai — X25519+ML-KEM を2026年2月からデフォルト化
OpenSSH 9.x — X25519+ML-KEM のハイブリッドが利用可能
CNSA 2.0 コンプライアンスタイムライン
米国NSAのCommercial National Security Algorithm Suite 2.0は、PQCへの移行を義務化しています。
2025年12月: 既存システムはCNSA 1.0準拠 または免除申請が必要
2027年1月 : 新規調達システムはCNSA 2.0準拠が必須
2030年 : ソフトウェア署名・Webサービスの完全移行期限
2033年 : 全システムタイプの最終コンプライアンス期限
移行ロードマップ
Phase 1(今すぐ):
✓ 暗号化資産のインベントリ作成
✓ どのシステムがRSA/ECCを使っているか把握
✓ 暗号の有効期限・重要度でリスク評価
Phase 2(2025〜2027年):
✓ 高優先度システムでハイブリッド方式の試験導入
✓ ライブラリ・ツールのPQC対応版への更新
✓ TLS/SSH のPQCハイブリッド有効化
Phase 3(2027〜2030年):
✓ 全システムでPQCへの完全移行
✓ RSA/ECDH の廃止
✓ 証明書・鍵管理インフラの更新
移行の優先順位は「データの機密保護期間」で決まります。今日暗号化して10年後まで秘密にしたいデータは、今すぐPQCで保護する必要があります。逆に短期間しか価値のないデータ(今日のセッション鍵など)は移行の優先度が低くなります。
openssl でPQC アルゴリズムを確認
OpenSSL 3.x でサポートされるPQCアルゴリズムを確認
openssl list -kem-algorithms | grep -i kyber openssl list -signature-algorithms | grep -i dilithium
OQS-provider (Open Quantum Safe) をインストールすれば
ML-KEM, ML-DSA が利用可能になる
https://github.com/open-quantum-safe/oqs-provider
ML-KEM-768 の鍵ペアを生成(OQS-providerインストール後)
openssl genpkey -algorithm mlkem768 -out mlkem768.key
ML-DSA-65 の署名鍵を生成
openssl genpkey -algorithm mldsa65 -out mldsa65.key
対称暗号・ハッシュ関数への影響
量子コンピュータはすべての暗号を破るわけではありません。
Groverのアルゴリズム は対称暗号・ハッシュ関数の解読を高速化しますが、二乗根程度(√N)の改善に留まります。
| アルゴリズム | 現在のセキュリティ | 量子後のセキュリティ | 対応 |
|---|---|---|---|
| AES-128 | 128ビット | 64ビット(危殆化) | AES-256に移行 |
| AES-256 | 256ビット | 128ビット(安全) | そのまま利用可能 |
| SHA-256 | 256ビット | 128ビット(安全) | そのまま利用可能 |
| SHA-3-256 | 256ビット | 128ビット(安全) | そのまま利用可能 |
PQCへの完全移行は時間がかかりますが、AES-256への移行は今すぐできる最初のステップです。対称暗号の鍵長を128→256ビットに上げるだけで量子耐性を大幅に向上できます。
NIST FIPS 203(ML-KEM)が基づく数学的困難性はどれですか?
「Harvest Now, Decrypt Later」攻撃で正しい説明はどれですか?