RSA (kryptografia): Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja nieprzejrzana] |
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}
Link zewnętrzny
Bibliografia
- Thomas H. Cormen. Rozdział 31. Algorytmy Teorioliczbowe we Wprowadzenie do algorytmów. Wyd. VII. Warszawa, 2005 WNT, s. 902 - 909