50 Dlaczego znalezienie dzielników modułu M w algorytmie
Transkrypt
50 Dlaczego znalezienie dzielników modułu M w algorytmie
50 Dlaczego znalezienie dzielników modułu M w algorytmie RSA powoduje złamanie klucza prywatnego? WPROWADZENIE RSA - asymetryczny algorytm kryptograficzny. Bezpieczeństwo RSA opiera się na trudności faktoryzacji (rozkładu na czynniki) dużych liczb złożonych (tutaj N). Moduł M, jest tym samym co moduł N, czyli tak jak mieliśmy na ćwiczeniach. Tworzenie kluczy (informacje z ćwiczeń) 1. Losowo wybieramy dwie duże liczby pierwsze p i q (liczby tajne), 2. Obliczamy N = p * q, 3. Obliczamy φ(N) = (p – 1) * (q – 1), 4. Wybieramy takie e, żeby spełnione były warunki: • 1 < e < φ(N) • NWD (e, φ(N)) = 1 – liczby: e, oraz φ(N) są względnie pierwsze. 5. Obliczamy d = e-1 mod φ(N) I tak obliczyliśmy klucze dla danej osoby (np. Boba): • klucz prywatyny (d,N) • klucz publiczny (e,N) Wysyłając do odbiorcy wiadomość kodujemy ją jego kluczem publicznym, odbiorca dekoduje ją swoim kluczem prywatnym, np. Ala wysyła do Boba. Zatem Ala koduje kluczem publicznym Boba. Bob – odbiorca dekoduje swoim prywatnym. Kodowanie: • c = me mod N, Dekodowanie • m = cd mod N m<N ODPOWIEDŹ NA PYTANIE Zakładam, że znamy klucz publiczny odbiorcy (e,N) Gdyby znalazł dzielniki liczby N czyli p i q to: • łatwo obliczę: φ(N) jako (p – 1) * (q – 1) • następnie na podstawi e i obliczonego φ(N) obliczę d (pokazano w kroku 5) czyli złamie/poznam klucz prywatny odbiorcy (d,N) Na szczęście faktoryzacja dużych liczb złożonych jest trudna – na tej trudności opiera się bezpieczeństwo algorytmu RSA. (Podobno Ulek tak odpowiedział na wykładzie – wzięte z forum, pokładam w tym wiarę).