Przejdź do zawartości

RSA (kryptografia): Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
SashatoBot (dyskusja | edycje)
m robot dodaje: hr:RSA
→‎Zobacz też: linki zewnętrzne
Linia 34: Linia 34:
*[[kryptografia kwantowa]]
*[[kryptografia kwantowa]]
*[[algorytmy kryptograficzne]]
*[[algorytmy kryptograficzne]]
<math>W tym miejscu [[Grafika:[[Media:Example.jpg]]<nowiki>--~~~~Wstaw tu tekst niesformatowany
----
--~~~~[[[http://www.example.com tytuł strony]]'''''Tekst pochylony'''guj''u[u
== uuu ==
]'''']</nowiki>]]wprowadź wzór</math>


=== Link zewnętrzny ===
=== Link zewnętrzny ===

Wersja z 09:39, 1 paź 2007

RSA to pierwszy i obecnie jeden z dwóch najpopularniejszych (obok ElGamala) algorytmów kryptografii asymetrycznej. Stworzony w roku 1978 przez zespół: Ronald Rivest, Adi Shamir, Leonard Adleman. RSA jest akronimem utworzonym z pierwszych liter nazwisk jego twórców. RSA opiera się na trudności faktoryzacji dużych liczb – znalezienie szybkiej metody faktoryzacji doprowadziłoby do złamania RSA, aczkolwiek nie ma dowodu, że nie da się złamać RSA w inny sposób.

Żeby wygenerować klucz RSA losujemy dwie duże liczby pierwsze i , oraz liczbę względnie pierwszą z .

Następnie obliczamy (ponieważ wybraliśmy względnie pierwsze , ma ono odwrotność i obliczyć ją możemy szybko rozszerzonym algorytmem Euklidesa).

Obliczamy też .

Klucz publiczny to para , klucz prywatny zaś to para . Liczby i należy zniszczyć.

Żeby szyfrować podnosimy liczbę reprezentującą wiadomość do potęgi modulo :

Żeby ją zdeszyfrować podnosimy zaszyfrowaną wiadomość do potęgi . Zgodnie z twierdzeniem Eulera dostaniemy oryginalną wiadomość:

Nie znając nie potrafimy łatwo odzyskać wiadomości z kryptogramu. Nie znając faktoryzacji na i nie znamy też prostej metody odtworzenia z .

RSA może też być używane do podpisów cyfrowych – żeby podpisać daną wiadomość podnosimy ją do potęgi . Żeby ją zweryfikować podnosimy podpis do potęgi . De facto nie podpisujemy jednak wiadomości jako takiej, ale specjalnie spreparowany pakiet składający się z hasza (tzw. funkcji skrótu) wiadomości oraz ustalonych bitów.

Jest to ważne, ponieważ każdy może generować za nas podpisy losowych wiadomości. Algorytm generowania takich podpisów jest następujący:

wybierz podpis
podnieś go do potęgi – otrzymasz przypadkowe
jest prawidłowym podpisem dla (prawie na pewno bezsensownej) wiadomości

Jeśli zamiast pozwalać na dowolne wymusimy pewną strukturę, uniemożliwiamy ataki tego typu – np. jeśli ostatnie 256 bitów mają stanowić naprzemienne zera i jedynki, średnio tylko jeden atak na (ponad ) prób się powiedzie, a i tak podpisze prawie na pewno jedynie jakieś śmieci.

Jak dotąd (maj 2004) udały się ataki na klucze o długości do ok. 600 bitów. Potencjalnym zagrożeniem dla RSA jest skonstruowanie komputera kwantowego.

Zobacz też

Parser nie mógł rozpoznać (błąd składni): {\displaystyle W tym miejscu [[Grafika:[[Media:Example.jpg]]<nowiki>--~~~~Wstaw tu tekst niesformatowany ---- --~~~~[[[http://www.example.com tytuł strony]]'''''Tekst pochylony'''guj''u[u == uuu == ]'''']</nowiki>]]wprowadź wzór}

Bibliografia

  • Thomas H. Cormen. Rozdział 31. Algorytmy Teorioliczbowe we Wprowadzenie do algorytmów. Wyd. VII. Warszawa, 2005 WNT, s. 902 - 909