![]() |
|
|
#1 |
|
May 2006
Germany
316 Posts |
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 |
|
|
|
|
|
#2 | |
|
Aug 2002
Buenos Aires, Argentina
2×683 Posts |
Quote:
|
|
|
|
|
|
|
#3 |
|
Dec 2004
13×23 Posts |
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 |
|
|
|
|
|
#4 |
|
Jul 2004
Potsdam, Germany
83110 Posts |
Or ask the guys at primegrid.com - they even factorize a 193-digit RSA number at the moment.
|
|
|
|
|
|
#5 | |
|
"Nancy"
Aug 2002
Alexandria
2,467 Posts |
Quote:
Glad to help, Alex |
|
|
|
|
|
|
#6 | |
|
Bamboozled!
"πΊππ·π·π"
May 2003
Down not across
10,753 Posts |
Quote:
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 |
|
|
|
|
|
|
#7 | |
|
6809 > 6502
"""""""""""""""""""
Aug 2003
101Γ103 Posts
100110001110002 Posts |
Quote:
|
|
|
|
|
|
|
#8 | |
|
Aug 2005
Brazil
1011010102 Posts |
Quote:
|
|
|
|
|
|
|
#9 |
|
Sep 2002
66210 Posts |
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). |
|
|
|
|
|
#10 | |
|
Sep 2004
B916 Posts |
Quote:
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 |
|
|
|
|
|
|
#11 |
|
Jan 2006
JHB, South Africa
157 Posts |
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 |
|
|
|
![]() |
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 |