Я искал в интернете онлайн-калькулятор 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 <φ (n) и e и n взаимно просты.

Пусть 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

0