Beispiel #1
0
        // Function to decrypt the image
        private string DecryptImage(string imageToDecryptHex)
        {
            var ImageHex        = imageToDecryptHex.ToCharArray();
            var i               = 0;
            var decryptResponse = "";

            ProgressBar_decrypt.Maximum = ImageHex.Length;
            try
            {
                for (; i < ImageHex.Length; i++)
                {
                    Application.DoEvents();
                    var c = "";
                    ProgressBar_decrypt.Value = i;
                    int temp;
                    for (temp = i; ImageHex[temp] != '-'; temp++)
                    {
                        c = c + ImageHex[temp];
                    }
                    i = temp;
                    var xx = Convert.ToInt32(c);
                    decryptResponse = decryptResponse + (char)RSAalgorithm.BigMod(xx, _d, _n);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(decryptResponse);
        }
Beispiel #2
0
        private void SendKeyButtonOnClick(object sender, EventArgs e)
        {
            var ip = GetIpAddress();

            Selector_decrypt.Enabled = true;
            if (Button_sendPublicKey.Text == "Send Public Key")
            {
                if (prime1TextBox.Text == "" || prime2TextBox.Text == "" || ETextBox.Text == "")
                {
                    MessageBox.Show("Enter Valid Details For RSA", "ERROR");
                }
                else
                {
                    if (HelperLibrary.IsPrime(Convert.ToInt16(prime1TextBox.Text)))
                    {
                        _rsaP = Convert.ToInt16(prime1TextBox.Text);
                    }
                    else
                    {
                        prime1TextBox.Text = "";
                        MessageBox.Show("Enter Prime Number");
                        return;
                    }

                    if (HelperLibrary.IsPrime(Convert.ToInt16(prime2TextBox.Text)))
                    {
                        _rsaQ = Convert.ToInt16(prime2TextBox.Text);
                    }
                    else
                    {
                        prime2TextBox.Text = "";
                        MessageBox.Show("Enter Prime Number");
                        return;
                    }

                    _rsaE = Convert.ToInt16(ETextBox.Text);

                    // Help taken from SO
                    //  Calculating Private Key
                    _n = RSAalgorithm.n_value(_rsaP, _rsaQ);
                    var phi = RSAalgorithm.cal_phi(_rsaP, _rsaQ);
                    _d = RSAalgorithm.cal_privateKey(phi, _rsaE, _n);
                    MessageBox.Show(
                        "Please Connect to the server IP : " + ip + "\nPublic Key = (" + _rsaE + " ," + _n +
                        ")\nPrivate Key = (" + _d + "," + _n + ")", "Alert");
                    Button_sendPublicKey.Text = "Receive";

                    // Sending Public key
                    Console.WriteLine("Sending public key");
                    File.WriteAllText("Key.txt", _rsaE + "+" + _n);
                    MessageBox.Show("Sending Public key");
                }
            }
            else
            {
                MessageBox.Show("Public Key integrity check passed.");
            }
        }
Beispiel #3
0
        // Function to encrypt the image
        private string EncryptImage(string imageHexToEncrypt)
        {
            MessageBox.Show("RSA_E = " + _rsaE + "\nn = " + _n);
            var imageHex      = imageHexToEncrypt;
            var imageHexArray = imageHex.ToCharArray();
            var cond          = "";

            Progressbar_encryptImage.Maximum = imageHexArray.Length;
            for (var i = 0; i < imageHexArray.Length; i++)
            {
                Application.DoEvents();
                Progressbar_encryptImage.Value = i;
                if (cond == "")
                {
                    cond = cond + RSAalgorithm.BigMod(imageHexArray[i], _rsaE, _n);
                }
                else
                {
                    cond = cond + "-" + RSAalgorithm.BigMod(imageHexArray[i], _rsaE, _n);
                }
            }

            return(cond);
        }