HORNS: A homomorphic encryption scheme for Cloud Computing using Residue Number System
We are concerned in this paper with the representation of an integer in a (multiple-modulus) residue number system and, in particular, with an algorithm for changing the base vector of the residue number system. Szabo and Tanaka [1, p.47] describe such an algorithm when each modulus of the second base vector is relatively prime to each modulus of the first base vector. However, we show that a much simpler algorithm exists if we allow the moduli of the second base vector to have factors in common with the moduli of the first base vector (even though the moduli of the second base vector are pairwise relatively prime among themselves). Since the algorithm involves the use of "associated" residue and mixed-radix representations for integers, Section 2 contains an elementary survey of the terminology, notation, and theory behind these two types of representation. Section 3 contains the proofs of the basic theorems upon which our algorithm for residue base conversion is based along with a description of the algorithm. It also contains illustrative examples which demonstrate the power of the algorithm. In this paper we lay the foundation for a subsequent paper in which we propose procedures for extending single-precision residue arithmetic to multiple-precision residue arithmetic.