Encryption 使用椭圆曲线加密技术加密数据

Encryption 使用椭圆曲线加密技术加密数据,encryption,openssl,public-key-encryption,cryptoapi,ecies,Encryption,Openssl,Public Key Encryption,Cryptoapi,Ecies,我需要使用ECIES和openssl加密数据。 openssl中是否存在任何API? 结果密文=输入)ecies(公钥,纯文本) 如果没有API,我如何计算。ECIES基本上与(短暂静态)ECDH相同,后面是KDF(通常在结果的X坐标上),然后是普通对称密码。是的,但不要像ECDH指定的那样通过哈希函数传递,而是使用。您可能希望稍后用证书替换接收方的静态(受信任!)公钥。否则,您只需丢弃进行加密的一方的短暂私钥,并将相应的公钥包含在密文中,然后使用presto。容易极了。嗯,有点像:PYou不能

我需要使用ECIES和openssl加密数据。 openssl中是否存在任何API? 结果密文=输入)ecies(公钥,纯文本)


如果没有API,我如何计算。

ECIES基本上与(短暂静态)ECDH相同,后面是KDF(通常在结果的X坐标上),然后是普通对称密码。是的,但不要像ECDH指定的那样通过哈希函数传递,而是使用。您可能希望稍后用证书替换接收方的静态(受信任!)公钥。否则,您只需丢弃进行加密的一方的短暂私钥,并将相应的公钥包含在密文中,然后使用presto。容易极了。嗯,有点像:PYou不能使用椭圆曲线直接加密数据(嗯,无论如何,没有任何有效长度)。但是,可以使用接收方的静态受信任公钥和临时公钥生成密钥。然后,可以将相应的公钥附加到密钥的密文中,以便静态私钥可以用于生成相同的密钥进行解密-HKDF只是一个基于HMAC的特定KDF。它也在Bouncy Castle。对于其余的功能,实际上并不需要BC。不,你不能混合曲线,你需要选择一个。。。对于公钥位于证书中的静态密钥对(根据您的描述,似乎是这样)。然后,对encryption.OP生成的临时密钥对使用相同的曲线,这称为“点乘”。Alice将她的私钥与Bob的公钥相乘以获得共享密钥。Bob也这样做——他将他的私钥与Alice的公钥相乘,得到相同的共享密钥。我认为您正在寻找的函数是
EC\u POINT\u mul()
。看见