Fermat's primality test vs. Miller-Rabin

Joseph Ashwood ashwood at msn.com
Thu Dec 1 04:27:57 EST 2005


----- Original Message ----- 
From: "Nicolas Rachinsky" <crypto-0 at ml.turing-complete.org>
Subject: Re: Fermat's primality test vs. Miller-Rabin


>* Joseph Ashwood <ashwood at msn.com> [2005-11-22 02:50 -0800]:
>> 16384 times
>> ..................

> If I remember the proof of MR correctly it assumes an odd number. Were
> all your questions odd?

The random numbers tested were almost certainly not all odd, no filtering 
was done on random.

> If not, please try again with odd numbers only.

I'm running an abbreviated test right now, and it's looking less impressive, 
I have to assume I'm hitting a bad streak somehow. Real bad, 30 numbers 
tested, no primes at all so far, I see one that has passed 79 tests. I have 
to assume I'm missing something really stupid at this point in my new number 
chooser that I don't have the time to find right now. So I'm asking for 
anyones help in pointing out to me, why after I let it go the full 128 runs 
(that is 128 numbers that passed a single round of MR) I didn't get a single 
number to pass more than 79? Did I just hit a really, really bad streak?

The exact code for the function and the support variables :

 static int lenNum = 512;
 static SecureRandom rand = new SecureRandom();
 static BigInteger two = BigInteger.valueOf(2);

 static BigInteger chooseValue()
 {
  //pick a random integer
  BigInteger curNum = null;
  byte [] rawBytes = new byte[lenNum/8];
  rand.nextBytes(rawBytes);
  curNum = new BigInteger(rawBytes);

  //make sure it's odd
  if(curNum.mod(BigInteger.valueOf(2)).compareTo(BigInteger.ZERO) == 0)
  {
   curNum = curNum.add(BigInteger.ONE);
  }

  //it's 0 or negative try again
  if(curNum.compareTo(BigInteger.ZERO)<=0)
  {
   return chooseValue();
  }
  return curNum;

 }

This should choose a 512-bit random odd positive number, unless I'm missing 
something horribly, horribly braindead.

Anyway, back to trying to design a "cool" user interface (anyone who knows 
me knows that the cue to begin laughing, I can't design a UI for sh*t).
                    Joe 



---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at metzdowd.com



More information about the cryptography mailing list