8 - Modular arithmetic and residue number systems
Published online by Cambridge University Press: 05 March 2013
Summary
Introduction
In many applications integer computations are to be performed modulo some given constant. One such area is cryptology, where often multiplications, inversions, and exponentiations are to be performed modulo some very large integer. Hence we shall here investigate algorithms for such operations in their own right, but also because these can be used as primitives for the implementation of multiple modulus systems, also denoted residue number systems and abbreviated to RNSs. Here an integer is represented by a set of residues (the values of the integer modulo a set of given integer moduli, often chosen to be prime numbers).
In such systems computations in a large integer domain can be performed truly in parallel on completely independent processors (often called “channels”), one for each modulus from the set of moduli, and thus operating in a much smaller domain. Due to this independence, additions can be performed “carry-free” in the sense that there is no interaction between the computations of the channels, each of which is operating on integers from a smaller domain. The same applies to multiplication, and as we have pointed out in Chapter 3, such arithmetic is one way to minimize the hj-separable sets, and thus to decrease the computation time by exploiting parallelism. Addition, subtraction, and multiplication in particular can thus be efficiently implemented, whereas other operations like division and comparisons are much more difficult.
- Type
- Chapter
- Information
- Finite Precision Number Systems and Arithmetic , pp. 528 - 632Publisher: Cambridge University PressPrint publication year: 2010