使用后量子公钥算法在C中创建X509证书?

问题描述 投票:0回答:2

我正在尝试实现一个自签名的 x509 证书,该证书使用后量子 (PQ) 公钥算法作为公钥算法。我查看了 c 中的 openssl 库,以及使用 RSA 完成它的方式。我本质上是在尝试复制相同的格式。从我在 openssl 库中看到的情况来看,RSA 和其他一些支持的算法集成在加密 EVP 层中(密钥存储为 EVP_PKEY)。我尝试使用的 openssl 库中的函数是 X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey) 以及一些具有非常相似输入的其他函数。有没有办法可以将PQ算法集成到EVP层中?如果没有,是否有任何方法可以使用 EVP 层来实现相同的目标?

我尝试查看 openssl 库中的 evp 源代码。似乎它只支持某些算法,例如RSA,EC...我不确定是否可以将PQ算法合并到EVP层中。我按照此链接中的示例进行操作:(https://www.codepool.biz/how-to-use-openssl-to-generate-x-509-certificate-request.html)生成证书。我只是插入 PQ 算法密钥,而不是 RSA 密钥。到目前为止,当我创建证书时,它总是以错误的格式输出。

我正在使用此命令:

openssl x509 -in x509Req.pem -text -noout
来读取生成的证书。总是显示错误信息

unable to load certificate \n 140688586052032:error:0906D06C:PEM routines:
PEM_read_bio:no start line:../crypto/pem/pem_lib.c:691:Expecting: TRUSTED CERTIFICATE
c openssl x509 pki post-quantum-cryptography
2个回答
1
投票

EVP API 使用“引擎”来实现所有对称算法(密码)、摘要和非对称算法(公钥算法)。可以添加/更换发动机模块。请参阅 openssl engine 命令。

我认为这是您想要研究的领域。我认为这个领域没有很多文档(我可以找到),但是您可以查看一些示例引擎。

如果您下载

openssl 源代码,您可以在引擎文件夹中查找可用于开始实现自定义算法的示例引擎。

祝你好运!


0
投票
我更喜欢选择 OpenQuantumSafe 项目,以便使用专门生成数字证书的密码库。因此,您需要做的就是安装并运行一些脚本来配置您的 Openssl 环境和引擎。之后,就已经完成了。 您可以使用正确的选项来生成证书。例如:

openssl x509 -req -in dilithium3_srv.csr -out dilithium3_srv.crt -CA dilithium3_CA.crt -CAkey dilithium3_CA.key -CAcreateserial -days 365
我建议您访问 

OpenQuantumSafe 来阅读文档并使用工具。

© www.soinside.com 2019 - 2024. All rights reserved.