Закрытый и открытый ключ создаются вместе.Кроме того, стандартный формат хранения для закрытого ключа RSA включает все поля открытого ключа, поскольку он полезен для оптимизированных реализаций и маскирования (защита от некоторых атак по побочному каналу).См. Сам стандарт RSA: PKCS # 1 .
Редактировать: вопрос был отредактирован, изначально он был только для RSA.Для другого асимметричного алгоритма не требуется, чтобы открытый ключ мог быть получен из закрытого ключа, и нет требования обратного.Для алгоритмов, основанных на дискретном логарифме (Диффи-Хеллман, Эль-Гамаль, DSA и варианты всех этих эллиптических кривых), открытый ключ легко вычисляется из закрытого ключа.Можно представить себе вырожденный RSA, в котором знание закрытого ключа не позволяет реконструировать открытый ключ, но для этого не требуется хранить несколько ключевых элементов, которые необходимы для хорошей производительности (более подробно, сохранение коэффициентов модуля RSA позволяетдля повышения скорости в 4 раза по китайской теореме об остатках, так что все хранят факторы).На более концептуальной основе открытый ключ, ну, в общем, открытый, поэтому предполагается, что «все» знают это;с практической точки зрения, формат хранения закрытого ключа почти всегда включает в себя условия хранения открытого ключа или, по крайней мере, достаточное количество данных для восстановления открытого ключа.