ElGamal cryptosystem