I've been playing around with MPQS on UBASIC, to
see if I could find a factor of M727 and/or RSA232 ...
First I tried the approach of using very large
factor bases ... i.e. I'd sieve to 131071 using UBASIC's PRMDIV function,
then check the remaining residues up to about 2^48 using P-1 ... after
testing 2^32 numbers, I had a couple of full-relations, useless
combinations ...
When dealing with numbers of this magnitude, that
kind of sieving needs to be done on distributed-computing platforms, with
hundreds of machines taking little sections to sieve and reporting back to a
main server ... like PrimeNet etc.
So then I tried a different approach of using a
much smaller factor base, and looking only for partials / double partials
...
For the formula F(x) = a2x2 + 2abx + c, where b2 -
N = a2c, and checking over the range x = 0 to x = 2^32-1 ...
First I look for F(n) where it is the product of
small primes x one large prime P (proved by pseudo-primality testing on a few
bases),
For each P, I find the two roots n1,n2 == 0 mod P
for F(x),
For n1,n2, then n1+P, n2+P, n1+2P, n2+2P, n1+3P etc
I checked F(m) where it is product of small primes x P x one other large prime Q
(again proved by pseudo-primality testing),
Then I scan through the resulting list looking for
two results with different n and P, and the same Q ...
So I end up with some Partial Relations
thus
f ---> some small primes x P1
g ---> some small primes x P2
h ---> some small primes x P1 x
Q
j ---> some small primes x P2 x
Q
And a bit of work ...
Uf = a2f + b, Vf = a2 x some small primes x
P1
Ug = a2g + b, Vg = a2 x some small primes x P2
Uh = a2h + b, Vh = a2 x
some small primes x P1 x Q
Uj = a2j + b, Vj = a2 x some small primes x P2 x
Q
Then, multiplying the relations together ...
Uf.Uf.Ug.Ug.Uh.Uh.Uj.Uj == a2.a2.a2.a2.lots of small primes multiplied
together.P1.P2.P1.P2.Q.Q (mod N)
If the 'lots of small primes multiplied together' is square, I end up
with a Complete Relation of the form X2 == Y2 (mod N)
Unfortunately, after checking about 1000 Complete Relations derived with
the above system, they all have one common problem ...
X == Y (mod N) ... so (X-Y) is always a multiple of N ... and
GCD(X-Y,N) = 1 ...Damn !!!
What am I missing here ... I understood that with MPQS, each
complete relation had a 50:50 chance of yielding a factor of N ?
On much smaller N's, i.e. 2^64 or below, the 50:50 yield looks correct, but
when I try on larger N's i.e. M727 or RSA-232, I'm not getting anything
...
I suspect my process of "manufacturing relations" is flawed, can anyone
advise what I'm doing wrong ?
Dave
|