ElGamal is an encryption system that is used in asymmetric key cryptography (such as Diffie-Hellman Exchange) on the side of the public key. The ElGamal scheme is introduced on top of an asymmetric system to speed up processing times; symmetric cryptography is much faster than asymmetric cryptography. By Encrypting a symmetric system with an asymmetric one, the security guarantees of asymmetry and upheld by the symmetry.
ElGamal encryption is constructed of 3 operational purposes:
1) Key Generation
2) Encryption
3) Decryption