Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

Recently I started studying ECC and I just loved it. I want to transfer some big data (like 3KB), What is the best method, ECDSA, ECIES, or ECDH (and why)?

I am confused, how should I choose between ECDSA, ECIES and ECDH?

Appreciate your help.


share|improve this question
add comment

1 Answer

up vote 6 down vote accepted

ECDSA is a digial signature algorithm
ECIES is an Intergrated Encryption scheme
ECDH is a key secure key exchange algorithm.
First you should understand what are the purpose of these algorithms.

Digital signature algorithms are used to authenticate a digital content.A valid digital signature gives a recipient reason to believe that the message was created by a known sender, such that the sender cannot deny having sent the message (authentication and non-repudiation) and that the message was not altered in transit (integrity).
Intergrated Encryption scheme is a hybrid encryption scheme which provides semantic security against chosen plain text and chosen cipher text attacks.ECIS uses following functions. It has following encryption and authentication functions.

  • Key Agreement function
  • Key Derivation Function
  • Encryption algorithm
  • Hash function

Secure key exchange algorithms are used to exchange our keys securely via a non secure channel.

Here you are interested in Elliptic Curve variants of those algorithms. Your requirement is to exchange some data. So you can use ECDH to share the secret key and ECDSA to sign the content. Because ECDH does not provide authentication we can use ECDSA for that purpose. Once the secret key is shared, you can securely exchange your data through a non secure channel. Strength of the secret key can be defined by considering the level of security you need and amount of computation power you got.

share|improve this answer
can you explain why i need combine both ECDH(key exchange) ECDSA. because using ECDH both parties can share Secret key and using secret key then can exchange the data through non secure channel. so what use of ECDSA. –  user3160055 Jan 11 at 20:20
@user3160055 ECDH does not provide authentication.So it is vulnerable against man in the middle attacks. So the solution is to use some sort of digital signature algorithm like ECDSA. So before sending ECDH public key of the server, you can sign them and verify it at the client. If you consider SSL, DH or ECDH is not used alone. For example in DHE_RSA, DH is used for key exchange and RSA is used for signing. –  deltaaruna Jan 12 at 3:28
thanks for the clear explanation. can you tell me where i can use ECIES(if possible some example). –  user3160055 Jan 12 at 14:03
@user3160055. I have edited my post. Now you will have a better understanding. You can directly use ECIES for your requirement. And it can be used instead of cryptosystems like RSA. I could not find a place where it is practically used. But it is proposed instead of RSA. So where ever you use RSA cryptosystem you can consider using ECIS. Also this is a literary survey on ECIES digital.csic.es/handle/10261/32671 –  deltaaruna Jan 12 at 15:20
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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