ElGamal cryptosystem

The ElGamal cryptosystem was first proposed by Taher ElGamal in 1984 [DBLP:conf/crypto/Gamal84]. It is defined over a (sub)group \(\mathbb{G}\) in which the DDH assumption is assumed to hold.

  • Setup:
  • KeyGen\((\lambda) \mapsto \langle \mathit{pk}, \mathit{sk} \rangle\):
  • Encrypt\((m, \mathit{pk}) \mapsto c\):
  • Decrypt\((c, \mathit{pk}) \mapsto m\):

Symbol definitions

  • \(q\) - the order \(|\mathbb{G}|\) of the (sub)group
  • \(\lambda\) - security parameter
  • \(\mathit{pk} \in \mathbb{G}\) - public key
  • \(\mathit{sk} \in \mathbb{Z}_q\) - secret key
  • \(m \in \mathbb{G}\) - plaintext
  • \(c \in \mathbb{G}\) - ciphertext