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