Из всего, что я понимаю, читая различные материалы, пара ключей с открытым и закрытым ключами является основой ассиметричного шифрования, а также что-то о выборе 2 простых чисел (это примерно ваш личный ключ) и их умножении (что примерно соответствует вашему открытому ключу), Я вижу, что можно создать открытый ключ, если вы знаете секретный ключ. Правильно ли это или я что-то принимаю?
[EDIT]
Что меня больше сбивало с толку, так это то, что сериализовать ключ RSA в XML невозможно только с помощью частного ключа (с использованием .NET class RSACryptoServiceProvider). Не уверен, что это ограничение намеренно или нет!