ポスト量子暗号とは
ポスト量子暗号(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)
課題:既存システムが特定の暗号アルゴリズムにハードコード
対策:暗号アルゴリズムを設定可能にし、将来の移行を容易にする設計を採用。
