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:
Jak widzisz, zwraca 10098474
wartość 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^23421481
jest 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
źródło