Лучший ответ: не надо - просто создайте различные контейнеры ключей.
RSACryptoServiceProvider
построен на CAPI Windows, который является более старой из двух библиотек криптографии Windows (и считается устаревшим в настоящее время)). Заменяющая (параллельная) Windows CNG больше не имеет различий между «ключом подписи» и «ключом обмена» ... каждый «именованный ключ» представляет собой только один ключ. CNG может вернуться обратно в CAPI, но он будет использовать только один из двух ключей (я полагаю, обмен выигрывает), поскольку у него нет способа узнать, какой ключ вам нужен.
Некоторые части .NET сейчасиспользуйте только RSACng
преимущественно, и если одно из этих мест попадет в ваш контейнер ключей с двумя ключами, у вас потенциально могут возникнуть проблемы.