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