Faza 2 3. Klient upewnia się, że oraz są bezpieczne. Klient: upewnia się, że \mod jest różne od zera, oblicza oblicza oblicza losuje dużą (co najmniej 256 bitów) liczbę (klucz prywatny klienta) oblicza (klucz publiczny klienta) oblicza oblicza oblicza wysyła oraz do serwera.
4. Serwer z otrzymanych wartości oraz : upewnia się, że \mod jest różne od zera, oblicza oblicza oblicza własne i porównuje zgodność z przesłanym. Jeśli się nie zgadza oznacza to, że klient nie został uwierzytelniony i następuje zakończenie protokołu. następnie oblicza oblicza tajny klucz sesji odsyła do klienta.
Faza 3 5. Klient: oblicza własne i porównuje zgodność z przesłanym oblicza tajne
W tym miejscu obie strony posiadają wspólny silny klucz, który można użyć do szyfrowania ruchu. Klient nie znający hasła, lub serwer nie posiadający nie są w stanie ich obliczyć.
W dalszej kolejności powinno się udowodnić poprawność kluczy:
6. Klient oblicza i wysyła na serwer.
7. Serwer oblicza swoje i porównuje poprawność. Następnie oblicza = (||) i odsyła do klienta.
8.