A hardware algorithm for modular multiplication/division

A mixed radix-4/2 algorithm for modular multiplication/division suitable for VLSI implementation is proposed. The algorithm is based on Montgomery method for modular multiplication and on the extended Binary GCD algorithm for modular division. Both algorithms are modified and combined into the proposed algorithm so that almost all the hardware components are shared. The new algorithm carries out both calculations using simple operations such as shifts, additions, and subtractions. The radix-2 signed-digit representation is used to avoid carry propagation in all additions and subtractions. A modular multiplier/divider based on the algorithm performs an n-bit modular multiplication/division in O(n) clock cycles where the length of the clock cycle is constant and independent of n. The modular multiplier/divider has a linear array structure with a bit-slice feature and can be implemented with much smaller hardware than that necessary to implement both multiplier and divider separately.

[1]  Holger Orup,et al.  Simplifying quotient determination in high-radix modular multiplication , 1995, Proceedings of the 12th Symposium on Computer Arithmetic.

[2]  Peter Kornerup High-radix modular multiplication for cryptosystems , 1993, Proceedings of IEEE 11th Symposium on Computer Arithmetic.

[3]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[4]  David W. Matula,et al.  A redundant binary Euclidean GCD algorithm , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

[5]  Çetin Kaya Koç,et al.  High-Radix Design of a Scalable Modular Multiplier , 2001, CHES.

[6]  Naofumi Takagi,et al.  A VLSI algorithm for modular multiplication/division , 2003, Proceedings 2003 16th IEEE Symposium on Computer Arithmetic.

[7]  Tolga Acar,et al.  Analyzing and comparing Montgomery multiplication algorithms , 1996, IEEE Micro.

[8]  C. D. Walter,et al.  Systolic Modular Multiplication , 1993, IEEE Trans. Computers.

[9]  N. Koblitz Elliptic curve cryptosystems , 1987 .

[10]  Manfred Josef Aigner,et al.  Randomized Addition-Subtraction Chains as a Countermeasure against Power Attacks , 2001, CHES.

[11]  P. L. Montgomery Modular multiplication without trial division , 1985 .

[12]  Jean-Claude Bajard,et al.  An RNS Montgomery Modular Multiplication Algorithm , 1998, IEEE Trans. Computers.

[13]  K.K. Parhi,et al.  Modular multiplication in the residue number system with application to massively-parallel public-key cryptography systems , 2000, Conference Record of the Thirty-Fourth Asilomar Conference on Signals, Systems and Computers (Cat. No.00CH37154).

[14]  Adi Shamir,et al.  A method for obtaining digital signatures and public-key cryptosystems , 1978, CACM.

[15]  Taher ElGamal,et al.  A public key cyryptosystem and signature scheme based on discrete logarithms , 1985 .

[16]  Paul C. Kocher,et al.  Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems , 1996, CRYPTO.

[17]  Whitfield Diffie,et al.  New Directions in Cryptography , 1976, IEEE Trans. Inf. Theory.

[18]  Naofumi Takagi,et al.  A VLSI Algorithm for Modular Division Based on the Binary GCD Algorithm(Special Section on Discrete Mathematics and Its Applications) , 1998 .

[19]  Paul C. Kocher,et al.  Differential Power Analysis , 1999, CRYPTO.

[20]  Shuzo Yajima,et al.  Modular Multiplication Hardware Algorithms with a Redundant Representation and Their Application to RSA Cryptosystem , 1992, IEEE Trans. Computers.

[21]  Reinhard Posch,et al.  Modulo Reduction in Residue Number Systems , 1995, IEEE Trans. Parallel Distributed Syst..

[22]  Atsushi Shimbo,et al.  Cox-Rower Architecture for Fast Parallel Montgomery Multiplication , 2000, EUROCRYPT.

[23]  H. T. Kung,et al.  Systolic VLSI Arrays for Polynomial GCD Computation , 1984, IEEE Transactions on Computers.

[24]  Jean-Sébastien Coron,et al.  Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems , 1999, CHES.