php - 对于 OpenSSL ECC,我们可以拥有多个公钥和一个私钥吗?

标签 php openssl cryptography php-openssl

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

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

最佳答案

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

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

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

但是,您必须保管好多个私钥。

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

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

关于php - 对于 OpenSSL ECC,我们可以拥有多个公钥和一个私钥吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59641986/

相关文章:

php - 使用 mysql 查询更新 url 前缀

php - 我怎样才能获得购物车内下拉菜单的值(value)?总是归零

php - 从 php/sql 中的多个价格中获取总价

php - 基于 Javascript 的 SSL

c - 如何在 C 中生成加密安全的伪随机数?

php - Facebook 连接很慢,我可以使用 AJAX 吗?

openssl - 使用 rbenv 安装 Ruby 2.0.0-p247

python - 从 Python 中的 PrivateKey/CertificateRequest/Certificate 中提取公钥模数,格式与 OpenSSL 相同

cryptography - RSA key 长度和导出限制

C# System.Security.Cryptography.HMACSHA1.ComputeHash() 不返回预期结果