Implementation of RSA Signatures on GPU and CPU Architectures

  • Eduardo Ochoa-Jiménez
  • , Luis Rivera-Zamarripa
  • , Nareli Cruz Cortés
  • , Francisco Rodríguez-Henríquez

Research output: Contribution to journalArticleScientificpeer-review

27 Citations (Scopus)

Abstract

This paper reports a constant-time CPU and GPU software implementation of the RSA exponentiation by using algorithms that offer a first-line defense against timing and cache attacks. In the case of GPU platforms the modular arithmetic layer was implemented using the Residue Number System (RNS) representation. We also present a CPU implementation of an RNS-based arithmetic that takes advantage of the parallelism provided by the Advanced Vector Extensions 2 (AVX2) instructions. Moreover, we carefully analyze the performance of two popular RNS modular reduction algorithms when implemented on many- and multi-core platforms. In the case of CPU platforms we also report that a combination of the schoolbook and Karatsuba algorithms for integer multiplication along with Montgomery reduction, yields our fastest modular multiplication procedure. In comparison with previous literature, our software library achieves faster timings for the computation of the RSA exponentiation using 1024-, 2048- and 3072-bit private keys.
Original languageEnglish
Pages (from-to)9928-9941
Number of pages14
JournalIEEE Access
Volume8
DOIs
Publication statusPublished - 2020
Externally publishedYes
Publication typeA1 Journal article-refereed

Keywords

  • Public key cryptography
  • RSA
  • RNS arithmetic
  • GPU
  • CPU
  • AVX2 instructions

Fingerprint

Dive into the research topics of 'Implementation of RSA Signatures on GPU and CPU Architectures'. Together they form a unique fingerprint.

Cite this