public Form1() { InitializeComponent(); textBoxP.Text = "2147483647"; textBoxG.Text = NumbersOperations.Random(2, BigInteger.Parse(textBoxP.Text) - 1).ToString(); textBoxK_B.Text = NumbersOperations.Random(2, BigInteger.Parse(textBoxP.Text) - 1).ToString(); }
public static void Encode(BigInteger p, BigInteger g, BigInteger k_B, BigInteger m_A, out BigInteger r, out BigInteger e) { var d_B = BigInteger.ModPow(g, k_B, p); BigInteger k_A; do { k_A = NumbersOperations.Random(2, p - 1); }while (BigInteger.GreatestCommonDivisor(k_A, p - 1) != 1); r = BigInteger.ModPow(g, k_A, p); e = (BigInteger.ModPow(d_B, k_A, p) * (m_A % p)) % p; }