public static bool IsPrime(int[] number)
        {
            int[] zero = new int[1];
            if (MathOperations.HigherThan(number, zero) <= 0)
            {
                return(false);
            }
            return(Miller_Rabin.MillerRabin(NumberConverter.BitsArraystoString(number), 700));


            //var num = NumberConverter.BitsArraystoString(number);

            //if (num < 2)
            //{
            //    return false;
            //}

            //if (num == 2)
            //{
            //    return true;
            //}

            //if (num % 2 == 0)
            //{
            //    return false;
            //}

            //var sqrtOfNumber = BigIntegerExtension.Sqrt(num);

            //for (BigInteger index = sqrtOfNumber; index >=3; index -= 2) //skip even numbers
            //{
            //    if (num % index == 0)
            //    {
            //        return false;
            //    }
            //}

            //return true;
            //var num = NumberConverter.BitsArraystoString(number);
            //if (num == 1) return false;
            //if (num == 2) return true;
            //if (num == 3) return true;
            //if (num % 2 == 0) return false;
            //if (num % 3 == 0) return false;



            //BigInteger i = 6;
            //while (i * i < num)
            //{
            //    if (num % i == 0 || num % (i + 2) == 0)
            //        return false;
            //    i += 6;
            //}

            //return true;
        }
        public int[] GetCoprimeInteger(int[] p)
        {
            int[] tmp;
            do
            {
                tmp = ng.GetP(p.Length);
            } while (MathOperations.HigherThan(tmp, p) > -1);

            return(tmp);
        }
        public int[] GetRandomNumberSmallerThan(int[] p)
        {
            int[] tmp = new int[p.Length];
            do
            {
                tmp = GetNumber(p.Length);
            } while (MathOperations.HigherThan(tmp, p) != -1);


            return(tmp);
        }
Beispiel #4
0
        public bool IsCorrect(Elgamal elgamal)
        {
            int[] x2 = GetX2(elgamal);

            int[] br = GetBR(elgamal);
            int[] rs = GetRS(elgamal);
            var   x1 = GetX1(elgamal, br, rs);

            var result = MathOperations.HigherThan(x1, x2) == 0;

            return(result);
        }