General comments on the UBASIC source code for the CURRIN Method
factoring programs.
NOTE : The complete UBASIC system, including several general method
factoring programs and primality utilities, is included in the file
UB865.zip. The UBHELP.xxx text file, included in UB865.zip, is the full
documentation for the UBASIC environment.
The UBASIC programs are distributed publicly as demonstrations of the
factoring algorithms developed by Fletcher Currin and the Currin
Research Group. UBASIC version 8.2 was obtained by the Group from a
Compuserve posting as an environment for manipulating large integers
with IBM-compatible personal computers. Through subsequent
communications with one of UBASIC's creators, Yuji Kida
(kida@rikkyo.ac.jp), the Group obtained a later release, version
8.65. To run the Currin UBASIC (*.ub) programs, only the UBIBM32.exe
(Intel 386 and up) and UBCONST7.dat files are required. These files
should be in the same directory with the programs.
Run UBIBM32.exe and use the PC Function Keys -
F1, ENTER to load a UBASIC (*.ub) program
F5 to run a program
Ctrl-Break to interrupt
F10 to resume
type "system" to exit UBASIC
The demonstration programs are generic in nature. There are no special
functions or UBASIC-specific routines implemented (except the
"randomize" function in RAND4272.ub). The source codes (see SOURCE.txt
document) could easily be keyed into any BASIC interpreter/compiler and
run, though the size of integers handled will be limited by the software.
These demonstration programs have been presented in a simple
format intentionally. The avoidance of subroutine structures will make
them easy to rewrite in other languages if desired. There has been no
attempt to optimize the programs for a particular hardware or software
environment.
The variable names used may seem quite illogical. The variables and
constants used by the Currin Research Group have been derived over
months and years of work. In many cases, the current alpha letters and
names are abbreviations of highly descriptive references used during
the research and development effort. We have decided to retain our
"pet" names. We apologize for any confusion.
The programs :
1) NEWALG01.ub
This program factors composite odd integers into all factors,
prime or composite. Note that this program starts with the two
largest factors of the composite; that is, the large factors closest in
value to each other. (The program ends when the original composite
is the first factor ("A") and and 1 is the second factor ("B"). This will be the
only solution for a prime number, and it is a primality proof).
2) NEWALG02.ub
This is esssentially the same program as NEWALG01.ub, except the
factors ("A" and "B") are computed from a different combination of internal
variables.
3) PFACTORS.ub
This program has been personally developed by Fletcher Currin to
demonstrate a unique PRIME factoring algorithm. This program
can handle odd or even integer input. Some factors are not factored
to primes, but these will be small enough (1 or 2 digits) to be obvious.
This is very much a "work in progress" as an optimization method.
4) RAND4272.ub
This program accepts an input integer ("Y") greater than 800 and less
than 4273. It uses this as a power of 2 (2^Y - 1), computes factors using a
randomize function, multiplies the factors to form composites,
then factors the randomized composites. The program will generally
factor the composites, regardless of size, in 0 to 500
iterations ("N"=0 to 500). The constraints of the construction of
the composites are :
The two large factors have the same number of digits.
The factors have the same values in the first 51% of the digits.
The factors have randomized values in the last 49% of the digits.
NOTE : At INPUT integer ("Y") greater that 1270, solution occurs at "N"=0.
5) RSA129XX.ub
This is essentially NEWALG01.ub with the number of iterations
(variable "N") preset to factor the 129-digit composite known as RSA
129. This composite number was factored in 1994 by a joint effort
of numerous volunteers and computers around the world. The
program demonstrates that the CURRIN Method is capable of
factoring large RSA Data Security, Inc. public key composites.
None of the sample programs is currently optimized to factor such
large composites any faster than other traditional methods.