ElGamal-kryptering är inom kryptografin ett system som baseras på asymmetrisk kryptering och Diffie-Hellmans nyckelöverföring. Systemet uppfanns av Taher Elgamal 1985. ElGamal används bl.a. av GNU Privacy Guard (GPG), nyare versioner av Pretty Good Privacy (PGP).
ElGamal-kryptering kan definieras med hjälp av en cyklisk grupp G. Krypteringens säkerhetsnivå beror på svårigheten på ett problem i G relaterat till beräkning av diskreta logaritmer.
ElGamal-kryptering består av tre komponenter: nyckelgeneratorn, krypteringsalgoritmen och dekrypteringsalgoritmen.
Nyckelgeneratorn fungerar enligt följande, i en situation där Bob vill kunna ta emot krypterade meddelanden:
När Alice vill skicka ett hemligt meddelande M till Bob, krypterar hon det med hans publika nyckel (G, q, g, h), enligt krypteringsalgoritmen:
För att dekryptera chiffertexten (c1, c2) använder Bob sin privata nyckel x, enligt dekrypteringsalgoritmen:
Detta fungerar eftersom c2 ⋅ c1-x = m ⋅ hy ⋅ g-xy = m ⋅ gxy ⋅ g-xy = m.
Om meddelandet M är för stort för G kan det delas upp i flera delar, där varje del kan krypteras individuellt.