Szyfrowanie: mając do zaszyfrowania wiadomość przedstawiamy ją jako element grupy [] wybieramy losowo liczbę i liczymy (modulo )
Deszyfrowanie: podnosimy otrzymane do potęgi
Następnie znajdujemy odwrotność (nadal modulo ) rozszerzonym algorytmem Euklidesa:
W końcu dzielimy przez czyli mnożymy przez jej odwrotność –
Podpis cyfrowy Klucz jest generowany w ten sam sposób.
Żeby wygenerować podpis wiadomości losujemy liczbę i liczymy: (mod p), (mod(p-1)), gdzie jest funkcją haszującą.
Podpisem jest para
Żeby zweryfikować podpis, sprawdzamy równanie:
Dla prawidłowego podpisu będzie się zgadzać:
Ważne jest zachowanie tajności wylosowanego Jeśli byłoby znane, to można by odzyskać klucz prywatny z podpisu:
Poziom bezpieczeństwa Jeżeli rząd grupy multiplikatywnej jest iloczynem liczb pierwszych, spośród których nawet jedna nie jest odpowiednio duża, istnieje efektywna metoda obliczania wykładnika. Nie jest znana ogólna metoda szybkiego liczenia logarytmu dyskretnego, więc nie wiemy, jak za pomocą i uzyskać które w pełni wystarczyłoby do odszyfrowania wiadomości. Nie ma jednak dowodu, że taka nie istnieje.