private static void EncodeFile() { Console.Write("Enter first prime number: "); var p = new MyBigInteger(Console.ReadLine()); Console.Write("Enter second prime number: "); var q = new MyBigInteger(Console.ReadLine()); var module = p * q; Console.WriteLine($"Your module: {module}"); var phi = (p - MyBigInteger.One) * (q - MyBigInteger.One); var publicExponent = AlgorithmRSA.CalculatePublicExponent(phi); var secretExponent = AlgorithmRSA.CalculateSecretExponent(publicExponent, phi); Console.WriteLine($"Your secret exponent: {secretExponent}"); var message = File.ReadAllBytes(@"C:\Users\diyll\Laboratory\ConsoleApp1\ConsoleApp1\FileToEncode.txt") .Select(x => (int)x); var encoded = AlgorithmRSA.Encode(message, publicExponent, module); Console.WriteLine("Your crypted data:"); foreach (var integer in encoded) { Console.WriteLine(integer.ToString()); } }
private static void Encode() { Console.Write("Enter first prime number: "); var p = new MyBigInteger(Console.ReadLine()); Console.Write("Enter second prime number: "); var q = new MyBigInteger(Console.ReadLine()); var module = p * q; Console.WriteLine($"Your module: {module}"); var phi = (p - MyBigInteger.One) * (q - MyBigInteger.One); var publicExponent = AlgorithmRSA.CalculatePublicExponent(phi); var secretExponent = AlgorithmRSA.CalculateSecretExponent(publicExponent, phi); Console.WriteLine($"Your secret exponent: {secretExponent}"); Console.WriteLine("Enter your message:"); var message = Encoding.ASCII .GetBytes(Console.ReadLine() ?? string.Empty) .Select(x => (int)x) .ToArray(); var encode = AlgorithmRSA.Encode(message, publicExponent, module); Console.WriteLine("Your crypted data:"); foreach (var integer in encode) { Console.WriteLine(integer); } }
public void CorrectDecode(string value, string number1, string number2) { var p = new MyBigInteger(number1); var q = new MyBigInteger(number2); var module = p * q; var phi = (p - MyBigInteger.One) * (q - MyBigInteger.One); var exponent = AlgorithmRSA.CalculatePublicExponent(phi); var secretExponent = AlgorithmRSA.CalculateSecretExponent(exponent, phi); var chars = value.ToCharArray().Select(x => (int)(byte)x).ToArray(); var encoded = AlgorithmRSA.Encode(chars, exponent, module); var result = AlgorithmRSA.Decode(encoded, secretExponent, module); CollectionAssert.AreEqual(result, chars); }