Question

So far I have only seen it used in digital signatures and key agreement protocols. Can it be used like RSA to actually encrypt data? Are there any libraries for this?

Edited:

I need something like RSA. Encrypt the data with the recievers public key so later he can decyrpt it with his private key.

I know ECDH can be used to send a secret value to someone but you don't decide what data is sent. Unlike the "regular" DH with ECDH the resulting secret value is always the same since it only depends on the keypairs. I guess I could use this value as a key to a symmetric cipher and encrypt yet another key which is chosen by me and encrypt the data with that key (if I want to support multiple recievers). Is this a good way?

Was it helpful?

Solution

It can be used with ElGamal-style construct to encrypt the bits. A more modern instance of this is the IES scheme, ECIES in your case. Bouncycastle supports this with the IESEngine class. In particular the first constructor does what you seem to be trying to do.

OTHER TIPS

Elliptic curve Elgamal encryption scheme will serve the purpose. It uses public key to encrypt and corresponding private key to decrypt the cipher text.

Like RSA, ECC an be used for encrypting data. In fact, this mode is used for keying protocols.

Like RSA, ECC is relatively slow, hence its more common to negotiate session keys using ECC and switch to symmetric ciphers after one has been chosen.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top