Journal of Signal Processing Systems

, Volume 76, Issue 3, pp 249–259 | Cite as

A Flexible Architecture for Modular Arithmetic Hardware Accelerators based on RNS

  • Samuel Antão
  • Leonel Sousa


Modular arithmetic is a building block for a variety of applications potentially supported on embedded systems. An approach to turn modular arithmetic more efficient is to identify algorithmic modifications that would enhance the parallelization of the target arithmetic in order to exploit the properties of parallel devices and platforms. The Residue Number System (RNS) introduces data-level parallelism, enabling the parallelization even for algorithms based on modular arithmetic with several data dependencies. However, the mapping of generic algorithms to full RNS-based implementations can be complex and the utilization of suitable hardware architectures that are scalable and adaptable to different demands is required. This paper proposes and discusses an architecture with scalability features for the parallel implementation of algorithms relying on modular arithmetic fully supported by the Residue Number System (RNS). The systematic mapping of a generic modular arithmetic algorithm to the architecture is presented. It can be applied as a high level synthesis step for an Application Specific Integrated Circuit (ASIC) or Field Programmable Gate Array (FPGA) design flow targeting modular arithmetic algorithms. An implementation with the Xilinx Virtex 4 and Altera Stratix II Field Programmable Gate Array (FPGA) technologies of the modular exponentiation and Elliptic Curve (EC) point multiplication, used in the Rivest-Shamir-Adleman (RSA) and (EC) cryptographic algorithms, suggests latency results in the same order of magnitude of the fastest hardware implementations of these operations known to date.


Residue number system (RNS) Modular arithmetic Cryptography Embedded systems Electronic design automation (EDA) 



This work was supported by national funds through FCT - Fundação para a Ciência e Tecnologia, under the project PEst-OE/EEI/LA0021/2013.


  1. 1.
    Antão, S., Bajard, J.C., Sousa, L. (2010). Elliptic curve point multiplication on GPUs. In IEEE international conference on application-specific systems architectures and processors - ASAP (pp. 192–199). Rennes: IEEE. doi: 10.1109/ASAP.2010.5541000.
  2. 2.
    Antão, S., Bajard, J.C., Sousa, L. (2011). RNS based elliptic curve point multiplication for massive parallel architectures. The Computer Journal 2011 - Oxford Journals, 55(5), 629–647. doi: 10.1093/comjnl/BXR119.Google Scholar
  3. 3.
    Antão, S., Chaves, R., Sousa, L. (2009). Compact and flexible microcoded elliptic curve processor for reconfigurable devices. In IEEE symposium on field programmable custom computing machines - FCCM (pp. 193–200). Napa: IEEE. doi: 10.1109/FCCM.2009.18.
  4. 4.
    Antão, S., & Sousa, L. (2012). Modular arithmetic implementation with the Residue Number System (RNS). Technical report INESC-ID, Lisbon.Google Scholar
  5. 5.
    Antão, S., & Sousa, L. (2013). The CRNS framework and its application to programmable and reconfigurable cryptography. ACM Transactions on Architecture and Code Optimization, 9(4), 33:1–33:25. doi: 10.1145/24006822400692.CrossRefGoogle Scholar
  6. 6.
    Bajard, J.C., Didier, L.S., Kornerup, P. (2001). Modular multiplication and base extensions in residue number systems. In IEEE symposium on computer arithmetic - ARITH (pp. 59–65). Vail: IEEE. doi: 10.1109/ARITH.2001.930104.
  7. 7.
    Guillermin, N. (2010). A high speed coprocessor for elliptic curve scalar multiplications over Fp. In S. Mangard, F.X. Standaert (Eds.), Lecture notes in computer science: advances in cryptology - cryptographic hardware and embedded systems - CHES 2010 (pp. 48-64). Berlin/Heidelberg: Springer.Google Scholar
  8. 8.
    Güneysu, T., & Paar, C. (2008). Ultra high performance ECC over NIST primes on commercial FPGAs. In E. Oswald, P. Rohatgi (Eds.), Lecture notes in computer science: advances in cryptology - cryptographic hardware and embedded systems - CHES 2008 (pp. 62–78). Berlin/Heidelberg: Springer. doi: 10.1007/978-3-540-85053-3_5.
  9. 9.
    Kawamura, S., Koike, M., Sano, F., Shimbo, A. (2000). Cox-rower architecture for fast parallel montgomery multiplication. In B. Preneel (Ed.),Lecture notes in computer science: advances in cryptology - EUROCRYPT 2000 (pp. 523–538). Berlin/ Heidelberg: Springer. doi: 10.1007/3-540-45539-6_37.
  10. 10.
    Montgomery, P.L. (1985). Modular multiplication without trial division. Mathematics of Computation, 44(170), 519–521. doi: 10.1090/S0025-5718-1985-0777282-X.CrossRefzbMATHMathSciNetGoogle Scholar
  11. 11.
    Nozaki, H., Motoyama, M., Shimbo, A., Kawamura, S. (2001). Implementation of RSA algorithm based on RNS montgomery multiplication. In Ç.K. Koç, D. Naccache, C. Paar (Eds.), Lecture notes in computer science: advances in cryptology - cryptographic hardware and embedded systems - CHES 2001 (pp. 364–376). Berlin/Heidelberg: Springer. doi: 10.1007/3-540-44709-1_30.
  12. 12.
    Rivest, R.L., Shamir, A., Adleman, L. (1978). A method for obtaining digital signatures and public- key cryptosystems. Communications of the ACM, 21(2), 120–126. doi: 10.1145/359340.359342.CrossRefzbMATHMathSciNetGoogle Scholar
  13. 13.
    Schinianakis, D.M., Fournaris, A.P., Michail, H.E., Kakarountas, A.P., Stouraitis, T. (2009). An RNS implementation of an F p elliptic curve point multiplier. IEEE Transactions on Circuits and Systems I: Regular Papers, 56(6), 1202–1213. doi: 10.1109/TCSI.2008.2008507.CrossRefMathSciNetGoogle Scholar
  14. 14.
    Shenoy, A.P., & Kumaresan, R. (1989). Fast base extension using a redundant modulus in RNS. IEEE Transactions on Computers, 38(2), 292–297.CrossRefzbMATHGoogle Scholar
  15. 15.
    Suzuki, D. (2007). How to maximize the potential of FPGA resources for modular exponentiation. In P. Paillier, I. Verbauwhede (Eds.), Lecture notes in computer science: advances in cryptology - cryptographic hardware and embedded systems - CHES 2007 (pp. 272–288). Berlin/Heidelberg: Springer. doi: 10.1007/978-3-540-74735-2_19.
  16. 16.
    Szerwinski, R., & Güneysu, T. (2008). Exploiting the power of GPUs for asymmetric cryptography. In E. Oswald, P. Rohatgi (Eds.), Lecture notes in computer science: advances in cryptology - cryptographic hardware and embedded systems - CHES 2008 (pp. 79–99). Berlin/Heidelberg: Springer. doi: 10.1007/978-3-540-85053-3_6.

Copyright information

© Springer Science+Business Media New York 2014

Authors and Affiliations

  1. 1.Signal Processing Systems GroupINESC-IDLisbonPortugal
  2. 2.Department of Electrical and Computer Engineering, Instituto Superior TécnicoUniversidade de LisboaLisbonPortugal

Personalised recommendations