A Flexible Architecture for Modular Arithmetic Hardware Accelerators based on RNS
- 356 Downloads
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.
KeywordsResidue 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.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.
- 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.Antão, S., & Sousa, L. (2012). Modular arithmetic implementation with the Residue Number System (RNS). Technical report INESC-ID, Lisbon.Google Scholar
- 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.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.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.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.
- 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.
- 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
- 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.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.