以下のセクションは、Cloudflare が導入した耐量子アルゴリズムに対するサードパーティソフトウェアの対応を、ソフトウェアの種類ごとにまとめたものです。一覧の更新への コントリビューション を歓迎します。
追跡するアルゴリズムは 2 種類です。
- 鍵合意 — 暗号化トラフィックに対する harvest-now-decrypt-later ↗ 攻撃を防ぐハイブリッド X25519MLKEM768 ↗。背景は ハイブリッド鍵合意 を参照してください。
- 署名 — NIST が標準化した耐量子デジタル署名アルゴリズム ML-DSA ↗。パラメーターセットは 3 つ(ML-DSA-44、ML-DSA-65、ML-DSA-87)です。ML-DSA に対応する製品の一覧は Cloudflare 製品における PQC、背景は 耐量子署名 を参照してください。
ブラウザは、基盤のレンダリングエンジンと TLS スタックで分類しています。同じエンジンを共有するブラウザは、耐量子対応もだいたい同じです。ただし派生ブラウザは上流エンジンより遅れることや、ポリシーで耐量子機能を無効にすることがあります。派生ブラウザの対応を前提にする前に、対象バージョンで動作を確認してください。指定のブラウザが Cloudflare と耐量子鍵合意をネゴシエートするかは、Cloudflare Radar のブラウザ対応チェック ↗ で素早く確認できます。
- 鍵合意: ✅ Brave 1.73.86 以降(Chromium 131)でデフォルト
- 署名: 未対応
- 参照: Brave ↗
- 鍵合意: ✅ Chrome 131 以降でデフォルト
- 署名: 📝 Merkle Tree Certificates ↗ で予定
- 参照: Chrome ↗、Cultivating a robust and efficient quantum-safe HTTPS ↗
Chrome は、公開 Chrome Root Store に標準の X.509 耐量子証明書を追加する予定はありません。代わりに IETF PLANTS ワーキンググループで MTC を開発しており、現在は Cloudflare との実現可能性調査の段階です。
- 鍵合意: ✅ Edge 131 以降でデフォルト
- 署名: 未対応
- 参照: Edge ↗
- 鍵合意: ✅ Opera 116 以降(Chromium 131)でデフォルト
- 署名: 未対応
- 参照: Opera ↗
- 鍵合意: ✅ Firefox 132 以降(デスクトップ)、145 以降(Android)でデフォルト
- 署名: 未対応
- 参照: Firefox ↗
QUIC / HTTP/3 は Firefox 135 以降(デスクトップ)です。
- 鍵合意: ✅ Tor Browser 15.0 以降でデフォルト
- 署名: 未対応
- 参照: Tor Browser ↗
Firefox ESR をベースに、追加の強化を施しています。
- 鍵合意: ✅ Safari 26 以降でデフォルト
- 署名: 未対応
- 参照: Safari ↗
iOS 26、macOS Tahoe 26、その他の Apple オペレーティングシステム ↗ でシステム全体に対応しています。
このセクションは、基盤となるネイティブライブラリ(C/C++)と、その上に構築される言語バインディングおよび上位ライブラリに分かれます。
- 鍵合意: ✅
- 署名: ✅
- 参照: aws-lc ↗、Post-Quantum Cryptography in AWS-LC ↗
ML-KEM-512/768/1024 およびハイブリッド X25519MLKEM768、SecP256r1MLKEM768、SecP384r1MLKEM1024。ML-DSA-44/65/87。
- 鍵合意: ✅
- 署名: ✅
- 参照: BoringSSL ↗
ML-DSA-44/65/87。
- 鍵合意: ✅ TLS では 3.7.0 以降でデフォルト
- 署名: ✅ 3.6.0 以降
- 参照: Botan ↗
ML-DSA-44/65/87。
- 鍵合意: ✅ 3.8.9 以降を leancrypto 1.2.0 以降でコンパイル(または 3.8.8–3.8.9 を liboqs 0.11.0 以降でコンパイル)
- 署名: ✅ 3.8.10 以降 — TLS ハンドシェイクで利用可能
- 参照: GnuTLS ↗
ハイブリッド X25519MLKEM768 と SecP256r1MLKEM768 は 3.8.8 以降。SecP384r1MLKEM1024 は 3.8.9 で追加。ML-DSA-44/65/87。
- 鍵合意: ✅ 3.5.0 以降でデフォルト
- 署名: ✅ 3.5.0 以降
- 参照: OpenSSL ↗
ハイブリッド X25519MLKEM768 は 3.5.0 以降。SecP256r1MLKEM768 と curveSM2MLKEM768 は 3.6.0 で追加。ML-DSA-44/65/87。
- 鍵合意: ✅ liboqs 0.10.0 以降、oqs-provider 0.7.0 以降
- 署名: ✅ liboqs 0.14.0 以降、oqs-provider 0.9.0 以降
- 参照: Open Quantum Safe ↗
参照実装であり、本番利用は推奨しません。
- 鍵合意: ✅
- 署名: 未対応
- 参照: s2n-tls ↗
AWS-LC 上に構築された、AWS のオープンソース TLS 実装です。
- 鍵合意: ✅
- 署名: 🚧
unstable機能フラグの背後 - 参照: aws-lc-rs ↗
AWS-LC の Rust バインディングです。rustls-post-quantum の ML-DSA 対応の基盤にもなっています。ML-KEM は aws-lc-rs::kem ↗、ML-DSA-44/65/87 は unstable::signature ↗ 経由です。
- 鍵合意: ✅
- 署名: ✅ 1.5.0 以降、
sign/mldsa↗ 経由 - 参照: CIRCL ↗
純 Go の暗号プリミティブライブラリです。ML-KEM-512/768/1024 および ML-DSA-44/65/87。
- 鍵合意: ✅ Go 1.24 以降でデフォルト
- 署名: 🚧 Go 1.26 に内部実装。公開
crypto/mldsa↗ は Go 1.27 向けに提案中 - 参照: Go ↗
Cloudflare の Go フォーク ↗ でも、CIRCL 経由の鍵合意に対応しています。
- 鍵合意: ✅ Java 27 以降でデフォルト(JEP 527 ↗)
- 署名: 🚧 Java 24 以降は ML-DSA API を提供します(JEP 497 ↗)が、まだ
javax.net.sslの TLS には組み込まれていません - 参照: OpenJDK ↗
- 鍵合意: ✅ 24.5.0 以降および 22.20.0 以降でデフォルト(バックポート済み ↗)
- 署名: ✅ 24.5.0 以降
- 参照: Node.js ↗
バンドルされた OpenSSL 3.5 を使います。ML-DSA-44/65/87。
- 鍵合意: ✅
ml-kem↗ - 署名: ✅
ml-dsa↗ - 参照: RustCrypto ↗
AWS-LC に依存しない、純 Rust の crate です。ML-DSA-44/65/87。
- 鍵合意: ✅ rustls 0.23.27 以降でデフォルト有効
- 署名: 🚧 不安定
- 参照: rustls ↗
rustls-post-quantum の上に構築された TLS ライブラリです。
- 鍵合意: ✅
X25519MLKEM768 - 署名: 🚧 不安定な ML-DSA 対応(
aws-lc-rs-unstable機能フラグの背後) - 参照: rustls-post-quantum ↗
aws-lc-rs を内部で使い、耐量子アルゴリズムを提供する rustls 向け拡張 crate です。
- 鍵合意: ✅ Zig 0.14.0 以降(クライアント)
- 署名: 未対応
- 参照: Zig ↗
- 鍵合意: ✅ Caddy 2.10.0 以降でデフォルト
- 署名: Go の
crypto/mldsa待ち - 参照: Caddy ↗
- 鍵合意: ✅ 0.9.4 以降でデフォルト
- 署名: Rust の耐量子署名対応待ち
- 参照: rpxy ↗