The Zipped archive MIRACL.ZIP contains all the source code for the latest version of MIRACL: a Multiprecision Integer and Rational Arithmetic C/C++ library. The full Manual is available in both MS Word (MANUAL.DOC) and Postscript format (MANUAL.ZIP). This Portable C library implements a full implementation of Multiprecision Arithmetic. In particular it includes all the primitives necessary to implement Number Theoretic based methods for Public Key Cryptography and Digital signature, such as Diffie Hellman, Elliptic curves, RSA and DSS. Indeed example programs implement many of these methods. Also programs are included to implement all modern Factoring algorithms - Brent-Pollard, Pollard p-1, p+1, Elliptic Curve, MPQS. Some ready-to-run PC executables are also included. Code contains conditional in- line assembly support for 80x86 processors, but is fully portable. Several free Windows Command Prompt executables are also available for download. In many case the associated main source code file is also available. Read the comments at the start of the source code for full instructions, or simply run the application without parameters. In particular read the comments at the start of SEA.CPP for instructions on how to download and run the free MUELLER/PROCESS/MODPOL/SEA applications, which implement the Schoof-Elkies-Atkin-Mueller algorithm for counting points on a GF(p) elliptic curve. The MIRACL library is Shareware and can be used freely for Academic, non-profit making or non-commercial use. Commercial Users must register. The term "commercial use" means any for-profit use of the MIRACL library. Any commercial use of MIRACL requires a license which may be obtained from Shamus Software Ltd Single user license 1,000 euro for first developer/workstation. Per additional user 500 euro Server license 5,000 euro Updates are free. LICENSE TYPES Single user license MIRACL is installed and used on one single machine, which may not be used as a server. Server license MIRACL is installed and used on one server machine and there is no limit on the number of clients. When buying any kind of license, you have the right to install and to develop your own programs using MIRACL. You are also allowed to sell the binaries of your own programs that have been compiled using MIRACL. There are no runtime royalties. All licenses are non-exclusive. If you sell software that was developed using MIRACL, there is no requirement to cite MIRACL. Redistributing your copy of MIRACL to a third party is not allowed. A commercial license for the installation and use of MIRACL is always given for one machine. Installing or copying the software to another machine is not allowed. For more information contact . Some Public-Domain PC executables that use the MIRACL library are also included in this package. The address for correspondence is:- Shamus Software Ltd, 4 Foster Place North Ballybough Dublin 3 Ireland Contact: Michael Scott Phone (353) 1 7045537 FAX (353) 1 7045442 EMAIL Webpage To access the software, download the file To decompress into a DOS directory MIRACL, execute the command pkunzip -d miracl This creates a suitable sub-directory structure within a MIRACL directory. If using Linux, read the following carefully ------------------------------------------------ RedHat Linux 6.0 MIRACL i386 installation 1. Unzip the MIRACL.ZIP file using the utility unzip, into an empty directory unzip -j -aa -L The -j ignores the directory structure inside MIRACL.ZIP. The -aa converts all text files to Unix format, and -L ensures that all filenames are lower-case. 2. Perform a tailored build of the MIRACL library by opening an X-Term, and typing bash linux 3. All the MIRACL applications (except RATCALC) can be then be built, as desired. Remember to link all C applications to the miracl.a library. C++ applications must be linked as well to one or more of big.o monty.o elliptic.o crt.o flash.o object files etc. See the xxx.bat files for examples. Some applications that require floating-point support may also require -lm in the compile command line. Make sure that your Linux PATH points to the current directory, so that exectables can be run. Note that Linux already has (a rather pathetic) factor program. To avoid name clashes you might rename MIRACL's "factor" program to "facter", or somesuch. ------------------------------------------------ The manual is available in PostScript form as MANUAL.ZIP and in MS Word format as MANUAL.DOC The text file MIRACL_UPDATE.DOC describes the latest changes and additions The files TIMINGS.DOC (MS Word) and TIMINGS.PS (Postscript) describe how MIRACL achieves fast performance for 80x86 processors when used to implement cryptographic algorithms. Latest Version - V5.22 Last updated February 2007 Earlier versions are available MIRACL43.ZIP - Version 4.3 MIRACL45.ZIP - Version 4.5 MIRACL72.ZIP - Version 4.72 MIRACL86.ZIP - Version 4.85 MIRACL510.ZIP - Version 5.10