我可以使用 openssl 执行 ECC 加密(如 ECIES)吗?

我可以使用 openssl 执行 ECC 加密(如 ECIES)吗?

我想使用椭圆曲线密码术来非对称加密数据。即使用公共 ECC 密钥加密数据,以便只有拥有相应私钥的人才能解密。

我知道您不能使用 ECC(或任何非对称加密方案)加密任意数据,因此通常您只需加密小于 ECC 密钥大小的一次性随机密钥,例如 128 位。然后使用带有该随机密钥的简单对称密码(如 AES)加密实际数据。

我刚刚了解到 ECC 的工作原理并不是这样,但是像东欧能源信息研究所针对 ECC 做了类似调整。

我的问题:有没有办法用openssl类似的常用工具来做到这一点?

假设我有一对 ECC 密钥对(例如MyPrivateEd25519Key.pemMyPublicEd25519Key.pem(或 secp256k1 或 secp521r1 或任何合适的密钥)和一个数据文件。我可以使用公钥 ECC 密钥加密文件,然后使用私钥解密结果吗?

我不太清楚如何才能实现这一点(如果有的话)openssl

答案1

是的,你可以,但是你需要自己操作所有原语。

以下是一个例子:https://github.com/insanum/ecies

相关内容