My uncle's factorization algorithms
github.com
github.com
It's unclear to me whether there is anything theoretically new in here yet. The algorithms are all familiar to me except for the P^2 + 1 and P^2 + P + 1 algorithms. But don't read too much into that. They are probably well known.
What I can tell you is that there is an extraordinary amount of work in implementing all those algorithms. I do this stuff for a living and it is a tremendously impressive feat for a single individual over any span of time.
I'd be interested in hearing how fast the MPQS is. The state of the art for factoring a number like 840931001586212064794450601167289569811131781103613687750579 on a single core is probably around 6s or so on a modern 2GHz x86 processor.
UBASIC already had a 32 bit x86 assembly optimised MPQS in it, and it performed pretty well actually. So it would be interesting if your uncle improved on that, especially if he had theoretical improvements.
The state of the art for the number field sieve should factor the 79 digit number here: http://www.loria.fr/~zimmerma/records/rsa.html in around 10-20 minutes on a single core, though in general the GNFS is for much larger integers. It seems unlikely that a little UBASIC program could manage those, however.
Having said that, I am still in shock that your uncle actually implemented the GNFS. That is a staggering accomplishment and is something to be genuinely impressed by.
I don't know if you have a gold mine there or the cutting edge life's work of someone from yesteryear.
The program itself requires two files to exist before it can operate. Then it asks for the input number in base 10000 as a set of digits separated by spaces or returns. This is pretty bizarre by today's standards.
It does succeed in factoring very tiny numbers, but it seems to have bugs which prevent it from working for large numbers.
The double large prime variant of the MPQS seems to allow numbers up to a pretty small bound. This strongly indicates that it is not competitive.
I'll see if I can get anywhere with the double large prime variant version (edit: I tried the second program and it fails with the same runtime error), but given the extremely poor state of the code (no comments, full of gotos, no indication of structure, no documentation, no test suite, buggy, very poor interface, etc.) I would say this code is not going to be particularly interesting to modern day researchers.
At the same time, it is a tremendously amazing accomplishment that one man essentially toiled away in secret and created a massive number theory library like this! When I google his name I find nothing. Was he associated with an institution? Did he publish any papers? I know he didn't use the web, so that explains why he doesn't have a web presence, but it is odd not to find him referred to anywhere. Or am I just looking in the wrong place?
Looks like K.Aoki (Kazumaro Aoki) A.KUDO & Y.KIDA used to post to academic factorization related mailing lists see: http://www.loria.fr/~zimmerma/records/6353
I can't think what else would be in the file. I would have guessed the file was generated by the program and would contain relations from a sieving run for the last large factorisation your uncle did. But I also don't see how these files get generated by the code.
Stuff in BASIC coded by somebody in the anonymity of the pre-Internet. Maybe something truly novel in its time or even now. There's something extremely romantic to this, like a rescued roll from the Library of Alexandria.
Naturally, most of that anonymous work will be lost forever. Heck, most of my 8-bit era stuff stored in tapes and 5 1/4 floppies must be dead by now. I had some original Sountracker mod files from Amiga times and when I tried recovering those it was too late.
http://en.wikipedia.org/wiki/Standard_Generalized_Markup_Lan...
PS: Not that I would be able to recognize what some random FORTRAN code did, but it's probably worth poking around the barn.
>> first amateurs who grew up with Personal Computers are starting to die of old age
There are few people older than early 50's who had a computer in high school. Although mortality starts to rise in the early 50's, I wouldn't call this dying of old age.The adult amateurs who went from programmable calculators to early single-board microcomputers are the generation who are starting to die off.
My Dad is of that cohort. In his 40s he went from programmable calculators to building a simple computer with an octal keypad and a row of LEDs for output, to working on an AIM-65, coding in basic and (I think) machine code.
He worked in elevator maintenance, being in charge of service in much of Connecticut for one company. At one point he designed and built, with circuit boards he etched himself, some kind of electronic box which I think the company adopted? Maybe? For some kind of elevator-related purpose. I was never clear on what it did, and he probably doesn't remember now.
He didn't have an academic background that would have exposed him to computing, having joined the Navy at 15. He later took some radio repair/electronics night school classes.
He's 80 now, and has forgotten most of that stuff, and uses a MacBook and an iPad.
http://tech.groups.yahoo.com/group/primenumbers
The group contains experts in this field that manage to do a commendable job of responding to questions at many levels.
It's a shame that your uncle didn't have a chance to connect with them.
Good luck.
Thank you so much for this.
My plan is to get some of these algorithms running and compare running times with the other open source ones available.
I was going to back up the idea that the NSA might potentially be ahead of the public community of number theorists and cryptographers by citing the relative sizes of the two groups. Unfortunately, those numbers are classified. :(
EDIT: I am so intrigued by this that I asked the question above without saying thank you for releasing this. So thank you! I don't know much Fortran but if ever there was something to induce me to dive in, it's this. I've compiled his test program using gfortran and am looking into some of the others.
EDIT (after down vote): I doubt it because back in the day this problem was not as widely recognized as it is today, and no expert in the field today (that I am aware of) thinks we are even close.
Thank you for giving a portion of your inheritance to the world.
Pathetic "contribution"
I find the contradiction amusing.