2.6. OpenSSL 中的 post-quantum 加密算法


启用系统范围的 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 &lt ;mldsa-privatekey.pem> -pubout -out &lt ;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 签名。

将 ML-DSA 用于 OpenSSL 中的证书的示例

由于没有公共证书颁发机构(CA)目前支持 post-quantum 签名,因此只能使用带有 ML-DSA 签名的本地 CA 或自签名证书。例如:

$ 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 Toggle word wrap

当一组证书和系统配置为 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)'
Peer signature type: mldsa65
Negotiated TLS1.3 group: X25519MLKEM768
Copy to Clipboard Toggle word wrap

建立只使用非 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)'
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
Copy to Clipboard Toggle word wrap

您可以将服务器配置为同时使用传统证书(RSA、ECDSA 和 EdDSA)和 post-quantum 证书。服务器自动和透明地选择客户端的首选和支持的证书:新客户端的 post-quantum 和 legacy 客户端。

重要

Red Hat Enterprise Linux 10 中的所有 PQC 算法都作为技术预览提供。当后量子密码学退出技术预览状态时,软件包和系统范围加密策略名称可能会改变。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat