首页 > 解决方案 > 我们可以为 OpenSSL ECC 拥有多个公钥和一个私钥吗?

问题描述

我在我的项目中使用 php OpenSSL。如何使用单个私钥创建多个公钥?

在 RSA 中,我们不能做这样的事情。但是ECC呢?

标签: phpopensslcryptographyphp-openssl

解决方案


[k]G根据定义,对于一般椭圆曲线密码系统中的每个私有标量(私钥),曲线上都有一个点(公钥)由G曲线生成点和k私有标量生成。

仅供参考,在双有理等效曲线的一个有点不寻常的怪癖中,您实际上可以将蒙哥马利曲线 X25519 公钥映射到两个扭曲的爱德华兹曲线 Ed25519 公钥,因为蒙哥马利曲线点不携带 av 坐标,但是,这对您的用例。

通常,如果我们想从单个种子(源)定义多个密钥对(不仅仅是公钥),可以使用从主密钥派生的密钥来实现。

但是,您必须处理多个私钥。

您似乎建议私钥将存在于服务器上,所以我认为您实际上不需要多个公钥。我建议您使用单个密钥对和 EdDSA 或 ECDSA 签署多个密钥对以在客户端设备上使用。签名可用于将其来源链接到单个身份。

请提供更多背景信息,我将进一步提供帮助。


推荐阅读