Этот ответ хорошо объясняет, как создать новую пару открытого / закрытого ключа в .NET:
public static void AssignNewKey(){
RSA rsa = new RSACryptoServiceProvider(2048); // Generate a new 2048 bit RSA key
string publicPrivateKeyXML = rsa.ToXmlString(true);
string publicOnlyKeyXML = rsa.ToXmlString(false);
// do stuff with keys...
}
Однако, раздел «Замечания» в документации RSACryptoServiceProvider (Int32) говорит (выделено):
Примечания
Если ключ по умолчанию не найден , новыйключ создан.[...]
Что это за «ключ по умолчанию» и как я могу убедиться, , что конструктор RSACryptoServiceProvider не возвращает этот «ключ по умолчанию», а новый ключ?