RSA Public Key Acceleration on CUDA GPU

  • Jitendra V. TembhurneEmail author
  • S. R. Sathe
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 394)


Cryptography is a technique of using number theoretical mathematics for the key generation, encryption and decryption of confidential information. Cryptography has many uses in real-world applications such as Digital Right Management, E-Commerce, Secret Broadcasting and Financial Cryptography, etc. In this paper, we mainly focus on the speedup of the RSA public-key cryptosystem algorithm. We proposed the high-performance parallel RSA algorithms on parallel hardware such as Graphics Processing Units (GPUs). We used NVIDIA GPU Quadro FX 3800 to exploit the many-core parallelism for the implementation of highly parallel and efficient RSA algorithm on Compute Unified Device Architecture (CUDA). The experiments conducted on many-core GPUs show the enhanced speedup of proposed parallel RSA algorithms compared to single CPU RSA algorithm implementation. We observed that the speedup achieved by the GPU dominates the single CPU RSA implementation.


CUDA GPU RSA Parallel algorithm 



This work was financially supported by the TEQIP-II scheme (2011–2012) for technical quality improvement by Ministry of Human Resource Development (MHRD), Government of India.


  1. 1.
    Rivest RL, Shamir A, Adleman L. A method for obtaining digital signatures and public-key cryptosystems. Commun ACM. 1978;21(2):120–6 New York, NY.CrossRefMathSciNetzbMATHGoogle Scholar
  2. 2.
    Kunth DE. Seminumerical algorithms: the art of computer programming, 3rd edn. vol. 2. Reading: Addison-Wesley; 2008.Google Scholar
  3. 3.
    Gathen J, Gerhard J. Modern computer algebra, 3rd edn. Cambridge University Press: Cambridge; 1999.Google Scholar
  4. 4.
    Menezes AJ, Oorschot PC, Vanstone SA. Handbook of applied cryptography, CRC Press: Boca Raton; 1996.Google Scholar
  5. 5.
    Buttlar D, Farrell J, Nichols B. Pthreads programming: a POSIX standard for better multiprocessing, O’Reilly Media, 1996.Google Scholar
  6. 6.
    OpenMP Application Program Interface, Version 4.0, July 2013.Google Scholar
  7. 7.
    Berkeley UPC—Unified Parallel C,
  8. 8.
    Open MPI: Open Source High Performance Computing,
  9. 9.
    Sanders J, Kandrot E, CUDA by example: an introduction to general-purpose GPU programming, 1st edn. Addison-Wesley: Upper Saddle River; 2010.Google Scholar
  10. 10.
    Shand M, Vuillemin J. Fast implementations of RSA cryptography. In: 11th symposium on computer arithmetic, Windsor, Ontario, p. 252–9, July 1993.Google Scholar
  11. 11.
    Pearson D. A parallel implementation of RSA. Computer Science Department, Cornell University, Ithaca, NY, Technical Report, July 1996.Google Scholar
  12. 12.
    Cilardo A, Mazzeo A, Mazzocca N, Romano L. A novel unified architecture for public-key cryptography. In: Proceedings of the design, automation and test in Europe, Italy, 2005, vol. 3, p. 52–7.Google Scholar
  13. 13.
    Wu C-L, Lou D-C, Lai J-C, Chang T-J. Fast parallel exponentiation algorithm for RSA public-key cryptosystem. Informatica. 2006;17(3):445–62.MathSciNetzbMATHGoogle Scholar
  14. 14.
    Savas E, Tenca AF, Koc CK. A scalable and unified multiplier architecture for finite field GF(p) and GF(2 m). In: International workshop on cryptographic hardware and embedded systems, Worcester, MA, USA, LNCS, Springer, vol. 1965, pp. 277–292, August 2000.Google Scholar
  15. 15.
    Fan W, Chen X, Li X. Parallelization of RSA algorithm based on compute unified device architecture. In: 9th international conference on grid and cooperative computing (GCC-2010), Nanjing, pp. 174–8, Nov 2010.Google Scholar
  16. 16.
    Lin Y-S, Lin C-Y, Lou D-C. Efficient parallel RSA decryption algorithm for many-core GPUs with CUDA. In: Proceeding of the international conference on telecommunication systems, modeling and analysis, American telecommunications systems management association, Czech Technical University, Prague, Czech Republic, May 2012.Google Scholar
  17. 17.
    Boneh D. Twenty years of attacks on the RSA cryptosystem. Not Am Math Soc. 1999;46(2):203–13.MathSciNetzbMATHGoogle Scholar
  18. 18.
    NVIDIA Corporation, CUDA C Programming guide, Version 6.0, February 2014.Google Scholar

Copyright information

© Springer India 2016

Authors and Affiliations

  1. 1.Department of Computer Science and EngineeringVisvesvaraya National Institute of TechnologyMaharashtraIndia

Personalised recommendations