Który to algorytm szyfrowania RSA?


0

Przeszukałem w Internecie kalkulator Online RSA, a także przykład algorytmu RSA i znalazłem to internetowe narzędzie kalkulatora RSA oraz tę stronę, która wspomina o algorytmie, jak poniżej:

Przykład algorytmu RSA

Wybierz p = 3 i q = 11 Oblicz n = p * q = 3 * 11 = 33 Oblicz φ (n) = (p - 1) * (q - 1) = 2 * 10 = 20 Wybierz e, aby 1 <e <φ (n) i e in są chronione prawem autorskim.

Niech e = 7 Oblicz wartość d taką, że (d * e)% φ (n) = 1. Jednym rozwiązaniem jest d = 3 [(3 * 7)% 20 = 1]

Klucz publiczny to (e, n) => (7, 33)

Klucz prywatny to (d, n) => (3, 33)

Szyfrowanie m = 2 to c = 2 ^ 7% 33 = 29

Odszyfrowanie c = 29 wynosi m = 29 ^ 3% 33 = 2

Ponieważ chcę sam przetestować inny przykład, wybieram inną parę dla p i q i wykonałem powyższe kroki:

p=4259 and q=6053 ==> n=p*q=25779727
φ(n)=(p-1)*(q-1)=25769416
And as GCD(23421481,25779727)=1, I select e=23421481
Now if I want to encrypt '1',  its encryption is (1^23421481)%25779727

To oczywiste, że (1^23421481)%25779727=1

Ale kiedy korzystam z narzędzia kalkulatora online, jest to wynik:

wprowadź opis zdjęcia tutaj

Jak widzisz, zwraca 10098474wartość szyfrowania 1!

P1: Dlaczego? Co jest nie tak z krokami, które zrobiłem ręcznie, aby obliczyć wartość szyfrowania?

P2: Jak ta strona oblicza to wyrażenie dla innej liczby (oprócz 1)? Myślę, że 2^23421481jest to naprawdę duża liczba tego rodzaju narzędzia online do obliczenia w części sekundy !! (Próbowałem obliczyć 2 ^ 23421481 przy użyciu wolfram-alfa. Nawet ta duża strona zwraca limit czasu!): D


1
Prawdopodobnie, zwłaszcza, że ​​mówi „Zwykły tekst do zakodowania” - to, co wpisujesz w formularzu, nie jest konwertowane na liczbę całkowitą, ale pozostaje jako tekst. 1 w Unicode lub UTF-8 nie tłumaczy się na literalną liczbę 1, odpowiada dwóm bajtom 0x00 0x31 dla Unicode lub tylko jednobajtowy 0x31 dla UTF-8.
LawrenceC

@ultrasawblade Powinieneś podać to jako odpowiedź (ponieważ jest to odpowiedź, ponieważ 0x31 = 49 jest to, co jest pod „Wiadomość tekstowa w postaci liczbowej”)
cpast

@ultrasawblade Jak mogę spróbować (sprawdzić)? Czy jest jakieś narzędzie online, które może obliczyć to wyrażenie? Nie mogłem otrzymać żadnej odpowiedzi w Wolfram-Alpha! Zwraca „Limit czasu!” Napisałem nawet skrypt Pythona, aby go obliczyć, ale przechodzi on w stan „Nie odpowiada”.
Abraham
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.