| dc.contributor.author | Тютюнник, О. І. | uk |
| dc.contributor.author | Клєопа, І. А. | uk |
| dc.contributor.author | Tyutyunnyk, O. | uk |
| dc.contributor.author | Klieopa, I. | uk |
| dc.contributor.author | | uk |
| dc.date.accessioned | 2026-05-19T13:33:02Z | |
| dc.date.available | 2026-05-19T13:33:02Z | |
| dc.date.issued | 2026 | uk |
| dc.identifier.citation | Тютюнник О. І., Клєопа І. А. Алгоритм baby-step giant-step як інструмент обчислення дискретного логарифма в теорії чисел та вищій математиці // Вісник науки та освіти. 2026. № 4 (46). С. 4739-4756. | uk |
| dc.identifier.isbn | 2786-6165 | uk |
| dc.identifier.uri | https://ir.lib.vntu.edu.ua//handle/123456789/51576 | |
| dc.description.abstract | The discrete logarithm problem is one of the fundamental mathematical challenges upon which the security of modern asymmetric cryptographic systems is built, including the Diffie-Hellman key exchange protocol, the ElGamal cryptosystem, and elliptic curve cryptography. Its mathematical essence lies in finding an unknown exponent in the equation g^x≡h (mod p), where g (the base), h (the result), and p (the modulus) are known integers.
To solve this problem, the classical brute-force method is extremely inefficient and practically impossible for large values of the modulus p. The "baby-step giant-step" algorithm (also known as Shanks's algorithm), proposed by Daniel Shanks in 1971, allows for significant optimization of this process. This method is based on the "meet-in-the-middle" paradigm and allows for a reduction in computational search complexity from O(p) to O(√p)while requiring O(√p) memory to store intermediate results.
This paper examines a software implementation of Shanks's algorithm using the Python programming language. The choice of this language is driven by its high-level architecture, support for arbitrary-precision integers (which is critical for cryptography), and the availability of efficient built-in data structures. In particular, the use of dictionaries (hash tables) ensures an instantaneous search for collisions between two calculated sets of values - the "baby steps" and "giant steps." The developed implementation serves not only as a visual tool for the in-depth study of the mathematical foundations of cryptanalysis but also demonstrates the practical vulnerability of certain cryptosystem parameters, which is an important stage in the training of information security specialists. | en_US |
| dc.description.abstract | Задача дискретного логарифмування є однією з фундаментальних математичних проблем, на яких ґрунтується стійкість сучасних
систем асиметричної криптографії, зокрема протоколу обміну ключами
Діффі-Геллмана, криптосистеми Ель-Гамаля та криптографії на еліптичних
кривих. Її математична суть полягає у знаходженні невідомого показника
степеня у рівнянні ????
???? ≡ ℎ (mod p) , де ???? (основа), h (результат) та p (модуль)
є відомими цілими числами.
Для вирішення цієї задачі класичний метод повного перебору (bruteforce) є вкрай неефективним і практично неможливим для великих значень
модуля p. Алгоритм «baby-step giant-step» (відомий також як алгоритм
Шенкса), запропонований Даніелем Шенксом у 1971 році, дозволяє суттєво
оптимізувати цей процес. Цей метод базується на парадигмі «зустрічного
кроку» (meet-in-the-middle) і дозволяє зменшити часову обчислювальну
складність пошуку з ????(????) до ????(√????) вимагаючи при цьому обсягу пам\"яті
????(√????) для збереження проміжних результатів.
У даній роботі розглядається програмна реалізація алгоритму Шенкса
з використанням мови програмування Python. Вибір даної мови зумовлений
її високорівневою архітектурою, підтримкою довгих цілих чисел (що
критично для криптографії) та наявністю ефективних вбудованих структур
даних. Зокрема, використання словників (хеш-таблиць) дозволяє забезпечити миттєвий пошук колізій між двома обчисленими множинами значень
— «малими» (baby - steps) та «великими» (giant-steps) кроками. Розроблена
реалізація є не лише наочним інструментом для глибокого вивчення
математичних основ криптоаналізу, а й демонструє практичну вразливість
певних параметрів криптосистем, що є важливим етапом у підготовці
фахівців з інформаційної безпеки. | uk_UA |
| dc.language.iso | uk_UA | uk_UA |
| dc.publisher | Наукові перспективи | uk |
| dc.relation.ispartof | Вісник науки та освіти. № 4 (46) : 4739-4756. | uk |
| dc.relation.ispartofseries | Педагогічні науки | uk |
| dc.subject | мова програмування Python | uk |
| dc.subject | дискретний логарифм | uk |
| dc.subject | алгоритм Шенкса | uk |
| dc.subject | baby-step giant-step | uk |
| dc.subject | асиметрична криптографія | uk |
| dc.subject | обчислювальна складність | uk |
| dc.subject | Python programming language | uk |
| dc.subject | discrete logarithm | uk |
| dc.subject | Shanks's algorithm | uk |
| dc.subject | baby-step giant-step | uk |
| dc.subject | asymmetric cryptography | uk |
| dc.subject | computational complexity | uk |
| dc.title | Алгоритм baby-step giant-step як інструмент обчислення дискретного логарифма в теорії чисел та вищій математиці | uk |
| dc.title.alternative | Baby-step giant-step algorithm as a tool for computing the discrete logarithm in number theory and higher mathematics | en_US |
| dc.type | Article, professional native edition | |
| dc.identifier.udc | 004.021 | uk |
| dc.identifier.orcid | https://orcid.org/0000-0002-8544-4246 | uk |
| dc.identifier.orcid | https://orcid.org/0000-0001-8408-6515 | uk |