Example #1
0
        public void getPrime()
        {
            var p = PseudoRandomPrimeNumber.GetRandomPrimeNumber2(24);
            var l = PseudoRandomPrimeNumber.IteratedBitcount(p);

            Assert.IsTrue(l / 8 == 3);
        }
Example #2
0
        //#TODO
        //        Choose q first, where q is a random integer in the range 2^159 to 2^160; if q is not prime, try again. Choose k as a random even integer in the range 2^1023/q to 2^1024/q. Multiply q by k and add 1 to compute p, then test if p is prime; if not, try a different k

        //private static BigInteger GetPrimeDivisor(BigInteger p)
        //{
        //    var q =
        //    while ((p - 1) % q != 0)
        //    {
        //        q = PseudoRandomPrimeNumber.GetRandomPrimeNumber(160);
        //    }
        //    return q;
        //}

        public static void GetP(BigInteger q, BigInteger k, out BigInteger newK, out BigInteger p)
        {
            //var k = PseudoRandomPrimeNumber.GetRandomEvenNumber(q);
            p    = q * k;
            newK = k;
            while (!PseudoRandomPrimeNumber.IsPrime(p + 1))
            {
                k    = PseudoRandomPrimeNumber.GetRandomEvenNumber2(q);
                newK = k;
                p    = q * k;
            }
        }
Example #3
0
 public static BigInteger GetPrivateKey(BigInteger q)
 {
     return(PseudoRandomPrimeNumber.GetRandomPrimeNumber(q));
 }
Example #4
0
 public static void GetPublicKeyCompontents(out BigInteger p, out BigInteger q, out BigInteger k, out BigInteger g)
 {
     q = PseudoRandomPrimeNumber.GetRandomPrimeNumber2(160);
     GetP(q, PseudoRandomPrimeNumber.GetRandomEvenNumber2(q), out k, out p);
     g = (GetG(p, q));
 }
Example #5
0
        public void getEvenNumber()
        {
            var even = PseudoRandomPrimeNumber.GetRandomEvenNumber(PseudoRandomPrimeNumber.GetRandomPrimeNumber2(160));

            Assert.IsTrue(even.IsEven);
        }
Example #6
0
        public void GetPrimeNumber()
        {
            var randomNum = PseudoRandomPrimeNumber.GetRandomPrimeNumber2(512);

            Assert.IsTrue(PseudoRandomPrimeNumber.IsPrime(randomNum));
        }