public Entity(BigInteger p, BigInteger q) { BigInteger n = p * q; BigInteger fi = (p - 1) * (q - 1); BigInteger e = RandomSystem.GenerateRandomBigNumber(2, fi); while (gcd(e, fi) != 1) { e = RandomSystem.GenerateRandomBigNumber(2, fi); } BigInteger d = gcdExtended(e, fi); d = (d % fi + fi) % fi; this.publicKeyN = n; this.publicKeyE = e; this.privateKey = d; Console.WriteLine("p=" + p.ToString()); Console.WriteLine("q=" + q.ToString()); Console.WriteLine(); Console.WriteLine("n=" + n.ToString()); Console.WriteLine("fi=" + fi.ToString()); Console.WriteLine(); Console.WriteLine("e=" + e.ToString()); Console.WriteLine("d=" + d.ToString()); }
static void GenerateKey() { A = new Entity(RandomSystem.GeneratePrimeRandomBigNumber(), RandomSystem.GeneratePrimeRandomBigNumber()); }