Recent Articles



































Elgamal discrete logarithm cryptosystem



         


The ElGamal algorithm is an asymmetric key encryption algorithm for public key cryptography which is based on discrete logarithms. It was created by Taher ElGamal. The ElGamal algorithm is used in the free GNU Privacy Guard software, recent versions of PGP, and other crypto systems. It can be used for encryption/decryption, and also for digital signatures. NSA's Digital Signature Algorithm is based on ElGamal, and is very similar.

The encryption algorithm works as follows:

Note that:

<math>\frac{c_2}{c_1^x} = \frac{m\cdot h^k}{g^{xk}} = \frac{m\cdot g^{xk}}{g^{xk}} = m<math>

If a message needs to be split up into multiple <math>m<math>'s, several values of <math>c_2<math> can be transmitted. Also, in general, we do not have to use <math>\mathbb{Z}_p<math>, but can use any group as long as it is cyclic.

ElGamal is a simple example of a semantically secure asymmetric key encryption algorithm. It is probabilistic, meaning that a single plaintext can be encrypted to many possible ciphertexts, with the consequence that a general ElGamal encryption produces a 2:1 expansion from plaintext to ciphertext.

Breaking ElGamal is, in most cases, at least as hard as solving the discrete logarithm problem. If the discrete logarithm problem could be solved efficiently, then ElGamal could be broken. However, it remains possible that there may be some way to break ElGamal without having to solve that problem.

[Top]

References






  View Live Article   This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License