mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > Factoring

Reply
 
Thread Tools
Old 2006-06-27, 15:29   #1
friedo
 
May 2006
Germany

316 Posts
Default Own Project / Commercial License

Hello.

We plan to factorize large primes (150 Digits and more) in an own commercial Project. Therefore i am searching for "fire and forget" software solutions for distributed factoring specially using windows clients and one server script (php etc.) like nfsnet for example.

Is there any "commercial" software on the market or sw which could be licensed commercially without big adaptions for running in an distributed environment?

Can anyone tell me who is responsible for the nfsnet-client and server scripts to ask for commercial licensing?

Best regards,
friedo
friedo is offline   Reply With Quote
Old 2006-06-27, 16:08   #2
alpertron
 
alpertron's Avatar
 
Aug 2002
Buenos Aires, Argentina

2×683 Posts
Default

Quote:
Originally Posted by friedo
Hello.

We plan to factorize large primes (150 Digits and more) in an own commercial Project. Therefore i am searching for "fire and forget" software solutions for distributed factoring specially using windows clients and one server script (php etc.) like nfsnet for example.
...or more exactly 155 digits (RSA-512). If this is what you mean, forget it.
alpertron is offline   Reply With Quote
Old 2006-06-27, 17:00   #3
VJS
 
VJS's Avatar
 
Dec 2004

13×23 Posts
Default

This sounds like I great idea for a start up, I think you should really start with trial division software. There is quite a bit of software out there just look around, but the best bet for your company would be to write your own in java.

Take the number divide by some unknown randomly generated number... repeat, could be a small program.

Goodluck
VJS is offline   Reply With Quote
Old 2006-06-27, 19:39   #4
Mystwalker
 
Mystwalker's Avatar
 
Jul 2004
Potsdam, Germany

83110 Posts
Default

Or ask the guys at primegrid.com - they even factorize a 193-digit RSA number at the moment.
Mystwalker is offline   Reply With Quote
Old 2006-06-27, 19:57   #5
akruppa
 
akruppa's Avatar
 
"Nancy"
Aug 2002
Alexandria

2,467 Posts
Default

Quote:
Originally Posted by VJS
Take the number divide by some unknown randomly generated number... repeat, could be a small program.

Goodluck
But do a probable primality test on the random numbers first. No point in trying to test composites as factors, because you are looking for the prime factors!

Glad to help,

Alex
akruppa is offline   Reply With Quote
Old 2006-06-27, 21:12   #6
xilman
Bamboozled!
 
xilman's Avatar
 
"π’‰Ίπ’ŒŒπ’‡·π’†·π’€­"
May 2003
Down not across

10,753 Posts
Default

Quote:
Originally Posted by akruppa
But do a probable primality test on the random numbers first. No point in trying to test composites as factors, because you are looking for the prime factors!

Glad to help,

Alex
Alternatively, you could use Fermat's factoring algorithm. It is very easy to program and the innermost loop runs extremely quickly because multiple precision division isn't required.

Even better, Fermat's algorithm is especially efficient when the two factors are close together. Given that most RSA public moduli have the same number of bits, they are inevitably much easier to factor by Fermat's method than are general numbers of the same size.


If you'd like pointers to how Fermat's method works, just ask. It's in Knuth, for instance.


Paul
xilman is online now   Reply With Quote
Old 2006-06-27, 22:38   #7
Uncwilly
6809 > 6502
 
Uncwilly's Avatar
 
"""""""""""""""""""
Aug 2003
101Γ—103 Posts

100110001110002 Posts
Default

Quote:
Originally Posted by friedo
We plan to factorize large primes (150 Digits and more) in an own commercial Project.
You can't factor prime numbers. You can factor a composite that is made of primes that are ~150 digits long.
Uncwilly is offline   Reply With Quote
Old 2006-06-28, 01:42   #8
fetofs
 
fetofs's Avatar
 
Aug 2005
Brazil

1011010102 Posts
Default

Quote:
Originally Posted by xilman
Alternatively, you could use Fermat's factoring algorithm. It is very easy to program and the innermost loop runs extremely quickly because multiple precision division isn't required.
Is there a ceil() equivalent in GMP?
fetofs is offline   Reply With Quote
Old 2006-06-28, 03:13   #9
dsouza123
 
dsouza123's Avatar
 
Sep 2002

66210 Posts
Default

Which Fermat method ?

After analysis and experimentation with the Fermat method using only
addition/subtraction and test for zero/equality,
for larger numbers, for example a 300 digit number which has as factors
two 150 digit primes, it would take a lifetime to get to the second number
that could be part of the solution.

It is far worse than just dividing by odd positive integers of the correct size.
They could be consecutive odds or consecutive odds but skipping 1 out of 3
or random odds.
Also a probable primality test on the odd positive integer may require more
time then just doing the division, and you still wont know if it is a factor
of the number in question.
I haven't done any tests to determine how many divisions per second
are possible on a fast PC.

The Fermat method that effectively tests consecutive squares minus
the number in question for a square, using only additions and squareroot,
for a 300 digit number, can evaluate over half a million per second on a fast PC.

Whether either trial division or the faster Fermat method will find a factor
in a lifetime would mainly depend on testing very near the solution because
even with millions of PCs the search space is enormous.
In the very highly unlikely event that you test extremely near the solution,
either method could find a solution in minutes or hours.
The most likely outcome is never to find a solution in a lifetime.

That is why NFS and similar algorithms are used instead,
with hundreds/thousand of PCs and a few years calculation time
a solution can be found for 300 digit numbers (that have as factors
two primes of equal size).
dsouza123 is offline   Reply With Quote
Old 2006-06-28, 09:29   #10
Phil MjX
 
Phil MjX's Avatar
 
Sep 2004

B916 Posts
Default

Quote:
Originally Posted by VJS
This sounds like I great idea for a start up, I think you should really start with trial division software. There is quite a bit of software out there just look around, but the best bet for your company would be to write your own in java.

Take the number divide by some unknown randomly generated number... repeat, could be a small program.

Goodluck
Analyzing the computer chess programs and especially the way they play finals with tablebases, you may realize that there is a better way to factorize RSA512 numbers : precompute all the 256 bits prime, store them on HD (using a hashing system may help) and simply read the tables to find the appropriate factor...
You can also sell the DVD's containing this "factor tables" and pay off the investment !!!

Philippe.

PS : a first optimization : as in the how-to-win-lottery-systems, you can omit in your tables potential candidates that are very "improbable", as those with ten "1" on a row, or containing many more "0" than "1" and so...

Last fiddled with by Phil MjX on 2006-06-28 at 09:44
Phil MjX is offline   Reply With Quote
Old 2006-06-28, 10:48   #11
Patrick123
 
Patrick123's Avatar
 
Jan 2006
JHB, South Africa

157 Posts
Default

One method that I played around with was along these lines. Primary School Maths.

procedure factor (a,b: string; Count: integer);
var
...sx, sy, t: string;
...x, y, integer;

for x := 0 to 9 do begin
..sx := IntToStr(x) + a;
..if pattern(sx) then continue;
..if TestNum Mod StrToInt(sx) = 0 then begin
.....Print sx;
.....exit;
..end;

..for y := 0 to 9 do begin
.......sy := IntToStr(y) + b;
.......if pattern(sy) then continue;
.......if TestNum Mod StrToInt(sy) = 0 then begin
..........Print sy;
..........exit;
.......end;
.......t := IntToStr( TestNum - StrToInt(sx) * StrToInt(sy))
.......if StrToInt(t) < 0 then break;
.......if Number_of_Zeros_at_End(t) >= Count then
.........factor(sx,sy,Count+1);
..end;
end;

The pattern function filters out numbers like 11111001 etc.
This would of course eliminate billions of numbers at a time thus the larger the number, the more efficient it becomes.

Regards
Patrick

Last fiddled with by Patrick123 on 2006-06-28 at 11:26
Patrick123 is offline   Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Best car license plate or bumper sticker you have seen. Flatlander Lounge 277 2021-05-07 00:27
Prime95 License/Untrusted Versions? Dubslow Software 21 2012-05-04 18:30
Special project #3b - Project 400 schickel Aliquot Sequences 307 2011-10-28 01:29
Special project #3a - Project 300 schickel Aliquot Sequences 29 2011-08-12 17:45
Are commercial PC's becoming more reliable? retina Hardware 22 2008-06-17 01:04

All times are UTC. The time now is 21:16.


Fri Jul 16 21:16:03 UTC 2021 up 49 days, 19:03, 1 user, load averages: 2.01, 1.90, 1.82

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.