Насколько я понимаю, ключи RSA обычно генерируются на основе (сильного) случайного генератора.
Вместо этого я хочу создать их на основе пароля.
Или, скорее, на его хэш, например sha512 (sha512 (пароль + соль) + пароль + перец)
Это нужно сделать на стороне клиента, в JavaScript.
Кто-нибудь знает, как это сделать? Есть ли простая библиотека JavaScript, которая создает пары ключей RSA детерминистически, на основе заданного ввода?
(На самом деле, я упоминаю RSA, но достаточного безопасного асимметричного шифрования было бы достаточно, мне просто нужно публично-частное шифрование)
Дополнение: Мне нужно это, потому что я создаю какое-то безопасное коммуникационное решение, которое не нужно полагаться на соединение или даже на сервер, чтобы быть в безопасности.
Я шифрую весь контент с помощью AES с использованием случайных ключей, а ключи шифруются RSA. Идея заключается в том, что Алиса может RSA-шифровать свой контент (или, фактически, AES-ключ для своего контента) с открытым ключом Боба (поэтому открытый ключ Bob должен храниться в Интернете).
Позже, когда Боб снова вводит свой пароль, его браузер может детерминистически рассчитать свой частный и открытый ключ RSA на месте, загрузить контент из Алисы и дешифровать его локально с помощью его закрытого ключа.