Порівняльний аналіз функцій обчислення модульної експоненти

dc.citation.epage67
dc.citation.issue1
dc.citation.journalTitleУкраїнський журнал інформаційних технологій
dc.citation.spage63
dc.citation.volume4
dc.contributor.affiliationНаціональний університет “Львівська політехніка”
dc.contributor.affiliationТОВ "ЮніСервіс"
dc.contributor.affiliationТОВ "СофтСерв"
dc.contributor.affiliationLviv Polytechnic National University
dc.contributor.affiliationLtdS "Uniservice"
dc.contributor.affiliationLtdS "Softserve"
dc.contributor.authorПроцько, І. О.
dc.contributor.authorРикмас, Р. В.
dc.contributor.authorГрищук, О. В.
dc.contributor.authorProtsko, I. O.
dc.contributor.authorRykmas, R. V.
dc.contributor.authorGryshchuk, O. V.
dc.coverage.placenameЛьвів
dc.coverage.placenameLviv
dc.date.accessioned2024-03-20T09:41:10Z
dc.date.available2024-03-20T09:41:10Z
dc.date.created2022-02-28
dc.date.issued2022-02-28
dc.description.abstractОбчислення модульної експоненти для великих чисел широко використовується для знаходження дискретного логарифму, в теоретико-числових перетвореннях та в криптографічних алгоритмах. Для ефективного обчислення модульної експоненти проводяться дослідження нових методів, алгоритмів та засобів їх реалізації. Виділяють три напрями методів модульного піднесення до степеня: загальне модульне піднесення до степеня, та обчислення модульної експоненти з фіксованим показником або з фіксованою основою. Розроблено спеціальні функції для виконання піднесення до степені за модулем у математичних і криптографічних програмних бібліотеках. У роботі проведено порівняльний аналіз вільнодоступних функцій обчислення модульної експоненти з бібліотек Crypto++, OpenSSL, Pari/GP та MPIR та розроблених трьох функцій на основі алгоритму бінарного зсуву справа на ліво. Для роботи з великими числами у розроблених функціях використовується окремий тип числових даних з бібліотеки MPIR. Розроблені функції реалізують бінарний ітераційний алгоритм в одному основному потоці, у двох потоках та одному потоці з використанням передобчислення. За основу порівняння вибрано усереднений тривалість виконання обчислення модульної експоненти для псевдовипадкових даних розрядністю 1К і 2К біт, що відповідає розрядності біля 300 і 600 десяткових знаків. Результати часу виконання, що зведені у таблицю, показують, що найшвидше обчислюється модульна експонента функцією з бібліотеки OpenSSL в універсальних комп'ютерних системах. Реалізації математичними та криптографічними програмними бібліотеками функції обчислення модульної експоненти використовує більш оптимальний алгоритм множення за модулем, так зване множення Монтгомері. У розроблених трьох функціях використовуються операції множення за модулем для множників менших за значення модуля. Окремо проаналізовано функцію з використанням передобчислення залишків для фіксованої основи та модуля, що може ефективно використовуватись для обчислення дискретного логарифму.
dc.description.abstractThe computation of the modular exponentiation for big numbers is widely used to find the discrete logarithm, in number-theoretic transforms and in cryptographic algorithms. To efficient compute the modular exponent, new methods, algorithms and means of their implementation are being developed. There are three directions of computational method of modular exponentiation: general modular exponentiation, and computation of the modular exponentiation with a fixed exponent or with a fixed base. Special functions have been developed to perform modular exponentiation in mathematical and cryptographic software libraries. The paper compares the freely available functions of computing the modular exponentiation from the Crypto ++, OpenSSL, Pari / GP and MPIR libraries and developed three functions based on the right-to-left binary shift algorithm. A separate type of numeric data from the MPIR library is used to work with big numbers in the developed functions. The developed functions implement a binary iterative algorithm in one main stream, in two streams and one stream using precomputation. The comparison is based on the average time of execution of the modular exponentiation for pseudo-random data with 1K and 2K bits, which corresponds to the size of about 300 and 600 decimal signs. The runtime results summarized in the table show that the modular exponentiation is computed the fastest by a function from the OpenSSL library, which is almost twice smaller than the function from the Crypto ++ library and three times smaller than the MPIR function in universal computer systems. The implementation of the function of computing the modular exponentiation by mathematical and cryptographic software libraries uses a more optimal modulus multiplication algorithm, the so-called Montgomery multiplication. The developed three functions use multiplication by modulo operations for factors smaller than the module value. The function using precomputation of the remainders for the fixed basis and the module is analyzed separately. After all, in the testing process, the time of precomputation and determination of the periodicity of residues for this function is not taken into account. Further parallelization of the computation of parts of a multi-bit exponent and the use of the Montgomery multiplication algorithm will allow efficient use of the developed function with precomputation for the calculation of the discrete logarithm.
dc.format.extent63-67
dc.format.pages5
dc.identifier.citationПроцько І. О. Порівняльний аналіз функцій обчислення модульної експоненти / І. О. Процько, Р. В. Рикмас, О. В. Грищук // Український журнал інформаційних технологій. — Львів : Видавництво Львівської політехніки, 2022. — Том 4. — № 1. — С. 63–67.
dc.identifier.citationenProtsko I. O. Comparison analysis of the functions a computation of modular exponentiation / I. O. Protsko, R. V. Rykmas, O. V. Gryshchuk // Ukrainian Journal of Information Technology. — Lviv : Lviv Politechnic Publishing House, 2022. — Vol 4. — No 1. — P. 63–67.
dc.identifier.doidoi.org/10.23939/ujit2022.01.063
dc.identifier.issn2707-1898
dc.identifier.urihttps://ena.lpnu.ua/handle/ntb/61523
dc.language.isouk
dc.publisherВидавництво Львівської політехніки
dc.publisherLviv Politechnic Publishing House
dc.relation.ispartofУкраїнський журнал інформаційних технологій, 1 (4), 2022
dc.relation.ispartofUkrainian Journal of Information Technology, 1 (4), 2022
dc.relation.references[1] Studholme, C. (2002). The Discrete Log Problem. Retrieved from: http://www.cs.toronto.edu/~cvs/dlog/research_paper.pdf
dc.relation.references[2] Satyanarayana, V. N., & Ramasubramanian, U. T. (2021). Energy-Efficient Modular Exponential Techniques for Public-Key Cryptography. Springer Nature Singapur Pte Ltd. 255 p. https://doi.org/10.1007/978-3-030-74524-0
dc.relation.references[3] Tandrup, M. B., Jensen, M. H., Andersen, R. N., & Hansen, T. F. (2004). Fast Exponentiation In practice. Retrieved from: https://cs.au.dk/~ivan/FastExpproject.pdf
dc.relation.references[4] Jakubski, A., & Perliński, R. (2011). Review of General Exponentiation Algorithms. Scientific Research of the Institute of Mathematics and Computer Science, 2(10), 87–98. Retrieved from: http://amcm.pcz.pl/2011_2/art_10.pdf
dc.relation.references[5] Rezai, A., & Keshavarzi, P. (2015). Algorithm design and theoretical analysis of a novel CMM modular exponentiation algorithm for large integers. RAIRO – Theoretical Informatics and Applications, 49(3), 255–268. https://doi.org/10.1051/ita/2015007
dc.relation.references[6] Marouf, I., Asad, M. M., & Al-Haija, Q. A. (2017). Comparative Study of Efficient Modular Exponentiation Algorithms. COMPUSOFT, International journal of advanced computer technology, 6(8), 2381–2392.
dc.relation.references[7] Vollala, S., Geetha, K., & Ramasubramanian, N. (2016). Efficient modular exponential algorithms compatible with hardware implementation of public-key cryptography. Security and Communication Networks, 9(16), 3105–3115. https://doi.org/10.1002/sec.1511
dc.relation.references[8] Menezes, A. J., van Oorschot, P. C., & Vanstone, S. A. (1996). Handbook of applied cryptography. CRC Press, Boca Raton. https://doi.org/10.1201/9780429466335
dc.relation.references[9] Knuth, D. E. (1998). The art of computer programming. 3 ded. Reading (Mass): Addison-Wesley, cop. 712 p.
dc.relation.references[10] Bach, E., & Shallit, J. (1996). Algorithmic Number Theory. Volume I: Efficient Algorithms. Cambridge, USA: MIT Press. 516 p.
dc.relation.references[11] Cohen, H. (1993). A course in computational algebraic number theory. Berlin, Heidelberg: Springer. 536 p. https://doi.org/10.1007/978-3-662-02945-9
dc.relation.references[12] Robert, J.-M., Negre, C., & Plantard, T. (2019). Efficient Fixed Base Exponentiation and Scalar Multiplication based on a Multiplicative Splitting Exponent Recoding. Journal of Cryptographic Engineering, Springer, 9(2), 115–136. https://doi.org/10.1007/s13389-018-0196-7
dc.relation.references[13] Lara, P., Borges, F., Portugal, R., & Nedjah, N. (2012). Parallel modular exponentiation using load balancing without precomputation. Journal of Computer and System Sciences, 78(2), 575–582. https://doi.org/10.1016/j.jcss.2011.07.002
dc.relation.references[14] Nedjah, N., & Mourelle, Ld. M. (2006). Three hardware architectures for the binary modular exponentiation: Sequential, parallel, and systolic. Circuits and Systems I: Regular Papers, IEEE Transactions, 53(3), 627–633. https://doi.org/10.1109/TCSI.2005.858767
dc.relation.references[15] Emmart, N., Zheng, F., & Weems, C. (2018). Faster Modular Exponentiation using Double Precision Floating Point Arithmetic on the GPU. 25th IEEE Symposium on Computer Arithmetic, 126–133. https://doi.org/10.1109/ARITH.2018.8464792
dc.relation.references[16] Gopal, V., Guilford, J., Ozturk, E., Feghali, W, Wolrich, G., & Dixon, M. (2009). Fast and Constant-Time Implementation of Modular Exponentiation. 28th International Symposium on Reliable Distributed Systems. Niagara Falls, New York, USA. Retrieved from: https://cse.buffalo.edu/srds2009/escs2009_submission_Gopal.pdf
dc.relation.references[17] Comparison of cryptography libraries. Retrieved from: https://en.wikipedia.org/wiki/Comparison_of_cryptography_libraries
dc.relation.references[18] Negre, C., & Plantard, T. (2017). Efficient Regular Modular Exponentiation Using Multiplicative Half-Size Splitting. Journal of Cryptographic Engineering, Springer, 7(3), 245–253. https://doi.org/10.1007/s13389-016-0134-5
dc.relation.references[19] Gueron, S. (2012). Efficient software implementations of modular exponentiation. Journal of Cryptographic Engineering, 2, 31–43. https://doi.org/10.1007/s13389-012-0031-5
dc.relation.references[20] Protsko, I., Kryvinska, N., & Gryshchuk, O. (2021). The Runtime Analysis of Computation of Modular Exponentiation. Radio Electronics, Computer Science, Control, 3, 42–47. https://doi.org/10.15588/1607-3274-2021-3-4
dc.relation.references[21] Protsko, I., & Gryshchuk, O. (2022). The Modular Exponentiation with precomputation of redused set of resedues for fixed-base. Radio Electronics, Computer Science, Control, 1. (accepted).
dc.relation.references[22] PARI/GP home. Retrieved from: http://pari.math.u-bordeaux.fr/
dc.relation.references[23] MPIR: Multiple Precision Integers and Rationals. Retrieved from: http://mpir.org/
dc.relation.references[24] Crypto++ Library 8.6. Retrieved from: https://www.cryptopp.com
dc.relation.references[25] OpenSSL. Cryptography and SSL/TLS Toolkit. Retrieved from: http://www.openssl.org/
dc.relation.references[26] Montgomery, P. (1985). Modular Multiplication without Trial Division. Mathematics of Computation, 44(170), 519–521.
dc.relation.references[27] Hars, L. (2004). Long Modular Multiplication for Cryptographic Applications. Retrieved from: https://eprint.iacr.org/2004/198.pdf
dc.relation.references[28] Protsko, I. (2020). Binarno-bitovi alhorytmy: prohramuvannya i zastosuvannya. Navchalʹnyy posibnyk. Lviv: "Triada plyus". 120 p. [In Ukrainian].
dc.relation.referencesen[1] Studholme, C. (2002). The Discrete Log Problem. Retrieved from: http://www.cs.toronto.edu/~cvs/dlog/research_paper.pdf
dc.relation.referencesen[2] Satyanarayana, V. N., & Ramasubramanian, U. T. (2021). Energy-Efficient Modular Exponential Techniques for Public-Key Cryptography. Springer Nature Singapur Pte Ltd. 255 p. https://doi.org/10.1007/978-3-030-74524-0
dc.relation.referencesen[3] Tandrup, M. B., Jensen, M. H., Andersen, R. N., & Hansen, T. F. (2004). Fast Exponentiation In practice. Retrieved from: https://cs.au.dk/~ivan/FastExpproject.pdf
dc.relation.referencesen[4] Jakubski, A., & Perliński, R. (2011). Review of General Exponentiation Algorithms. Scientific Research of the Institute of Mathematics and Computer Science, 2(10), 87–98. Retrieved from: http://amcm.pcz.pl/2011_2/art_10.pdf
dc.relation.referencesen[5] Rezai, A., & Keshavarzi, P. (2015). Algorithm design and theoretical analysis of a novel CMM modular exponentiation algorithm for large integers. RAIRO – Theoretical Informatics and Applications, 49(3), 255–268. https://doi.org/10.1051/ita/2015007
dc.relation.referencesen[6] Marouf, I., Asad, M. M., & Al-Haija, Q. A. (2017). Comparative Study of Efficient Modular Exponentiation Algorithms. COMPUSOFT, International journal of advanced computer technology, 6(8), 2381–2392.
dc.relation.referencesen[7] Vollala, S., Geetha, K., & Ramasubramanian, N. (2016). Efficient modular exponential algorithms compatible with hardware implementation of public-key cryptography. Security and Communication Networks, 9(16), 3105–3115. https://doi.org/10.1002/sec.1511
dc.relation.referencesen[8] Menezes, A. J., van Oorschot, P. C., & Vanstone, S. A. (1996). Handbook of applied cryptography. CRC Press, Boca Raton. https://doi.org/10.1201/9780429466335
dc.relation.referencesen[9] Knuth, D. E. (1998). The art of computer programming. 3 ded. Reading (Mass): Addison-Wesley, cop. 712 p.
dc.relation.referencesen[10] Bach, E., & Shallit, J. (1996). Algorithmic Number Theory. Volume I: Efficient Algorithms. Cambridge, USA: MIT Press. 516 p.
dc.relation.referencesen[11] Cohen, H. (1993). A course in computational algebraic number theory. Berlin, Heidelberg: Springer. 536 p. https://doi.org/10.1007/978-3-662-02945-9
dc.relation.referencesen[12] Robert, J.-M., Negre, C., & Plantard, T. (2019). Efficient Fixed Base Exponentiation and Scalar Multiplication based on a Multiplicative Splitting Exponent Recoding. Journal of Cryptographic Engineering, Springer, 9(2), 115–136. https://doi.org/10.1007/s13389-018-0196-7
dc.relation.referencesen[13] Lara, P., Borges, F., Portugal, R., & Nedjah, N. (2012). Parallel modular exponentiation using load balancing without precomputation. Journal of Computer and System Sciences, 78(2), 575–582. https://doi.org/10.1016/j.jcss.2011.07.002
dc.relation.referencesen[14] Nedjah, N., & Mourelle, Ld. M. (2006). Three hardware architectures for the binary modular exponentiation: Sequential, parallel, and systolic. Circuits and Systems I: Regular Papers, IEEE Transactions, 53(3), 627–633. https://doi.org/10.1109/TCSI.2005.858767
dc.relation.referencesen[15] Emmart, N., Zheng, F., & Weems, C. (2018). Faster Modular Exponentiation using Double Precision Floating Point Arithmetic on the GPU. 25th IEEE Symposium on Computer Arithmetic, 126–133. https://doi.org/10.1109/ARITH.2018.8464792
dc.relation.referencesen[16] Gopal, V., Guilford, J., Ozturk, E., Feghali, W, Wolrich, G., & Dixon, M. (2009). Fast and Constant-Time Implementation of Modular Exponentiation. 28th International Symposium on Reliable Distributed Systems. Niagara Falls, New York, USA. Retrieved from: https://cse.buffalo.edu/srds2009/escs2009_submission_Gopal.pdf
dc.relation.referencesen[17] Comparison of cryptography libraries. Retrieved from: https://en.wikipedia.org/wiki/Comparison_of_cryptography_libraries
dc.relation.referencesen[18] Negre, C., & Plantard, T. (2017). Efficient Regular Modular Exponentiation Using Multiplicative Half-Size Splitting. Journal of Cryptographic Engineering, Springer, 7(3), 245–253. https://doi.org/10.1007/s13389-016-0134-5
dc.relation.referencesen[19] Gueron, S. (2012). Efficient software implementations of modular exponentiation. Journal of Cryptographic Engineering, 2, 31–43. https://doi.org/10.1007/s13389-012-0031-5
dc.relation.referencesen[20] Protsko, I., Kryvinska, N., & Gryshchuk, O. (2021). The Runtime Analysis of Computation of Modular Exponentiation. Radio Electronics, Computer Science, Control, 3, 42–47. https://doi.org/10.15588/1607-3274-2021-3-4
dc.relation.referencesen[21] Protsko, I., & Gryshchuk, O. (2022). The Modular Exponentiation with precomputation of redused set of resedues for fixed-base. Radio Electronics, Computer Science, Control, 1. (accepted).
dc.relation.referencesen[22] PARI/GP home. Retrieved from: http://pari.math.u-bordeaux.fr/
dc.relation.referencesen[23] MPIR: Multiple Precision Integers and Rationals. Retrieved from: http://mpir.org/
dc.relation.referencesen[24] Crypto++ Library 8.6. Retrieved from: https://www.cryptopp.com
dc.relation.referencesen[25] OpenSSL. Cryptography and SSL/TLS Toolkit. Retrieved from: http://www.openssl.org/
dc.relation.referencesen[26] Montgomery, P. (1985). Modular Multiplication without Trial Division. Mathematics of Computation, 44(170), 519–521.
dc.relation.referencesen[27] Hars, L. (2004). Long Modular Multiplication for Cryptographic Applications. Retrieved from: https://eprint.iacr.org/2004/198.pdf
dc.relation.referencesen[28] Protsko, I. (2020). Binarno-bitovi alhorytmy: prohramuvannya i zastosuvannya. Navchalʹnyy posibnyk. Lviv: "Triada plyus". 120 p. [In Ukrainian].
dc.relation.urihttp://www.cs.toronto.edu/~cvs/dlog/research_paper.pdf
dc.relation.urihttps://doi.org/10.1007/978-3-030-74524-0
dc.relation.urihttps://cs.au.dk/~ivan/FastExpproject.pdf
dc.relation.urihttp://amcm.pcz.pl/2011_2/art_10.pdf
dc.relation.urihttps://doi.org/10.1051/ita/2015007
dc.relation.urihttps://doi.org/10.1002/sec.1511
dc.relation.urihttps://doi.org/10.1201/9780429466335
dc.relation.urihttps://doi.org/10.1007/978-3-662-02945-9
dc.relation.urihttps://doi.org/10.1007/s13389-018-0196-7
dc.relation.urihttps://doi.org/10.1016/j.jcss.2011.07.002
dc.relation.urihttps://doi.org/10.1109/TCSI.2005.858767
dc.relation.urihttps://doi.org/10.1109/ARITH.2018.8464792
dc.relation.urihttps://cse.buffalo.edu/srds2009/escs2009_submission_Gopal.pdf
dc.relation.urihttps://en.wikipedia.org/wiki/Comparison_of_cryptography_libraries
dc.relation.urihttps://doi.org/10.1007/s13389-016-0134-5
dc.relation.urihttps://doi.org/10.1007/s13389-012-0031-5
dc.relation.urihttps://doi.org/10.15588/1607-3274-2021-3-4
dc.relation.urihttp://pari.math.u-bordeaux.fr/
dc.relation.urihttp://mpir.org/
dc.relation.urihttps://www.cryptopp.com
dc.relation.urihttp://www.openssl.org/
dc.relation.urihttps://eprint.iacr.org/2004/198.pdf
dc.rights.holder© Національний університет “Львівська політехніка”, 2022
dc.subjectмодульне піднесення до степеня
dc.subjectдискретний логарифм
dc.subjectбібліотечні функції
dc.subjectбінарний алгоритм
dc.subjectвеликі числа
dc.subjectmodular exponentiation
dc.subjectdiscrete logarithm
dc.subjectlibrary functions
dc.subjectbinary algorithm
dc.subjectbig number
dc.titleПорівняльний аналіз функцій обчислення модульної експоненти
dc.title.alternativeComparison analysis of the functions a computation of modular exponentiation
dc.typeArticle

Files

Original bundle

Now showing 1 - 2 of 2
Thumbnail Image
Name:
2022v4n1_Protsko_I_O-Comparison_analysis_of_63-67.pdf
Size:
4.61 MB
Format:
Adobe Portable Document Format
Thumbnail Image
Name:
2022v4n1_Protsko_I_O-Comparison_analysis_of_63-67__COVER.png
Size:
1.74 MB
Format:
Portable Network Graphics

License bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.84 KB
Format:
Plain Text
Description: