Какой алгоритм шифрования RSA?
Я искал в Интернете онлайн-калькулятор RSA, а также пример алгоритма RSA, и я нашел этот онлайн-инструмент калькулятора RSA и этот сайт, на котором упомянут алгоритм, как показано ниже:
Пример алгоритма RSA
Выберите p = 3 и q = 11. Вычислить n = p * q = 3 * 11 = 33. Вычислить φ(n) = (p - 1) * (q - 1) = 2 * 10 = 20. Выбрать e так, чтобы 1
Пусть e = 7. Вычислите значение для d так, чтобы (d * e) % φ(n) = 1. Одним из решений является d = 3 [(3 * 7) % 20 = 1].
Открытый ключ (e,n) => (7, 33)
Закрытый ключ (d, n) => (3, 33)
Шифрование m = 2 - это c = 2^7 % 33 = 29
Расшифровка с = 29 составляет м = 29^3 % 33 = 2
Поскольку я хочу протестировать другой пример самостоятельно, я выбрал другую пару для p и q, и я сделал вышеупомянутые шаги:
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
Это очевидно, что (1^23421481)%25779727=1
Но когда я использую инструмент онлайн-калькулятора, это вывод:
Как видите, это возвращается 10098474
в качестве значения шифрования 1
!
Q1: почему? Что не так с шагами, которые я сделал вручную, чтобы вычислить значение шифрования?
Q2: Как этот сайт рассчитывает это выражение для другого числа (кроме 1)? Я думаю 2^23421481
Это действительно большое число для такого онлайн-инструмента, чтобы вычислить в доли секунды! (Я пытался вычислить 2^23421481, используя wolfram-alpha. Даже этот большой сайт возвращает время!):D