Faster Double-Size Modular Multiplication from Euclidean Multipliers
A novel technique for computing a 2n-bit modular multiplication using n-bit arithmetic was introduced at CHES 2002 by Fischer and Seifert. Their technique makes use of an Euclidean division based instruction returning not only the remainder but also the integer quotient resulting from a modular multiplication, i.e. on input x, y and z, both ⌊xy/ z⌋ and xy mod z are returned. A second algorithm making use of a special modular ‘multiply-and-accumulate’ instruction was also proposed.
In this paper, we improve on these algorithms and propose more advanced computational strategies with fewer calls to these basic operations, bringing in a speed-up factor up to 57%. Besides, when Euclidean multiplications themselves have to be emulated in software, we propose a specific modular multiplication based algorithm which surpasses original algorithms in performance by 71%.
KeywordsModular multiplication crypto-processors embedded cryptographic software efficient implementations RSA
- 3.Barrett, P.: Implementing the Rivest Shamir and Adleman public key encryption algorithm on a standard digital signal processing. In: Odlyzko, A.M. (ed.) CRYPTO 1986. LNCS, vol. 263, pp. 311–323. Springer, Heidelberg (1987)Google Scholar
- 8.Quisquater, J.-J.: Fast modular exponentiation without division. In: Rump session of EUROCRYPT 1990, Arhus, Denmark (1990)Google Scholar
- 10.Walter, C.D.: Faster modular multiplication by operand scaling. In: Feigenbaum, J. (ed.) CRYPTO 1991. LNCS, vol. 576, pp. 313–323. Springer, Heidelberg (1992)Google Scholar