Esempio n. 1
0
        private void button3_Click(object sender, EventArgs e)
        {
            ulong P             = Convert.ToUInt64(this.textBox1.Text);
            ulong G             = Convert.ToUInt64(this.textBox2.Text);
            ulong X             = Convert.ToUInt64(this.textBox3.Text);
            bool  Is_p_prime    = IsPrime.Check(P);
            bool  Is_g_lesser_p = G < P;
            bool  Is_x_lesser_p = X < P;

            if (!Is_p_prime || !Is_g_lesser_p || !Is_x_lesser_p)
            {
                if (!Is_p_prime)
                {
                    MessageBox.Show("Число P не простое", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                if (!Is_g_lesser_p)
                {
                    MessageBox.Show("Число G больше P", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                if (!Is_x_lesser_p)
                {
                    MessageBox.Show("Число X больше P", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                ElGamal ElG = new ElGamal(P, G, X);
                this.textBox4.Text = G.ToString();
                this.textBox5.Text = P.ToString();
                this.textBox6.Text = ElG.GetOpenKey().ToString();
            }
        }
Esempio n. 2
0
        private void getKeys_Click(object sender, EventArgs e)
        {
            bool IsFirstPrime  = IsPrime.Check(P);
            bool IsSecondPrime = IsPrime.Check(Q);

            if (!IsFirstPrime || !IsSecondPrime)
            {
                if (!IsFirstPrime)
                {
                    MessageBox.Show("Первое число не простое", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                if (!IsSecondPrime)
                {
                    MessageBox.Show("Второе число не простое", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                RSA      rsa  = new RSA(P, Q);
                ulong    N    = P * Q;
                RSA.Keys keys = rsa.GetKeys();
                OpenKey   = keys.openKey;
                SecretKey = keys.secretKey;
            }
        }
Esempio n. 3
0
        private void button1_Click(object sender, EventArgs e)
        {
            ulong P             = Convert.ToUInt64(this.textBox1.Text);
            ulong Q             = Convert.ToUInt64(this.textBox2.Text);
            bool  IsFirstPrime  = IsPrime.Check(P);
            bool  IsSecondPrime = IsPrime.Check(Q);

            if (!IsFirstPrime || !IsSecondPrime)
            {
                if (!IsFirstPrime)
                {
                    MessageBox.Show("Первое число не простое", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                if (!IsSecondPrime)
                {
                    MessageBox.Show("Второе число не простое", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                RSA      rsa  = new RSA(P, Q);
                RSA.Keys keys = rsa.GetKeys();
                this.textBox3.Text = keys.openKey.ToString();
                this.textBox4.Text = keys.secretKey.ToString();
            }
        }
Esempio n. 4
0
        private void button1_Click(object sender, EventArgs e)
        {
            bool Is_p_prime    = IsPrime.Check(P);
            bool Is_g_lesser_p = G < P;
            bool Is_x_lesser_p = X < P;

            if (!Is_p_prime || !Is_g_lesser_p || !Is_x_lesser_p)
            {
                if (!Is_p_prime)
                {
                    MessageBox.Show("Число P не простое", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                if (!Is_g_lesser_p)
                {
                    MessageBox.Show("Число G больше P", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                if (!Is_x_lesser_p)
                {
                    MessageBox.Show("Число X больше P", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                ElGamal elG = new ElGamal(P, G, X);
                OpenKey = elG.GetOpenKey();
            }
        }
Esempio n. 5
0
        private void button1_Click(object sender, EventArgs e)
        {
            bool Is_p_prime = IsPrime.Check(P);

            if (!Is_p_prime)
            {
                if (!Is_p_prime)
                {
                    MessageBox.Show("Число P не простое", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                ulong[]      RandomStorage;
                List <ulong> Random = new List <ulong>();
                for (ulong i = 3; i < P / 2; ++i)
                {
                    if (0 == (P - 1) % i && IsPrime.Check(i))
                    {
                        Random.Add(i);
                    }
                }
                RandomStorage = Random.ToArray();
                Random rand = new Random();
                Q = RandomStorage[rand.Next(0, RandomStorage.Length)];

                ulong[]      RandomStorage2;
                List <ulong> Random2 = new List <ulong>();
                for (ulong i = 1; i < P - 1; ++i)
                {
                    if (1 == ExpByModule.Exponentiation(i, Q, P))
                    {
                        Random2.Add(i);
                    }
                }
                RandomStorage2 = Random2.ToArray();
                Random rand2 = new Random();
                A = RandomStorage2[rand2.Next(0, RandomStorage2.Length)];

                Random rand3 = new Random();
                SecretKey = (ulong)rand3.Next(1, (int)Q - 1);
                OpenKey   = ExpByModule.Exponentiation(A, SecretKey, P);
            }
        }
Esempio n. 6
0
        private void getX_Click(object sender, EventArgs e)
        {
            bool IsFirstPrime = IsPrime.Check(P);
            bool IsAlesserP   = A < P;

            if (!IsFirstPrime || !IsAlesserP)
            {
                if (!IsFirstPrime)
                {
                    MessageBox.Show("Первое число не простое", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                if (!IsAlesserP)
                {
                    MessageBox.Show("Число А больше или равно Р", "Ошибка ввода", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                Random rand = new Random();
                X = (ulong)rand.Next(1, (int)P - 2);
            }
        }