В настоящее время единственный способ "восстановить" Закрытый ключ с Открытого ключа исчерпывающим поиском (грубая сила). Система была специально предназначена этот путь так, чтобы Вы могли выпустить свой открытый ключ любому, не волнуя по поводу них способность выяснить Ваш закрытый ключ.
Править:
Предупреждение! Упрощенное объяснение вперед!
Принятие Вас имело ключи RSA (наиболее распространенное), открытый ключ имеет два числа в нем: n и e. Закрытый ключ имеет тот же n и другой номер d. Первоначально было два огромных простых числа p и q, которые использовались для вычисления n, d, и e так, чтобы n и e могли зашифровать текст; n и d мог дешифровать шифрованный текст. У Вас есть n и e. Можно учесть n для выяснения p и q; проблема состоит в том, что n является чертовски огромным количеством с тоннами возможного p и q числами. В настоящее время нет никакого известного способа сделать это быстро; я не уверен, обеспокоились ли хакеры даже записью инструментов для попытки. Так в сущности нет это реалистично не возможно.
При присвоении пароля ключу он просто делает простое шифрование на закрытом ключе, сохраненном на компьютере. Открытый ключ не затронут вообще этим. Пароли относительно легко повредить по сравнению с самим закрытым ключом; таким образом, на это нельзя полагаться для основной безопасности (необходимо сохранить закрытый ключ только в безопасных местах).
Если я понимаю правильно, Вы хотите генерировать совместимый закрытый ключ от открытого ключа. Если бы это было возможно, то целая система была бы бессмысленна. Если бы Вы действительно управляете им, я хотел бы знать, как я генерирую закрытый ключ своего банка из их сертификата SSL.
Абсолютно невозможно восстановить закрытый ключ с открытого ключа. Можно генерировать общественность от частного, но не наоборот. Это абсолютно невозможно, и является также точкой асимметричного шифрования.
Единственная вещь, которую можно сделать быстро, генерируют новый набор наборов с открытым ключом и с закрытым ключом и заменяют открытые ключи на серверах, к которым Вы пытаетесь получить доступ, однако, чтобы сделать это у Вас должен быть физический доступ к серверам, на которых Вам сохранили открытые ключи прежде.
Если у Вас не будет физического доступа к машинам, то это будет фактически невозможно для Вас.
Кроме того, даже если у Вас будет физический доступ к серверам, если жесткие диски или область, где ключи были сохранены, будут зашифрованы, снова, то это будет фактически невозможно для Вас.
Doug Pan