ポスト量子暗号とは
ポスト量子暗号(Post-Quantum Cryptography, PQC)は、量子コンピュータによる攻撃に対して安全な暗号アルゴリズムです。現在広く使用されているRSAや楕円曲線暗号は、量子コンピュータのShorのアルゴリズムにより効率的に解読される可能性があります。
2024年、NISTは以下のアルゴリズムをポスト量子暗号標準として発表しました:
- ML-KEM(CRYSTALS-Kyber):鍵カプセル化メカニズム
- ML-DSA(CRYSTALS-Dilithium):デジタル署名
- SLH-DSA(SPHINCS+):ハッシュベースの署名
量子コンピュータの脅威
Shorのアルゴリズム
量子コンピュータ上で動作するShorのアルゴリズムは、素因数分解と離散対数問題を効率的に解くことができます。これにより、RSAとECCは理論上破られる可能性があります。
Groverのアルゴリズム
対称暗号とハッシュ関数に対しては、Groverのアルゴリズムにより実効的な強度が半減します。AES-256はAES-128相当の安全性になりますが、依然として安全とされます。
AIエンジニアとしての実体験
AIエンジニアとして、長期保存が必要な機密データの暗号化において、ポスト量子暗号への移行を検討しています。「Harvest Now, Decrypt Later」攻撃(現在暗号化されたデータを収集し、将来の量子コンピュータで解読)への対策が必要です:
# liboqs-python を使用したKyberの例
from oqs import KeyEncapsulation
# Kyber-768を使用
kem = KeyEncapsulation("Kyber768")
# 鍵ペアの生成
public_key = kem.generate_keypair()
# 暗号化(送信者側)
ciphertext, shared_secret_enc = kem.encap_secret(public_key)
# 復号化(受信者側)
shared_secret_dec = kem.decap_secret(ciphertext)
NIST標準化アルゴリズム
| アルゴリズム | 用途 | 基盤 |
|---|---|---|
| ML-KEM(Kyber) | 鍵交換 | 格子暗号 |
| ML-DSA(Dilithium) | 署名 | 格子暗号 |
| SLH-DSA(SPHINCS+) | 署名 | ハッシュベース |
最新動向(2026年)
TLSへの統合
主要ブラウザとサーバーで、ハイブリッド鍵交換(従来の楕円曲線 + Kyber)の実験的サポートが進んでいます。
移行計画の策定
NISTは2030年までに従来の公開鍵暗号からPQCへの移行を推奨しています。今から暗号資産のインベントリ作成と移行計画の策定が必要です。
トラブル事例と対策
⚠️ 暗号の敏捷性(Crypto Agility)
課題:既存システムが特定の暗号アルゴリズムにハードコード
対策:暗号アルゴリズムを設定可能にし、将来の移行を容易にする設計を採用。
権威あるリソース
関連用語
📝 関連ブログ記事
よくある質問(FAQ)
Q. ポスト量子暗号(PQC)とは何ですか?
ポスト量子暗号(Post-Quantum Cryptography、PQC)は、量子コンピュータによるShorのアルゴリズムによるRSA・ECC解読攻撃に耐える暗号アルゴリズムです。格子問題・コード理論・多変数多項式・ハッシュベースなど、量子コンピュータでも解読が困難な数学的問題に基づいています。
Q. NISTが標準化したPQCアルゴリズムは何ですか?
NISTは2024年にFIPS 203(CRYSTALS-Kyber/ML-KEM、鍵交換用)、FIPS 204(CRYSTALS-Dilithium/ML-DSA、デジタル署名用)、FIPS 205(SPHINCS+/SLH-DSA、ハッシュベース署名)の3つを正式標準化しました。これらが今後のTLS・SSH・コード署名の移行先となります。
Q. 今すぐPQCに移行する必要がありますか?
実用的な量子コンピュータはまだ存在しませんが、「Harvest Now, Decrypt Later」攻撃(現在の暗号通信を収集し将来解読)のリスクがあります。機密性が10年以上必要なデータ(政府・医療・金融)は今すぐ対策が必要です。一般的なWebサービスは2027〜2030年頃までにTLS等のPQC移行を計画することが推奨されています。
Q. TLSでのPQC対応はどう進んでいますか?
Cloudflare・Google・Appleは既にTLS 1.3でのハイブリッドPQC(従来のECDH + CRYSTALS-Kyber)の試験実装を実施しています。ChromeはKyberのサポートを追加済みで、実験的に使用できます。OpenSSL 3.2+ではOQSプロバイダーを使ったPQCの実験的サポートが可能です。
