Nie tylko algorytm szyfrujący ma wpływ na bezpieczeństwo transakcji. Gdy wiesz, jaki algorytm jest używany, to tak jakbyś znał rodzaj czyjegoś sejfu. Możesz mieć sejf całkowicie odporny na włamanie, ale nigdy nie wkładać do niego dokumentów, zapominać go zamknąć albo zamykać go za pomocą kombinacji, którą zna albo może odgadnąć wielu ludzi.
Wielu ludzi kupuje kosztowne sejfy i źle ich używa równie wielu ludzi wbudowuje dobre algorytmy szyfrowania w niebezpieczne systemy. Aby klient i serwer mogły nawiązać uwierzytelnioną i bezpieczną prywatną komunikację, muszą być spełnione poniższe warunki:
Klient i serwer zgadzają się co do algorytmów kryptograficznych, których będą używać. Klient może stwierdzić, że porozumiewa się z właściwym serwerem, a serwer może stwierdzić, z jakim klientem się porozumiewa.
Klient i serwer współdzielą sekret, którego nikt inny nie zna i nie może ustalić. Klient i serwer mogą stwierdzić, czy ktoś zmienił dowolny komunikat (zwłaszcza na wstępnym etapie komunikacji). Pod koniec sesji współdzielony sekret zostaje zniszczony i nie ma żadnego sposobu jego odtworzenia.