Показати скорочену інформацію

dc.contributor.authorТютюнник, О. І.uk
dc.contributor.authorКлєопа, І. А.uk
dc.contributor.authorTyutyunnyk, O.uk
dc.contributor.authorKlieopa, I.uk
dc.contributor.authoruk
dc.date.accessioned2026-05-19T13:33:02Z
dc.date.available2026-05-19T13:33:02Z
dc.date.issued2026uk
dc.identifier.citationТютюнник О. І., Клєопа І. А. Алгоритм baby-step giant-step як інструмент обчислення дискретного логарифма в теорії чисел та вищій математиці // Вісник науки та освіти. 2026. № 4 (46). С. 4739-4756.uk
dc.identifier.isbn2786-6165uk
dc.identifier.urihttps://ir.lib.vntu.edu.ua//handle/123456789/51576
dc.description.abstractThe 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.isouk_UAuk_UA
dc.publisherНаукові перспективиuk
dc.relation.ispartofВісник науки та освіти. № 4 (46) : 4739-4756.uk
dc.relation.ispartofseriesПедагогічні наукиuk
dc.subjectмова програмування Pythonuk
dc.subjectдискретний логарифмuk
dc.subjectалгоритм Шенксаuk
dc.subjectbaby-step giant-stepuk
dc.subjectасиметрична криптографіяuk
dc.subjectобчислювальна складністьuk
dc.subjectPython programming languageuk
dc.subjectdiscrete logarithmuk
dc.subjectShanks's algorithmuk
dc.subjectbaby-step giant-stepuk
dc.subjectasymmetric cryptographyuk
dc.subjectcomputational complexityuk
dc.titleАлгоритм baby-step giant-step як інструмент обчислення дискретного логарифма в теорії чисел та вищій математиціuk
dc.title.alternativeBaby-step giant-step algorithm as a tool for computing the discrete logarithm in number theory and higher mathematicsen_US
dc.typeArticle, professional native edition
dc.identifier.udc004.021uk
dc.identifier.orcidhttps://orcid.org/0000-0002-8544-4246uk
dc.identifier.orcidhttps://orcid.org/0000-0001-8408-6515uk


Файли в цьому документі

Thumbnail

Даний документ включений в наступну(і) колекцію(ї)

Показати скорочену інформацію