大家。是否可以执行椭圆曲线加密的公钥加密流程? https://en.wikipedia.org/wiki/Public-key_cryptography
我需要实现以下场景:
我在 tweetnacl 库( https://github.com/dchest/tweetnacl-js )中找不到正确的方法。有人可以指导我正确的方向吗?
先感谢您。
您应该寻找ECIES实施。这是一个似乎支持它的随机 JavaScript 库。
椭圆曲线不支持像 RSA 那样的加密原语。有 EC ElGamal,但由于 ElGamal 的密钥较小且开销较大,因此不值得。
要使用带有加密的曲线,您需要使用混合加密。ECIES 是混合加密:离线 ECDH 密钥协商以及使用派生密钥执行的对称加密。
请注意,ECIES 的标准化程度不高。您可能必须选择自己的密钥派生函数、流密码或分组密码以及操作模式。对于密钥派生方法,您可以选择 HKDF(如果可用)。如今,GCM 模式下的 AES 对于密码来说似乎是一个明智的选择(12 字节 IV 可以设置为零或也可以设置为从“共享秘密”派生的值)。支持 ECIES 的图书馆可能对 ECIES 的外观有自己的想法,但要注意兼容性问题......