Ответ Blowdart действительно правильный.Однако для ясности я должен указать, что если вы хотите, чтобы ваш экземпляр RSACryptoServiceProvider содержал и открытый и закрытый ключи сертификата X509 (при условии, что сертификат имеет закрытый ключ).Проверьте свойство сертификата HasPrivateKey.
RSACryptoServiceProvider rsa;
if (cert.HasPrivateKey)
rsa = (RSACryptoServiceProvider)cert.PrivateKey;
else
rsa = (RSACryptoServiceProvider)cert.PublicKey.Key;
В случае RSA, когда присутствует только открытый ключ, параметры RSA будут только Exponent и Modulus, все остальные будут нулевыми;Если, с другой стороны, имеется закрытый ключ, параметры RSA будут содержать D, DP, DQ, экспоненту, InverseQ, модуль, P и Q.