Algorytm Rivesta-Shamira-Adlemana (RSA) – jeden z pierwszych i obecnie najpopularniejszy asymetryczny algorytm kryptograficzny z kluczem publicznym, zaprojektowany w 1977 przez Rona Rivesta, Adiego Shamira oraz Leonarda Adlemana. Pierwszy algorytm, który może być stosowany zarówno do szyfrowania, jak i do podpisów cyfrowych. Bezpieczeństwo szyfrowania opiera się na trudności faktoryzacji dużych liczb złożonych. Jego nazwa pochodzi od pierwszych liter nazwisk jego twórców.

Opis algorytmu Generowanie kluczy W celu wygenerowania pary kluczy (prywatnego i publicznego) należy posłużyć się algorytmem: Wybieramy losowo dwie duże liczby pierwsze p i q (najlepiej w taki sposób, aby obie miały zbliżoną długość w bitach, ale jednocześnie były od siebie odległe wartościami – istnieją lepsze mechanizmy faktoryzacji, jeżeli liczba ma dzielnik o wartości bliskiej ). Obliczamy wartość n = pq. Obliczamy φ(n)=(p-1)(q-1) Wybieramy liczbę e (1 < e < φ(n)) względnie pierwszą z φ(n). Znajdujemy liczbę d, która jest odwrotnością modularną liczby e, tj.