public DiscreteLogAlgorithmsInfoForm() { InitializeComponent(); textBox1.Select(0, 0); // textBox2.Select(0, 0); base1 = new BigInteger(r.Next(100000) + 2); base2 = new BigInteger(r.Next(100000) + 2); mod1 = CryptoMath.genSimpleRand(8); if (mod1 == base1) { mod1++; } mod2 = CryptoMath.genSimpleRand(8); if (mod2 == base2) { mod1++; } BigInteger rnd1 = CryptoMath.genRand(100000); BigInteger rnd2 = CryptoMath.genRand(100000); num1 = BigInteger.ModPow(base1, rnd1, mod1); num2 = BigInteger.ModPow(base2, rnd2, mod2); Task1Label.Text = base1.ToString() + "^x = " + num1.ToString() + " mod " + mod1.ToString(); Task2Label.Text = base2.ToString() + "^x = " + num2.ToString() + " mod " + mod2.ToString(); }
private void genpgBtn_Click(object sender, EventArgs e) { string pstr; switch (digitsBox.Text) { case "p40": pstr = "7524548124131735373612526345481757634861"; BigInteger.TryParse(pstr, out p); g = 7; break; case "p41": pstr = "61571157514825784611687343327637886854113"; BigInteger.TryParse(pstr, out p); g = 3; break; default: p = CryptoMath.genSimpleRand(digits); g = CryptoMath.calculateFakePrimitiveRoot(p); break; } pBox.Text = p.ToString(); gBox.Text = g.ToString(); }
//генерация р private void generatepBtn_Click(object sender, EventArgs e) { p = CryptoMath.genSimpleRand(digits); gtextBox.Text = ""; xtextBox.Text = ""; ytextBox.Text = ""; ptextBox.Text = p.ToString(); }
private void RandomDataButton_Click(object sender, EventArgs e) { Random rand = new Random(); int size = rand.Next(11) + 2; BigInteger M = 0; while (!CryptoMath.isPrime((M - 1) / 2)) { M = CryptoMath.genSimpleRand(size); } MBox.Text = M.ToString(); ABox.Text = (CryptoMath.genRand(rand.Next(size - 1) + 1) + 2).ToString(); BBox.Text = (CryptoMath.genRand(rand.Next(size - 1) + 1)).ToString(); }
private void generatepBtn_Click(object sender, EventArgs e) { modulo = CryptoMath.genSimpleRand(digits); pBox.Text = modulo.ToString(); }