public static void Main()
Console.WriteLine("1-Encrypt\n2-Decrypt");
int choice =int.Parse(Console.ReadLine());
Console.WriteLine("RSA Key generation");
Console.WriteLine("Enter any large Prime number: ");
int p=int.Parse(Console.ReadLine());
Console.WriteLine("Enter a Second Prime number (also large) : ");
int q=int.Parse(Console.ReadLine());
Console.WriteLine("Enter any number relatively prime to {0} ",z);
int d=int.Parse(Console.ReadLine());
Console.WriteLine("Public Key (e,n) : {0},{1} ",e,n);
Console.WriteLine("Private Key (d,n) : {0},{1} ",d,n);
Console.WriteLine("Enter Text to Encrypt NB: In small caps!");
string name =Console.ReadLine();
byte [] plain = Encoding.ASCII.GetBytes(name);
Console.WriteLine("Encryprion....\nCiphertext");
foreach (byte r in plain)
double p1 = Math.Pow(P,e);
string strAlpha = ((char)C).ToString();
Console.WriteLine("Enter d part of private key (*,n)");
int d=int.Parse(Console.ReadLine());
Console.WriteLine("Enter n part of private key (d,*) :");
int n=int.Parse(Console.ReadLine());
Console.WriteLine("Decryprion....\nDecrypts one bit at a time");
Console.WriteLine("Enter digit no 1 of the Cyphertext (C), Enter -1 if done..");
double nr=int.Parse(Console.ReadLine());
double nr1=Math.Pow(nr,d);
double decryptednr1 =nr1%n;
Console.WriteLine("Character number {0}, on the English Alphabets",decryptednr1);
Console.WriteLine("Enter digit number {0} of the Cyphertext (C), Enter -1 if done..",count);
double dig=double.Parse(Console.ReadLine());
double dig1=Math.Pow(dig,d);
double decrypted =dig1%n;
Console.WriteLine("Character number {0}, on the English Alphabets",decrypted);
}else {Console.WriteLine("Invalid input");