An FPGA Implementation for a Flexible-Length-Arithmetic Processor Employing the FDFM Processor Core Approach

Algorithms requiring fast manipulation of multiple-length numbers are usually implemented in hardware. However, hardware implementation, using HDL (Hardware Description Language) for instance, is a laborious task and the quality of the solution relies heavily on the designer expertise. The main contribution of this work is to present a flexible-lengtharithmetic processor based on FDFM (Few DSP slices and Few Memory blocks) approach that supports arithmetic operations on multiple-length numbers using FPGAs (Field Programmable Gate Array). The proposed processor has been implement on the Xilinx Virtex-6 FPGA. Arithmetic instructions of the proposed processor architecture include addition, subtraction, and multiplication of integer numbers exceeding 64-bits. To reduce the burden of implementing algorithm directly on the FPGA, applications requiring multiple-length arithmetic operations are written in a C-like language and translated into a machine program. The machine program is then transferred and executed on the proposed architecture. A 2048-bit RSA encryption/decryption implementation has been used to assess the goodness of the proposed approach. Experimental results shows that the computing time, using the proposed architecture, of a 2048-bit RSA encryption takes only 2.2 times longer than a direct FPGA implementation. Furthermore, by employing multiple FDFM cores for the same task, the computing time reduces considerably. key words: multiple-length-numbers, multiple-length-arithmetic, FPGA, RSA, montgomery modular multiplication

[1]  David A. Patterson,et al.  Computer Architecture, Fifth Edition: A Quantitative Approach , 2011 .

[2]  G. T. Nicol,et al.  Flex : the lexical scanner generator , 1993 .

[3]  Bo Song,et al.  The Parallel FDFM Processor Core Approach for CRT-based RSA Decryption , 2012, Int. J. Netw. Comput..

[4]  Paul G. Comba,et al.  Exponentiation Cryptosystems on the IBM PC , 1990, IBM Syst. J..

[5]  Kunjan Patel,et al.  High Performance Programmable FPGA Overlay for Digital Signal Processing , 2011, ARC.

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

[7]  Nils J. Nilsson,et al.  Artificial Intelligence , 1974, IFIP Congress.

[8]  Koji Nakano,et al.  A Flexible-Length-Arithmetic Processor Using Embedded DSP Slices and Block RAMs in FPGAs , 2013, 2013 First International Symposium on Computing and Networking.

[9]  Koji Nakano,et al.  The Parallel FDFM Processor Core Approach for Neural Networks , 2011, 2011 Second International Conference on Networking and Computing.

[10]  Amine Bermak,et al.  Configurable Blocks for Multi-precision Multiplication , 2008, 4th IEEE International Symposium on Electronic Design, Test and Applications (delta 2008).

[11]  Charles Eric LaForest High-speed soft-processor architecture for FPGA overlays , 2015 .

[12]  Koji Nakano,et al.  A Flexible-Length-Arithmetic Processor Based on FDFM Approach in FPGAs , 2015, 2015 Third International Symposium on Computing and Networking (CANDAR).

[13]  Akhil Kalathungal,et al.  An Arbitrary Precision Integer Arithmetic Library for FPGA s , 2013 .

[14]  Bo Song,et al.  An RSA Encryption Hardware Algorithm Using a Single DSP Block and a Single Block RAM on the FPGA , 2010, 2010 First International Conference on Networking and Computing.

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