Для начала нам нужно получить открытый и закрытый ключи, далее их нужно где-то сохранить для последующей работы.

Затем взять нужные данные, сконвертировать их в массив байтов и зашифровать Ну а затем расшифровать. Собственно открытым мы шифруем, закрытым дешифруем. Собственно вот пример кода который все иллюстрирует

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            RSACryptoServiceProvider RsaKey = new RSACryptoServiceProvider();
            string publickey = RsaKey.ToXmlString(false); //получим открытый ключ
            string privatekey = RsaKey.ToXmlString(true); //получим закрытый ключ
 
            
 
            File.WriteAllText("private.xml", privatekey, Encoding.UTF8);
            File.WriteAllText("public.xml", publickey, Encoding.UTF8);
 
 
            byte[] EncryptedData;
            byte[] data = new byte[1024];
            data = Encoding.UTF8.GetBytes("Hello");
            EncryptedData = RsaKey.Encrypt(data, false);
 
 
            byte[] DecryptedData = new byte[1024];
            DecryptedData = RsaKey.Decrypt(EncryptedData, false);
 
 
            RSACryptoServiceProvider RsaKey_n = new RSACryptoServiceProvider();
            RsaKey_n.FromXmlString(publickey + privatekey); //можно использовать только открытый ключ, или пару открытый и закрыты 
            DecryptedData = new byte[1024];
            DecryptedData = RsaKey.Decrypt(EncryptedData, false);
 
 
            Console.Read();
        }
     }       
}