RSA Encryption: Почему различные текущие вычисления приводят к правильным результатам для некоторых примеров и неверным результатам для других примеров? - PullRequest
0 голосов
/ 30 марта 2020

Для проекта класса я создаю ручную реализацию шифрования RSA. Он не предназначен для криптографической защиты, он предназначен только для подтверждения понимания.

Я создал программу, которая может генерировать допустимые пары ключей, но я заметил, что различные вычисления для данного пациента приводят к правильным ответам для различных онлайн-примеров.

Например, p и q являются простыми числами, при этом вычисляется число:

lcm((p - 1), (q - 1))

дает правильный закрытый ключ для в этом примере и «Очень простой пример шифрования RSA» , но неверные закрытые ключи для «Несколько менее простой пример алгоритма RSA» и пример в этом видео .

При вычислении показателя как:

((p - 1) * (q - 1))

создает правильные и неправильные закрытые ключи в противоположных примерах.

Почему это так и как я могу вычислить значение и закрытый ключ, чтобы созданный закрытый ключ всегда был верным?

Моя программа.

...