![我可以使用 openssl 执行 ECC 加密(如 ECIES)吗?](https://linux22.com/image/1634005/%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20openssl%20%E6%89%A7%E8%A1%8C%20ECC%20%E5%8A%A0%E5%AF%86%EF%BC%88%E5%A6%82%20ECIES%EF%BC%89%E5%90%97%EF%BC%9F.png)
我想使用椭圆曲线密码术来非对称加密数据。即使用公共 ECC 密钥加密数据,以便只有拥有相应私钥的人才能解密。
我知道您不能使用 ECC(或任何非对称加密方案)加密任意数据,因此通常您只需加密小于 ECC 密钥大小的一次性随机密钥,例如 128 位。然后使用带有该随机密钥的简单对称密码(如 AES)加密实际数据。
我刚刚了解到 ECC 的工作原理并不是这样,但是像东欧能源信息研究所针对 ECC 做了类似调整。
我的问题:有没有办法用openssl
类似的常用工具来做到这一点?
假设我有一对 ECC 密钥对(例如MyPrivateEd25519Key.pem
和MyPublicEd25519Key.pem
(或 secp256k1 或 secp521r1 或任何合适的密钥)和一个数据文件。我可以使用公钥 ECC 密钥加密文件,然后使用私钥解密结果吗?
我不太清楚如何才能实现这一点(如果有的话)openssl
。
答案1
是的,你可以,但是你需要自己操作所有原语。
以下是一个例子:https://github.com/insanum/ecies