public void GenerateKeys() { var p = SimpleNumbersGenerator.GetBigSimpleNumber(); var q = SimpleNumbersGenerator.GetBigSimpleNumber(); var n = p * q; var eulerFunc = (p - 1) * (q - 1); var e = calculate_E(eulerFunc); var d = Calculate_D(e, eulerFunc); PK = new KeyForRSA(e, n); SK = new KeyForRSA(d, n); CalculatedParameters = new CalculatedParameters(p, q, n, eulerFunc, e, d); }
private void CalculateN() { var random = new Random(); BigInteger q; do { do { q = random.Next(int.MaxValue / 2, int.MaxValue); } while (!SimpleNumbersGenerator.MillerRabinTest(q, 5)); N = 2 * q + 1; } while (!SimpleNumbersGenerator.MillerRabinTest(N, 5)); }