ElGamal
ElGamal is an asymmetric encryption algorithm based on the mathematical theory of cyclic groups and the inherent difficulties in computing discrete logarithms in such groups.
- created by Taher ElGamal in 1985
- borrowed from Diffie-Hellman exchange concepts
- uses discrete logarithms for generating key pairs
- security is based on the difficulty of solving discrete logarithms
- provides for asymmetric encryption of keys previously used in symmetric encryption schemes
- is probabilistic
- means a plaintext may be encrypted to different ciphertexts
- ElGamal also proposed a digital signature mechanism that allows third parties to confirm the authenticity of a message signed with it
- not widely used today
- lead the NSA to develop Digital Signature Algorithm (DSA) as part of the Digital Signature Standard (DSS)
- DSS was adopted by FIPS 186 in 1996
- vulnerable to the chosen-ciphertext attack
- attacker tricks or spoofs a legitimate user (an oracle) into decrypting an arbitrary message block and then sharing those results with the attacker
- provides padding and other means to limit the vulnerability
- used in Gnu Privacy Guard system
Disadvantage
- main disadvantage is that the length of the ciphertext is twice the length of the plaintext
- makes the algorithm inefficient in
- resource-limited devices
- communications over low bandwidth networks