//Генерация большого простого числа по алгоритму Эль-Гамаля private BigInteger BigSimpleElgamal(int NeededSize) { bool check = false; BigInteger n = 0;//Большое простое число BigInteger F = 0; BigInteger R = 0; List <BigInteger> SimplesForN = null; while (!check) { SimplesForN = new List <BigInteger>(); F = BIR.MakeF(NeededSize / 2 + 1, ref SimplesForN); R = BIR.MakeF(NeededSize / 2); R = R >> 1; R = R << 1; n = R * F + 1; check = TestsForSimplicity.Poklington(n, 100, SimplesForN); } SimplesList = SimplesForN; return(n); }
public BigInteger GenerateSimple(int NeededSize) { bool check = false; BigInteger n = 0;//Большое простое число BigInteger F = 0; BigInteger R = 0; List <BigInteger> SimplesForN = null; BigIntegerRandom BIR = new BigIntegerRandom(); while (!check) { SimplesForN = new List <BigInteger>(); F = BIR.MakeF(NeededSize / 2 + 1, ref SimplesForN); R = BIR.MakeF(NeededSize / 2); R = R >> 1; R = R << 1; n = R * F + 1; check = TestsForSimplicity.Poklington(n, 100, SimplesForN); } return(n); }