2.2. OpenSSL の耐量子計算機暗号アルゴリズム


OpenSSL TLS ツールキットを使用すると、耐量子計算機アルゴリズムを使用して鍵と証明書を生成できます。これにより、従来のアルゴリズムとの互換性を維持しながら、新たな脅威に対するセキュリティーを強化できます。

RHEL 10.1 以降では、OpenSSL を使用して、鍵の生成、メッセージの署名、署名の検証、ML-DSA 耐量子計算機アルゴリズムを使用した X.509 証明書の作成を行うことができます。

OpenSSL 3.5 以降からは、TLS 1.3 ハンドシェイクで、ハイブリッド型の ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism) 方式が優先的に使用されます。OpenSSL には、従来のアルゴリズムと ML-KEM の両方を使用した鍵を組み込んでいます。ML-KEM を使用すると、TLS 接続の開始にわずかな遅延が生じます。しかし、この遅延はハンドシェイク後のパフォーマンスには影響しません。その後の通信ではより効率的な対称鍵が使用されるためです。

例2.1 OpenSSL の鍵に対する ML-DSA の使用

$ openssl genpkey -algorithm mldsa65 -out <mldsa-privatekey.pem>
ML-DSA-65 アルゴリズムを使用して秘密鍵を作成します。
$ openssl pkey -in <mldsa-privatekey.pem> -pubout -out <mldsa-publickey.pem>
ML-DSA-65 で暗号化された秘密鍵に基づいて公開鍵を作成します。
$ openssl dgst -sign <mldsa-privatekey.pem> -out <signature_message>
秘密鍵を使用してメッセージに署名します。
$ openssl dgst -verify <mldsa-publickey.pem> -signature <signature_message>
公開鍵を使用して ML-DSA-65 署名を検証します。

例2.2 OpenSSL の証明書に対する ML-DSA の使用

現在、耐量子計算機署名をサポートする公開認証局 (CA) はないため、使用できるのはローカル CA または ML-DSA 署名を使用した自己署名証明書のみです。以下に例を示します。

$ openssl req \
    -x509 \
    -newkey mldsa65 \
    -keyout <localhost-mldsa.key> \
    -subj /CN=<localhost> \
    -addext subjectAltName=DNS:<localhost> \
    -days <30> \
    -nodes \
    -out <localhost-mldsa.crt>

例2.3 PQC 鍵交換と PQC 証明書による接続の確立

OpenSSL サーバーとクライアントは、量子攻撃に耐える接続と、従来のアルゴリズムのみを使用する接続を確立できます。

$ openssl s_server \
    -cert <localhost-mldsa.crt> -key <localhost-mldsa.key> \
    -dcert <localhost-rsa.crt> -dkey <localhost-rsa.key> >/dev/null &

$ openssl s_client \
    -connect <localhost:4433> \
    -CAfile <localhost-mldsa.crt> </dev/null \
    |& grep -E '(Peer signature type|Negotiated TLS1.3 group)'
Peer signature type: mldsa65
Negotiated TLS1.3 group: X25519MLKEM768

例2.4 耐量子計算機暗号アルゴリズムではないアルゴリズムのみを使用する接続の確立

$ openssl s_client \
    -connect <localhost:4433> \
    -CAfile <localhost-rsa.crt> \
    -sigalgs 'rsa_pss_pss_sha256:rsa_pss_rsae_sha256' \
    -groups 'X25519:secp256r1:X448:secp521r1:secp384r1' </dev/null \
    |& grep -E '(Peer signature type|Server Temp Key)'
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits

従来の証明書 (RSA、ECDSA、EdDSA) と耐量子計算機証明書を同時に使用するようにサーバーを設定することもできます。サーバーは、クライアントが優先およびサポートする証明書 (新しいクライアントの場合は耐量子計算機証明書、従来のクライアントの場合は従来の証明書) を自動的かつ透過的に選択します。

詳細は、システム上の openssl(1)openssl-genpkey(1)openssl-pkey(1)openssl-dgst(1)、および openssl-verify(1) man ページを参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る