I am looking for an asymmetric encryption algorithm other than RSA?


ElGamal is an asymmetric encryption algorithm, which is used in OpenPGP.

Almost all usages of asymmetric encryption is for key exchange (by encrypting a random string, which is then used as shared key in symmetric encryption algorithms). There are key exchange algorithms which are not asymmetric encryption algorithm, the most well-known and used being Diffie-Hellman (in a nutshell, DH is like an asymmetric encryption algorithm in which you do not get to choose what you encrypt -- the one who encrypts "discovers" the seemingly random data which has been encrypted once he has done it -- but that's good enough for key exchange).

ElGamal and Diffie-Hellman both have variants which use elliptic curves. Same principle, a bit more maths, better performance.

There are many other asymmetric encryption algorithms, e.g. McEliece and NTRUEncrypt, but they are less used for various reasons (too recent, too old, not studied enough to be declared secure, patented, too slow, public key is too big...).


Wikipedia's examples of asymmetric algorithms inlcuding:

Diffie–Hellman key exchange protocol
DSS (Digital Signature Standard), which incorporates the Digital Signature Algorithm
Various elliptic curve techniques
Various password-authenticated key agreement techniques
Paillier cryptosystem
RSA encryption algorithm (PKCS#1)
Cramer–Shoup cryptosystem

Also features lesser-known algorithms, implementing software, and some insecure algorithms.

  • Diffie–Hellman is symmeyric as i know ! Why u listed it – Adban Dec 5 '11 at 21:51
  • 2
    @Adban Diffie-Hellman is an asymmetric method of key exchange. It is useful for securely agreeing on a random value. It is not useful for exchanging actual data, though. – Jeff Ferland Dec 5 '11 at 21:54
  • You mean it is used to exchange (usually)symmetric key for example, by asymmetric internal mechanism, right? – Adban Dec 5 '11 at 22:19
  • Most asymmetric algorithms are used to exchange symmetric keys, and most data encryption is done symmetrically. The difference between most asymmetric algorithms and DH is that you can't choose the resulting value in DH. – Jeff Ferland Dec 5 '11 at 22:42
  • To expand on your points, it (DH) is not an encryption algorithm as it cannot be used to encrypt messages. It is a method for two parties to securely exchange keys across an untrusted medium (you could argue that this is asymmetric encryption of the key, and while technically correct this confuses the crap out of crypto-newbies). This key is then used by symmetric encryption algorithms such as AES and 3DES – devnul3 Dec 6 '11 at 22:09

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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