LINKS
CONTACTS



 
ECM FACTORING

Since the start of Fermatsearch project, users have been requested to offer CPU cycles to factoring purposes.
We gathered people from all over the world, using different factoring programs as Fermat.exe, Proth.exe, PFGW.exe, GMP-Fermat.exe, MFAC.exe and many more.
All these programs have been written using different developments of the same trial-factoring algorithm: given a range of N, a range of k and a factor representation k*2n+1, test all the possible factors in that range.
It is a deterministic algorithm: we are assured that no more factors can be found once the range has been totally searched. All we can do is deepen the range, choosing higher k ranges, or changing our N.
The bad news: the time to complete a range grows as the range is increased, no matter what heuristics are used to lower the number of potential factors.
The good news: we may use different factoring algorithms for those Fermat numbers that reached high levels of trial-factoring.

What is ecm and how does it work?

ECM is the acronym for Elliptic Curves Method.
The history of what are called elliptic curves goes back well more than a century. Originally developed for clssical analysis, elliptic curves have found their way into abstract and computational number theory. Like the prime numbers themselves, elliptic curves have the wonderful aspect of elegance, complexity and power. Elliptic curves are not only celebrated algebraic constructs; they also provide considerable leverage in regard to prime number nd factorization study.
The method is not deterministic, because you cannot tell if a factor is present after the calculation of a number of "curves". But what is a curve? In ecm, points over an elliptic curve are "mapped" to numbers: calculating a curve is roughly the same as checking for a factor.
It is considered a statistic method, as the algorithm evaluate the probability of finding a factor after the calculation of a number of curves with definite bounds. As bounds increase, the probability of finding a bigger factor grows.
The bad news: this method requires huge amounts of phisical memory.
The good news: for small Fermat numbers (up to F20) we can check for factors up to 60 digits long!

Ecm parameters

To evaluate the chances of a factor, four parameters are needed:
 


 
The first parameter is the exponent of our Fermat number to test. Different implementations of ecm software require to input the number as a power of 2 or as a (very long) integer.
The second parameter represents the number of curves to run. For Fermat numbers you can just take a look at the table below.
The third and fourth parameters represent the bounds applied to the curve: usually B2 = 100*B1.
The higher the bounds, the higher the memory request, the higher the time requested for each curve, the higher the factor you may find out.
 
Digits in factor2530354045505560
Bound #150,000250,0001,000,0003,000,00011,000,00044,000,000110,000,000260,000,000
Curves to test2806401,5804,7009,70017,10046,500112,000


 
Ecm reservation

Of course you don't need to know all the mathematical background that lies under the ecm.
All you need to do to join this search is download a program (prime95, written by George Woltman, perfectly suits the need), input the parameters and run. Read the ecm_howto file to learn how to start, and download the file lowp.txt: this fie must reside in the same folder where Prime95.exe is. When you run your curves, send the results.txt file to me: and I'll add your results to the project and contact George Woltman.
To correctly choose the parameters, go to this link or look at this excel file, and choose the B1 bounds that fulfil your needs (obviously, curves that are "done" don't need to be "rerun").
 
As a matter of neatness, I would like to receive ECM curves done grouped by at least 10: it will be easier for me and George Woltman to take care of the ECM ranges if they don't arrive in sparse mode.
 
On the next table you will find some timings for ecm on F14 using GMP-ECM on a 2.4GHz AMD64 with large B2 bounds.
 

DigitsB1B2memstage 1 msstage 2 ms
152,000119,80582,4302,608
2011,0001,359,4601513,53011,881
2550,00011,757,1353361,78951,133
30250,000116,469,99897310,837249,851
351,000,000839,549,7802491,247,434963,127
403,000,0004,016,636,5145443,756,4432,741,624
4511,000,00025,577,181,64067913,831,55511,372,366
5043,000,00054,934,226

 
Here are times in seconds for one ECM curve (B2=100*B1) on F14 using Prime95 24.6 on a 2.66GHz P4:
 
DigitsB1stage 1 secstage 2 sec
2550,000116
30250,0005425
351,000,00022093
403,000,000661259
4511,000,0002408885
5043,000,00095333329

 
For more accurate timings on curves to do, download this excel file.


Copyright © MoreWare 2003 ...