I am currently designing an application for communication between two and more users. At the moment I am trying to figure out what methods to use for the asymmetric cryptology.

With the recent "breakthroughs" that everybody has been talking about concerning RSA I am a bit unsure whether to use it or not for future projects.

I looked at ECC and RSA alternatives such as ElGamal, but it seems like one could study that subject for the next 35 years and would still not come up with a decision.

In particular I looked at key exchange between two or more users via a server. After reading for a day or two and striking out OTR for a protocol, I got interested in Elliptic Curve Diffie–Hellman — and as it says on the Wikipedia article: "to derive another key which can then be used to encrypt subsequent communications using a symmetric key cipher."

However, it seems that ECDH is not advanced enough to satisfy my requirements of CIA & deniable encryption with regards towards MITM attacks.

Its suggested to use FHMQV for more advanced security. Sadly, as soon as I read the introduction I blacked out because I didn't understand anything.

I have about 1 year of deeper experience and understanding of cryptology, but I am by far no expert on this subject. Still, I need to make a decision and would like to know from you whether to be concerned about RSA or not and if I should go down the DH route.

  • $\begingroup$ Personally I use ECC for almost everything, ECDH for key-exchange and authentication, EdDSA for third-party verifiable signatures. $\endgroup$ – CodesInChaos Sep 10 '13 at 7:17
  • $\begingroup$ As an inspiration of what can be done with ECDH + symmetric encryption, check out CurveCP and Noise. CurveCP is a bit simpler, but has some minor flaws. An interesting article, inspired by these protocols is Moxie's Simplifying OTR deniability $\endgroup$ – CodesInChaos Sep 10 '13 at 7:18
  • 2
    $\begingroup$ Could you provide some details about which "breakthroughs" everyone is talking about? It should be noted that neither RSA nor ECC are secure for post-quantum cryptography. $\endgroup$ – Henrick Hellström Sep 10 '13 at 8:54
  • 1
    $\begingroup$ There weren't any breakthroughs regarding RSA and discrete prime characteristic finite fields. The recent breakthroughs were against small characteristic finite fields, in particular binary fields. $\endgroup$ – CodesInChaos Sep 10 '13 at 9:10
  • 1
    $\begingroup$ @Nemo The crypto part of NaCl is fine, but by itself it doesn't satisfy the OP's requirements. In practice I'd use the libsodium variant since it's easier to build. The CurveCP part of NaCl is not production ready. There are significant flaws in the implementation, and minor flaws in the protocol. CurveCP is a great inspiration for protocol designers, but I wouldn't use it in its original form. $\endgroup$ – CodesInChaos Sep 10 '13 at 18:07

Accordingly to a previous thread Why is elliptic curve cryptography not widely used, compared to RSA?, RSA is still widely used compared to ECC because:

  • RSA is well established
  • Its public key operations (e.g. signature verification, as opposed to signature generation) are faster than ECC
  • (most importantly) The RSA patents have expired, while a small company called Certicom holds a number of EC-related patents.

However, according to the NSA website, Elliptic Curve Cryptography provides greater security and more efficient performance than the first generation public key techniques (RSA and Diffie-Hellman) now in use. Thus, they decided to move to elliptic curve based public key cryptography for protecting both classified and unclassified National Security information.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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