RSA – jeden z pierwszych i obecnie najpopularniejszych asymetrycznych algorytmów kryptograficznych z kluczem publicznym, zaprojektowany w 1977 przez Rona Rivesta, Adi 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[1].
Spis treści |
W celu wygenerowania pary kluczy (prywatnego i publicznego) należy posłużyć się algorytmem:
)

Klucz publiczny jest definiowany jako para liczb (n, e), natomiast kluczem prywatnym jest para (n, d).
Zanim zaszyfrujemy wiadomość, dzielimy ją na bloki
o wartości liczbowej nie większej niż n, a następnie każdy z bloków szyfrujemy według wzoru:

Zaszyfrowana wiadomość będzie się składać z kolejnych bloków
. Tak stworzony szyfrogram przekształcamy na tekst jawny, odszyfrowując kolejne blok
według wzoru:
.Możliwe jest także zaszyfrowanie wiadomości za pomocą klucza tajnego d, a następnie jej odszyfrowanie za pomocą klucza publicznego e. To właśnie ta własność sprawia, że RSA może zostać wykorzystany do cyfrowego podpisywania dokumentów.
Pierwszą udaną faktoryzację RSA zakończono 2 grudnia 1999 roku w ramach konkursu The RSA Factoring Challenge[2].
Dotychczas największym kluczem RSA, jaki rozłożono na czynniki pierwsze, jest klucz 768-bitowy. Liczby pierwsze zostały znalezione 12 grudnia 2009, a informację o przeprowadzonej faktoryzacji opublikowano 7 stycznia 2010 roku[3]. Wykorzystano do tego klaster komputerów; czas zużyty na obliczenia był o 2 rzędy wielkości krótszy od prognozowanego.
Istnieje także szereg ataków na implementacje RSA[4][5]. Ochrona przed nimi polega na stosowaniu probabilistycznych trybów szyfrowania (OAEP) oraz konstruowania implementacji sprzętowych i programowych w taki sposób, by nie były podatne na ataki czasowe lub manipulacje zasilaniem (sprzętowe).
Potencjalnym zagrożeniem dla RSA jest skonstruowanie komputera kwantowego.
W Stanach Zjednoczonych algorytm RSA był opatentowany. Patent o numerze 4.405.829 został przyznany Massachusetts Institute of Technology (które było w tym czasie pracodawcą autorów) we wrześniu 1983 roku, następnie wszystkie prawa do tego patentu zostały odsprzedane firmie RSA Data Security (za kwotę 150 000 USD)[6]. Patent wygasł 21 września 2000 roku.