>>Пароль пользователя будет являться закрытым ключом, на основе которого будут расшифровываться данные.
Уточнение.
Закрытый ключ — это термин асимметричной криптографии. Пароль не может быть закрытым ключом. Есть 2 основных алгоритма асимметричной криптографии: RSA и DSA (DSA есть для эллиптических кривых, ECDSA). Ни в одном из них нельзя использовать пароль в качестве закрытого ключа.
Хотя… меня сейчас осенила грандиозная идея — генерировать p и q (все время одинаковые) по паролю — тогда не нужно хранить закрытый ключ. Пошел думать эту мысль…