启用系统范围的 post-quantum 算法 后,您可以使用 OpenSSL TLS 工具包生成密钥、签名消息、验证签名和使用 ML-DSA post-quantum 算法创建 X.509 证书。
将 ML-DSA 用于 OpenSSL 中的密钥的示例
$ 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 服务器和客户端可以建立一个 post-quantum 连接,以及仅使用传统算法的连接。
使用 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
建立只使用非 post-quantum 加密算法的连接,例如:
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)和 post-quantum 证书。服务器自动和透明地选择客户端的首选和支持的证书:新客户端的 post-quantum 和 legacy 客户端。
Red Hat Enterprise Linux 10 中的所有 PQC 算法都作为技术预览提供。当后量子密码学退出技术预览状态时,软件包和系统范围加密策略名称可能会改变。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。