static void Main(string[] args) { var rsa = new RSA(128); var plainText = string.Empty; Console.Write("RSA Cipher\nKamil Cieślak @ 2012\nParametry:\n\tp: {0}\n\tq: {1}\n\tn: {2}\n\tphi: {3}\n\te: {4}\n\td: {5}\nKlucz publiczny (e, n): ({4}, {2})\nKlucz prywatny (d, n): ({5}, {2})\n", rsa.P, rsa.Q, rsa.N, rsa.Phi, rsa.E, rsa.D); Console.WriteLine("Podaj tekst do zaszyfrowania: "); plainText = Console.ReadLine(); // converting into ASCII code var ascii = Encoding.ASCII.GetBytes(plainText); var plainTextCode = new List<int>(); foreach (var c in ascii) { plainTextCode.Add((int)BigInteger.ModPow(c, rsa.E, rsa.N)); } // encrypting var encryptedTextList = new List<int>(); var encrypted = RSA.Encrypt(plainText, rsa.E, rsa.N, encryptedTextList); // decrypting var decrypted = RSA.Decrypt(encryptedTextList, rsa.D, rsa.N); // printing results Console.WriteLine("Kod zaszyfrowanego tekstu: "); foreach (var i in encrypted) { Console.Write("{0}", i); } Console.Write('\n'); Console.WriteLine("Deszyfrowanie tekstu: "); foreach (var i in decrypted) { Console.Write("{0}", i); } Console.Write('\n'); Console.ReadKey(); }
static void Main(string[] args) { RSA rsa = new RSA("10", 10, 0); rsa.CipherFullCycle(); }