| Developer name | DI Management Services Pty Limited |
| Software license | Freeware |
| Size | Installation archive size is 80896 bytes |
| Operations systems | Installation of this software is supported on Windows All |
| Category |
BigDigits was developed to be a library of multiple-precision arithmetic routines written in ANSI C to carry out large natural number calculations as required in cryptography calculations. This code has been built using the algorithms in Knuth Vol 2 and Menezes as the primary references.
This library includes the classical multiple-precision arithmetic algorithms from Knuth: add, subtract, multiply and divide. It also includes modular multiplication, exponentiation and inversion; number theory functions such as greatest common divisor; the Rabin-Miller Probabilistic Primality Test procedure from FIPS-186 and ANSI X9.42 to show that a large integer is probably prime; and other utilities to manipulate and handle multiple-precision numbers.
The code includes a complete set of wrapper functions called using the BIGD handle (the "bd" library). These are all the functions you should need. Memory allocation is handled automatically, except the initial creation and final release of resources. There is an option to use Intel Assembler to speed up the critical single-digit multiply and divide operations, and another option to make use of native 64-bit integers.
What's New in This Release: [ read full changelog ]
· Added sliding-window exponentiation to speed up the ModExp functions.
Added new bd functions:
· bdJacobi computes the Jacobi (Legendre) symbol.
· bdGetBit returns the value of a bit at a given position in a number.
· bdSetBit sets the bit at a given position in a number.
· bdNotBits computes bitwise a = NOT a.
· Added the new functions mpIsNegative, mpChs and mpAbs in anticipation of adding full signed integer functionality in the next version.
· Added the NO_ALLOCS option to compile the "mp" library without using any memory allocation.
· Added the USE_64WITH32 option to use the 64-bit integer types (long long) if available on a 32-bit machine.
· Improved the zeroisation and destroy macros.
· Moved the type declarations for the exact-width types to a separate include file.
· Re-organised and re-named the ancillary source and include files (yet again!).
· Deprecated the bd*Ex functions in favour of re-named "safe" bd*_s functions.