Как быть уверенным, что ключ publi c принадлежит закрытому ключу (RSA) без проверки модуля? - PullRequest
0 голосов
/ 07 марта 2020

Я генерирую пары ключей RSA, используя Node.js, и они оба хранятся в базе данных (закрытые ключи AES-зашифрованы).

Я хочу проверить, соответствует ли расшифрованный закрытый ключ publi c ключ, чтобы убедиться, что ключ publi c не был заменен / изменен во время отдыха.

Я не нашел способа получить модуль ключей с помощью Node.js API.

Если я просто зашифрую случайное сообщение и получу исходное сообщение при расшифровке, это нормально?

Я просто хочу знать, безопасно ли это, мне все равно, медленно оно или неоптимально.

Есть ли способ сделать это без каких-либо внешних библиотек?

Я действительно не хочу напрямую использовать openssl CLI с узла.

Большое спасибо .

1 Ответ

1 голос
/ 08 марта 2020

Как правило, мы создаем подпись для некоторого известного сообщения и проверяем это (даже для пустой строки октетов), но шифрование / дешифрование также будет работать. Вероятно, лучше всего убедиться, что вы используете операцию, для которой ключ был , изначально предназначенный для Убедитесь, что вы не подписываете и не шифруете сообщение, которое может быть использовано злоумышленником, и / или не пропускаете результат .

Невозможно использовать другой закрытый ключ, который не эквивалентен функциональности . Тем не менее, могут существовать различия, например, закрытый ключ может содержать частный показатель степени для прямого возведения в степень с этим частным показателем (простой RSA), или он может содержать параметры генерации ключа, используемые для китайской теоремы об остатках. В этом случае он не требует частного экспонента.

...