Szyfrowanie Asymetryczne
Szyfry asymetryczne są nazywane również szyframi z kluczem publicznym i prywatnym. W swoim działaniu wykorzystują dwa klucze, jeden do szyfrowania wiadomości, a drugi do deszyfrowania.
- G( ) - niedeterministyczny algorytm zwracający parę kluczy (pk, sk),
- E(pk, m) - niedeterministyczny algorytm szyfrujący tekst jawny m i zwracający tekst zaszyfrowany c,
- D(sk, c) - deterministyczny algorytm deszyfrujący c, zwracający tekst jawny m.
- D(sk, E(pk, m)) = m
Klucz publiczny jest znany powszechnie i może być używany przez wszystkich zainteresowanych do szyfrowania dowolnie wybranych danych. Idea szyfrów asymetrycznych polega na tym, że tylko posiadacz drugiego klucza z pary - klucza prywatnego (który nie jest publicznie znany), może rozszyfrować takie dane. Podobnie, dane zaszyfrowane za pomocą klucza prywatnego, mogą być odszyfrowane tylko przy użyciu odpowiadającego mu klucza publicznego.
Z racji tego, że napastnik może samodzielnie szyfrować za pomocą powszechnie dostępnego klucza publicznego dowolne wiadomości, szyfry asymetryczne są bardziej narażone na ataki z wybranym tekstem jawnym. Szyfry z kluczem publicznym muszą więc zapewniać bezpieczeństwo przed tego typu atakami. Napastnik po zaszyfrowaniu dwóch wiadomości za pomocą tego samego klucza publicznego, nie może być w stanie rozpoznać, który szyfrogram odpowiada której oryginalnej wiadomości. Podobnie, analizując dwie wiadomości zaszyfrowane za pomocą tego samego algorytmu i tego samego klucza publicznego, postronny obserwator nie może być w stanie w żaden sposób rozróżnić ich szyfrogramów.
Szyfry asymetryczne są dużo wolniejsze od szyfrów symetrycznych (zwykle przynajmniej tysiąc razy wolniejsze). Częstą praktyką jest więc używanie szyfrowania z kluczem publicznym jedynie do nawiązania bezpiecznego połączenia i wynegenetowania nowego sekretnego klucza, który będzie używany w trakcie szyfrowania symetrycznego, chroniącego całą dalszą komunikację.