PARALLELIZATION OF RSA CRYPTOGRAPHIC ALGORITHM BASED ON CUDA TECHNOLOGIES

2021;
: pp.5-9
1
Lviv Polytechnic National University
2
Lviv Politecnic National University
3
Lviv Polytechnic National University

The paper examines the efficiency of the application of CUDA technologies for the parallelization of the cryptographic algorithm with the public key. The speed of execution of several implementations of the algorithm is compared: sequential implementation on the CPU and two parallel implementations – on the CPU and GPU. A description of the public key algorithm is presented, as well as properties that allow it to be parallelized. The advantages and disadvantages of parallel implementations are analyzed. It is shown that each of them can be suitable for different scenarios. The software was developed and several numerical experiments were performed. The reliability of the obtained results of encryption and decryption is confirmed. To eliminate the influence of external factors at the time of execution the algorithm was tested ten times in a row and the average value was calculated. Acceleration coefficients for message encryption and decryption algorithms were estimated based on OpenMP and CUDA technology. The proposed approach focuses on the possibility of further optimization through the prospects of developing a multi-core architecture of computer systems and graphic processors.

[1] H. Sutter, "The free lunch is over: A Fundamental Turn Toward Concurrency in Software", Dr. Dobb's Journal, vol. 30, no. 3, p.7, 2005.
https://doi.org/10.1145/1095408.1095421
[2] M. Balandin, E. Shurina, "The Methods for Solving High-dimensional SLAE", NSTU, pp. 28 - 35, 2000.
[3] B. Chapman, G. Jost, "Ruud van der Pas: Using OpenMP: portable shared memory parallel programming", Sc. and Eng. Comp., Cambridge, pp. 164 - 172, 2008.
[4] L. Mochurad, N. Boyko, V.Sheketa, "Parallelization of the Process of Calculating the Optimal Route for a Strike Aircraft Flight", Proc. of 2nd Int. Workshop on Control, pp. 63 - 75, 2020.
[5] C. Yang, C. Huang, C. Lin, "Hybrid CUDA, OpenMP, and MPI parallel programming on multicore GPU clusters", Comp. phys. com., vol. 1, pp. 266 - 269, 2011.
https://doi.org/10.1016/j.cpc.2010.06.035
[6] A. Grama, A. Gupta, G. Karypis, V. Kumar, "Introduction to Parallel Computing", Addison Wesley, p. 856, 2003.

[7] L. Mochurad, N. Boyko, "Technologies of distributed systems and parallel computation:", Publ. House "Bona", 2020.
[8] R. Farber, "CUDA Application Design and Development", Morgan Kaufmann, p.336, 2011.
[9] J. Sanders, E. Kandrot, "CUDA by Example: An Introduction to General Purpose GPU Programming", Addison-Wesley Professional, p. 312, 2010.
[10] S. Barychev, V. Honcharov, R. Serov, ""Fundamentals of Modern Cryptography: A Textbook", RF: Hot Line, 2002.
[11] A. Metolkin, V. Kardashuk, "Studies of the Methods of enhancing the cryptographic stability", Bull EastUkr. University named after V. Dal, vol. 6, pp. 90-95, 2018 (in Ukr.).
[12] Official page of CUDA technologies, 2020. [Online]. Available: https://developer.nvidia.com/cuda-zone.
[13] O. Klochko, E. Kovalenko, "RSA Data encryption algorithm", J.: Science, technics and education, vol 3., pp. 1- 11, 2016.
[14] S. Prasanth, K. Jegadish, B. Partibane, "Efficient Modular Exponentiation Architectures for RSA Algorithm", Int. J. Eng. Res. in Electronic and Com. Eng., vol. 3, no. 5, pp. 230-234, 2016.
[15] S. Saxena, B. Kapoor, "State of the Art Parallel Approaches for RSA Public Key Based Cryptosystem", Int. J. on Comp. Sc. & Appl. (IJCSA), Vol.5, No.1, Febr. 2015.
https://doi.org/10.5121/ijcsa.2015.5108
[16] D. Chang, M. Kantardzic, M. Ouyang, "Hierarchical Clustering with CUDA/GPU", ISCA PDCCS, pp. 7-12, 2009.
[17] L. Mochurad, N. Boyko, N. Stanasiuk, "Forecasting stock prices and accounting for stock market on multicore computers", Int. Workshop on Conflict Man. in Glob. Inf. Networks, pp. 276-289, 2019.