システム全体で耐量子計算機アルゴリズムを有効にする と、OpenSSL TLS ツールキットを使用して、ML-DSA 耐量子計算機アルゴリズムによる鍵の生成、メッセージの署名、署名の検証、X.509 証明書の作成を行うことができます。
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 署名を検証します。
openssl req \
-x509 \
-newkey mldsa65 \
-keyout <localhost-mldsa.key> \
-subj /CN=<localhost> \
-addext subjectAltName=DNS:<localhost> \
-days <30> \
-nodes \
-out <localhost-mldsa.crt>
$ openssl req \
-x509 \
-newkey mldsa65 \
-keyout <localhost-mldsa.key> \
-subj /CN=<localhost> \
-addext subjectAltName=DNS:<localhost> \
-days <30> \
-nodes \
-out <localhost-mldsa.crt>
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
一連の証明書を使用し、システム全体の暗号化ポリシー DEFAULT:TEST-PQ
をシステムで設定すると、OpenSSL サーバーおよびクライアントが、量子攻撃に耐える接続と、従来のアルゴリズムのみを使用する接続を確立できるようになります。
PQC 鍵交換と PQC 証明書を使用して接続を確立します。次に例を示します。
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)'
$ 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
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
耐量子計算機暗号アルゴリズムのみを使用する接続を確立します。次に例を示します。
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)'
$ 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
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
従来の証明書 (RSA、ECDSA、EdDSA) と耐量子計算機証明書を同時に使用するようにサーバーを設定することもできます。サーバーは、クライアントが優先およびサポートする証明書 (新しいクライアントの場合は耐量子計算機証明書、従来のクライアントの場合は従来の証明書) を自動的かつ透過的に選択します。
Red Hat Enterprise Linux 10 のすべての PQC アルゴリズムは、テクノロジープレビュー機能として提供されます。耐量子計算機暗号がテクノロジープレビュー状態を終えるときに、パッケージおよびシステム全体の暗号化ポリシー名が変更される可能性があります。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。