A Software Library for Multi Precision Arithmetic

A Software Library for Multi Precision Arithmetic

Kannan Balasubramanian (Mepco Schlenk Engineering College, India) and Ahmed Mahmoud Abbas (The American University in Cairo, Egypt)
DOI: 10.4018/978-1-5225-2915-6.ch016


The most prevalent need for multiple precision arithmetic, often referred to as “bignum” math, is within the implementation of public key cryptography algorithms. Algorithms such as RSA and Diffie-Hellman require integers of significant magnitude to resist known cryptanalytic attacks. As of now, a typical RSA modulus would be at least greater than 10^309. However, modern programming languages such as ISO C and Java only provide intrinsic support for integers that are relatively small and single precision. This chapter describe the modules provided by one such library for the C Programming Language.
Chapter Preview

A Package For Multiple Precision Arithmetic

A package for using multiple Precision Arithmetic called the LibTomMath (Denis, 2006) that can be used with C programs is described. Appendix A (http://www.opensource.apple.com/source/Heimdal/Heimdal-247.7/lib/hcrypto/libtommath/tommath.h)lists all the function calls that can be made using this library. A multiple precision integer of n-digits shall be denoted as 978-1-5225-2915-6.ch016.m01β and represents the integer 978-1-5225-2915-6.ch016.m02978-1-5225-2915-6.ch016.m03. The term “mp_int” shall refer to a composite structure that contains the digits of the integer it represents, and auxiliary data required to manipulate the data., It is assumed that a “multiple precision integer” and an “mp_int” are assumed synonymous. The structure of mp_int is used in the LibTomMath package is given below:

Complete Chapter List

Search this Book: