I am looking for asymmetric encryption using SECP256K1. But all over the internet, I see that it also requires AES encryption. Instead of generating an AES secret key, is it possible to encrypt using the public key alone?


1 Answer 1


You can encrypt with secp256k1 (or any elliptic curve) by using ECIES (Elliptc Curve Integrated Encryption Scheme). However, inside ECIES a symmetric key is generated and the message is encrypted using it.

This is in contrast with RSA, which can encrypt data directly; though most of the time it is also used to encrypt a symmetric key and then encrypt data with that key.

If you really want to avoid AES, then you can use the secret derived inside ECIES and simply XOR with your message. Check the SEC 1 standard, section 5.1.3.

  • $\begingroup$ yah. @conrado. That is my issue. Where as in some of the white paper, I can find point doubling and point multiplication, Can't we do that with SECP256K1 $\endgroup$ Commented Aug 1, 2019 at 12:58
  • 1
    $\begingroup$ I interpreted the question to be asking if one can use ECC "directly" to encrypt values akin to what could be done with RSA, rather than using it to agree on keys and using those keys with a symmetric cipher. My interpretation could be in error, however. $\endgroup$
    – Ella Rose
    Commented Aug 1, 2019 at 15:58
  • $\begingroup$ @NaveenKumar can you clarify your question? Which white paper? Can't to what with secp256k1? $\endgroup$
    – Conrado
    Commented Aug 1, 2019 at 16:04
  • $\begingroup$ @EllaRose. Yes. You got my question. $\endgroup$ Commented Aug 2, 2019 at 5:58
  • $\begingroup$ @NaveenKumar I've expanded the answer $\endgroup$
    – Conrado
    Commented Aug 2, 2019 at 11:32

Not the answer you're looking for? Browse other questions tagged or ask your own question.