Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        private static void Decode()
        {
            Console.WriteLine("Enter your module: ");
            var module = new MyBigInteger(Console.ReadLine());

            Console.WriteLine("Enter your secret exponent: ");
            var secretExponent = new MyBigInteger(Console.ReadLine());

            Console.WriteLine("Enter your crypted data per line: ");
            var crypted = new List <MyBigInteger>();
            var line    = Console.ReadLine();

            while (!string.IsNullOrEmpty(line))
            {
                crypted.Add(new MyBigInteger(line));
                line = Console.ReadLine();
            }

            var chars  = AlgorithmRSA.Decode(crypted, secretExponent, module);
            var result = Encoding.ASCII.GetString(chars.Select(x => (byte)x).ToArray());

            Console.WriteLine($"Your message was {result}");
        }