RSA (kryptografia)

Dzisiaj chcemy porozmawiać o RSA (kryptografia). Jest to temat, który w ostatnim czasie cieszy się dużym zainteresowaniem i o którym mówi się wiele w różnych obszarach. RSA (kryptografia) to temat, który wzbudził ciekawość wielu osób, ponieważ ma dziś ogromne znaczenie. W tym artykule zagłębimy się w różne aspekty związane z RSA (kryptografia), od jego pochodzenia po możliwe konsekwencje w przyszłości. Ponadto zbadamy różne perspektywy i opinie na ten temat, aby przedstawić szeroką i kompletną wizję tego tematu. Bez wątpienia RSA (kryptografia) to temat, który nie pozostawia nikogo obojętnym, a dzięki temu artykułowi mamy nadzieję dostarczyć przydatnych i interesujących informacji wszystkim, którzy chcą dowiedzieć się więcej na ten fascynujący temat.

Algorytm Rivesta-Shamira-Adlemana (RSA) – jeden z pierwszych i obecnie najpopularniejszych asymetrycznych algorytmów kryptograficznych 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" class="mw-editsection-visualeditor">edytuj | edytuj kod]

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 λ = NWW(p − 1, q − 1), gdzie NWW -najmniejsza wspólna wielokrotność liczb (p - 1) i (q - 1). Np. dla p=61, q=53 mamy: n=3233, NWW(60,52) = 780
  • Wybieramy liczbę e (1 < e < λ) względnie pierwszą z λ.
  • Znajdujemy liczbę d, która jest odwrotnością modularną liczby e, tj. iloczyn liczby d przez e dzielony przez λ daje jedynkę:

de ≡ 1 (mod λ).

Klucz publiczny jest definiowany jako para liczb (n, e), natomiast kluczem prywatnym jest para (n, d).

Szyfrowanie i deszyfrowanie

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 poniższego wzoru:

Zaszyfrowana wiadomość będzie się składać z kolejnych bloków Tak stworzony szyfrogram przekształcamy na tekst jawny, odszyfrowując kolejne bloki według wzoru:

Własności operacji szyfrowania i deszyfrowania

Niech będą kolejno szyfrowaniem i deszyfrowaniem kluczami K1 i K2. Wtedy zachodzi:

  • – przemienność operacji szyfrowania,
  • – przemienność operacji deszyfrowania.

Ze względów bezpieczeństwa nie powinno się stosować więcej niż 2 zagnieżdżone szyfrowania ze względu na ataki oparte na chińskim twierdzeniu o resztach.

Podpisywanie i weryfikacja podpisu

Analogicznie, RSA może zostać użyte do przeprowadzenia operacji podpisu. W takim przypadku szyfruje się zazwyczaj skrót wiadomości za pomocą klucza prywatnego i propaguje taki szyfrogram wraz z oryginalną wiadomością. Odbiorca posiadający klucz publiczny deszyfruje - otrzymaną z wiadomością - zaszyfrowaną wartość funkcji skrótu, następnie oblicza wartość tejże funkcji z otrzymanej wiadomości. Jeśli obie wartości się zgadzają, przyjmuje się, że wiadomość została podpisana poprawnie.

Próby złamania

Pierwszą udaną faktoryzację RSA zakończono 2 grudnia 1999 roku w ramach konkursu The RSA Factoring Challenge.

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 informacje o przeprowadzonej faktoryzacji opublikowano 7 stycznia 2010 roku. 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. 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.

Claus Peter Schnorr w opublikowanym 1 marca 2021 (i poprawionym 9 lipca 2021) opisie wykorzystania szybkiej faktoryzacji liczb całkowitych za pomocą algorytmów SVP twierdzi, że takie podejście łamie całkowicie kryptografię RSA.


Kwestie patentowe

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). Patent wygasł 21 września 2000 roku.

Przypisy

  1. RSA, Encyklopedia PWN .
  2. a b Bruce Schneier: Kryptografia dla praktyków: protokoły, algorytmy i programy źródłowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 2002, s. 572–581. ISBN 83-204-2678-2.
  3. The RSA Factoring Challenge. . . (ang.)., kiedy odtworzono liczby użyte do stworzenia 140-bitowych kluczy.
  4. Thorsten Kleinjung, Kazumaro Aoki, Jens Franke, Arjen K. Lenstra, Emmanuel Thomé, Joppe W. Bos, Pierrick Gaudry, Alexander Kruppa, Peter L. Montgomery, Dag Arne Osvik, Herman te Riele, Andrey Timofeev and Paul Zimmermann, Factorization of a 768-bit RSA modulus.
  5. Andrea Pellegrini, Valeria Bertacco, Todd Austin: FaultBased Attack of RSA Authentication. 2010.
  6. Daniel Bleichenbacher: Chosen ciphertext attacks against protocols based on the RSA encryption standard PKCS #1. 1998.
  7. Claus Peter Schnorr, Fast Factoring Integers by SVP Algorithms , 2021 .
  8. Claus Peter Schnorr, Fast Factoring Integers by SVP Algorithms, corrected , 2021 .
  9. Steven Levy: Rewolucja w kryptografii. Warszawa: Wydawnictwa Naukowo-Techniczne, 2002, s. 143. ISBN 83-204-2757-6.

Bibliografia

  • Thomas H. Cormen, Rozdział 31: Algorytmy teorioliczbowe, w: Wprowadzenie do algorytmów, wyd. VII, WNT, Warszawa 2005, s. 902–909.

Linki zewnętrzne