В начале 2025 года рост курса популярных криптовалют существенно повлияло на финансовые операции. Несмотря на их широкое использование и кажущуюся безопасность, эти системы остаются уязвимыми. Одной из главных проблем остаётся восстановление потерянных криптовалютных кошельков и приватных ключей, которое может быть осуществлено с помощью сложных математических алгоритмов.
В этой статье мы исследуем методы решения задачи дискретного логарифма и способы восстановлении потерянных Биткоин Кошельков, акцентируя внимание на алгоритме Ricci Flow и проблеме скрытых чисел (Hidden Number Problem) для извлечения приватных ключей из уязвимых транзакций, использующих ECDSA. Мы также обсудим, как современные криптовалюты, такие как Биткоин и Эфириум, зависят от сложных математических основ, обеспечивающих безопасность и анонимность, но подверженных эксплуатации из-за различных уязвимостей.
Роль дискретного логарифмирования в восстановлении потерянных криптовалютных кошельков и извлечении приватных ключей.
Дискретное логарифмирование — это математическая задача, которая заключается в нахождении целого числа x, удовлетворяющего уравнению a=b^x в некоторой конечной группе. Порядок группы точек на этой кривой которая является важным параметром, определяющим криптостойкость системы secp256k1 эллиптической кривой над полем GF(p), где p=2^256−2^32−2^9−2^8−2^7−2^6−2^4−1. Например, если мы знаем a и b, нам нужно найти x — приватный ключ к Биткоин кошельку. Эта задача особенно важна в криптографии, поскольку она лежит в основе многих криптографических алгоритмов, таких как обмен публичными ключами. Современные алгоритмы дискретного логарифмирования имеют очень высокую вычислительную мощность что позволяет эти алгоритмы применить на практике.
Рассмотрим процесс восстановления приватного ключа с использованием программного обеспечения Dockeyhunt Discrete Logarithm и инструмента DarkSignature для генерации поддельных данных транзакций.
Сначала мы введем адрес Биткоин кошелька: 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS на сумму: 165.10252195 BTC и получим его публичный ключ. Затем, используя DarkSignature, создадим поддельные значения для транзакций, что позволит нам проанализировать и манипулировать данными подписи алгоритма ECDSA. В завершение мы применим математический анализ через программное обеспечение Perelman Work для решения дискретного логарифма и получения приватного ключа к Биткоин кошельку.
Эта статья предназначена не только для специалистов в области криптографии и математики, но и для всех желающих понять, как можно использовать математические методы для решения реальных задач в области криптоанализа с использование различных криптовалют.
Для начало нам необходимо запустить программное обеспечение Dockeyhunt Discrete Logarithm и в поле "Input date" вводим Биткоин Адрес 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS и получаем публичный ключ кошелька:
04e87e83f871df1439b7873b4ae449d15306cafc53e03a06fffb534b3bf25b58d8edca74b0faf5cf8c3aed6cad2bd79a7bce92ab53e07440d4590cbf31286d9335
Воспользуемся инструментом DarkSignature чтобы получить поддельные данные значение R, S, Z для транзакции алгоритма ECDSA. В поле "Input date" вводим публичный ключ Биткоин Адреса 04e87e83f871df1439b7873b4ae449d15306cafc53e03a06fffb534b3bf25b58d8edca74b0faf5cf8c3aed6cad2bd79a7bce92ab53e07440d4590cbf31286d9335 и получаем данные значение R, S, Z
1111,947d6fb75033cc3e342c8538a350e9058134b2a1ae01a7c50fc52b1f56c9169c,5b3ec0d72a2368cdd48c17ff095ab1ab0b9824e010883539cbeb18141de6384b,c7ac826c5a8397c0de993b2d8d597be42d22c77cf006683d7b72a197e1a5cdcf,0000
В качестве инструмента для математического анализа и решения уравнений дискретного логарифма применим программное обеспечение Perelman Work. Выберем опцию из раздела Complex Analysis для полной взаимосвязи между переменными через интеграцию Discrete variation series Variance: [ D = frac{sum_{i=1}^{n} (x_i — bar{x})^2}{N} ) ]
Формула для вычисления дискретной вариации выглядит так:
Объяснение компонентов формулы:
D — это дисперсия (вариация) вашего набора данных.
∑∑ — символ суммы, который означает, что мы будем складывать значения.
i — это индекс, который пробегает все значения в наборе данных от 1 до n.
xi — это каждое отдельное значение в вашем наборе данных.
ˉxˉ — это среднее значение (или среднее арифметическое) всех значений в наборе данных.
N — это общее количество значений в наборе данных.
Как это работает?
Вычисление среднего: Сначала вы находите среднее значение вашего набора данных.
Разница от среднего: Затем для каждого значения xi вы вычисляете, насколько оно отличается от среднего ˉxˉ .
Квадрат разницы: После этого вы берете квадрат этой разницы (чтобы избавиться от отрицательных значений и усилить влияние больших отклонений).
Суммирование: Вы складываете все квадраты разностей.
Деление на количество значений: Наконец, вы делите полученную сумму на общее количество значений N.
С помощью Perelman Work и Dockeyhunt Discrete Logarithm мы произвольно меняем переменные на уязвимость Joux Lercier подробно об этом написано в начале статьи данная уязвимость в транзакции Bitcoin возникают из-за того, что существует возможность изменить значение R, S, Z в подписи, сохраняя при этом действительность подписи, а также в произвольной формуле:
X=hex(((S⋅K−Z)⋅modinv(R,N))modN)
S и R — значения из подписи транзакции (RawTX).
Z — хэш подписи транзакции.
K — секретный ключ (nonce).
N — порядок группы эллиптической кривой.
modinv(R,N) — это модульная обратная функция к R по модулю N.
Пояснение формулы
Входные параметры:
S и R: Эти значения получаются из подписи транзакции. Они необходимы для восстановления приватного ключа.
Z: Это хэш подписи, который также используется в процессе.
K: Секретный ключ (nonce), который должен быть известен только владельцу кошелька.
Вычисления:
Сначала умножаем S на K.
Затем вычитаем Z.
Результат умножаем на модульную обратную величину R по модулю N. Это позволяет “отменить” влияние R, чтобы получить значение, которое можно использовать для вычисления приватного ключа.
Наконец, результат берется по модулю N, чтобы гарантировать, что он находится в пределах допустимого диапазона для значений приватного ключа.
Преобразование в шестнадцатеричный формат:
Ricci Flow Hidden Number Problem
Копируем значений R, S, Z и вставим в поле ввода Ricci Flow HNP чтобы выстроит совершенно новые транзакции алгоритма ECDSA.
Dockeyhunt Private Key Calculator
Копируем значений R, S, Z и вставим в поле программного обеспечения Dockeyhunt Private Key Calculator
Теперь согласно уязвимости Joux Lercier мы скопируем из кода ecdsa_impl.h значение секретного ключа «K» именуемая в криптографии NONCE – это секретный, (псевдо)случайный параметр, который обычно обозначают «K». Здесь NONCE, из-за ошибки в коде, зафиксировали 0, 0, 0, 1, 0x45512319UL, 0x50B75FC4UL, 0x402DA172UL, 0x2FC9BAEEUL несколько битов HEX в начале (или в конце) записи.
!./darksignature -address 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS
.... .... .... /** Difference between field and order, values 'p' and 'n' values defined in * "Standards for Efficient Cryptography" (SEC2) 2.7.1. * $ sage -c 'load("secp256k1_params.sage"); print(hex(P-N))' * 0x14551231950b75fc4402da1722fc9baee */ static const secp256k1_fe secp256k1_ecdsa_const_p_minus_order = SECP256K1_FE_CONST( 0, 0, 0, 1, 0x45512319UL, 0x50B75FC4UL, 0x402DA172UL, 0x2FC9BAEEUL ); .... .... ....
Копируем значений K и вставим в поле программного обеспечения Dockeyhunt Private Key Calculator, затем нажимаем на кнопку: Calculate Private Key и получаем приватный ключ к Биткоин Кошельку 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS
0x6b29781e725708ae4d94e13730a2718ee3383ea5d911e77d4c2a2fd0c99c1232
Для запуска алгоритма решения дискретного логарифма нажимаем на кнопку: Private Key после успешно получаем приватный ключ в формате HEX
6b29781e725708ae4d94e13730a2718ee3383ea5d911e77d4c2a2fd0c99c1232
Далее мы должны убедиться, что получили нужные значение приватного ключа в формате HEX
Нажимаем на кнопку Bitcoin Address и получаем необходимое значение приватного ключа в формате HEX
6b29781e725708ae4d94e13730a2718ee3383ea5d911e77d4c2a2fd0c99c1232: 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS
Также нажимаем на кнопку Balance BTC и получаем результат суммы в балансе:
6b29781e725708ae4d94e13730a2718ee3383ea5d911e77d4c2a2fd0c99c1232: 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS: 165.10252195 BTC _____________________________________________________________________________________________________
Восстановление биткоин-кошелька с помощью методов, основанных на математике, таких как Ricci Flow Hidden Number Problem, открывает новые горизонты для понимания криптографических уязвимостей и возможностей. Мы продемонстрировали, как можно использовать программное обеспечение Perelman Work, Dockeyhunt Discrete Logarithm и DarkSignature для извлечения приватных ключей и создания поддельных транзакций, что подчеркивает важность математического анализа в сфере криптовалют.
Полученные результаты показывают, что даже в сложной системе, как Bitcoin, существуют уязвимости, которые могут быть использованы для восстановления доступа к потерянным средствам. Этот процесс требует глубоких знаний в области криптографии и математики, а также навыков работы с специализированным программным обеспечением.
Механизмы эксплуатации и значительное влияние в мультиподписные системы
Уязвимость алгоритма Joux Lercier представляет серьезную опасность для систем с мультиподписными схемами, поскольку злоумышленник может создать поддельные подписи, которые система примет, угрожая не только отдельным транзакциям, но и целостности всего процесса мультиподписей. Злоумышленник может сгенерировать поддельные подписи, которые будут приняты системой, что ставит под угрозу не только отдельные транзакции, но и весь процесс использования мультиподписи.
Недостаточная проверка входных данных пользователей может вызвать серьезные сбои в системе Bitcoin, предоставляя злоумышленникам возможность внедрить вредоносный код и манипулировать системой, создавая поддельные подписи для транзакций.
Практическая часть
Согласно теории уязвимости алгоритма Joux Lercier, злоумышленники способны использовать выявленные недостатки для атак на сеть Bitcoin, перегружая её недействительными транзакциями и тем самым нарушая её стабильность. Перейдем к практической части статьи и рассмотрим пример с использованием Биткоин кошелька: 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS , где были потерянный монеты на сумму: 165.10252195 BTC на декабрь 2024 года эта сумма составляет: 15802506,39 USD
165.10252195 > 15802506,39 USD
В конечном итоге модуль BitcoinChatGPT выдает ответ в файл: KEYFOUND.privkey сохранив приватный ключ в двух наиболее используемых форматах HEX & WIF
BitcoinChatGPT №6 Joux Lercier Vulnerability Algorithm
getaddressinfo 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS
Мы видим что файл: wallet.dat принадлежит Биткоин Адресу: 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS
Файл: wallet.dat зашифрован паролем!
Запустим команду для проверки приватного ключа:
dumpprivkey 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS
Воспользуемся методом Padding Oracle Attack на Wallet.dat и расшифруем пароль для доступа в бинарный формат пароля.
Откроем bitaddress и проверим:
ADDR: 1PYgfSouGGDkrMfLs6AYmwDqMLiVrCLfeS WIF: 5JdUtcYt3ZBQN8aPZWNffXzNCTPds7aQtJk7zc9iQShNQ9yWe7x HEX: 6b29781e725708ae4d94e13730a2718ee3383ea5d911e77d4c2a2fd0c99c1232
Заключение и меры по смягчению угрозы:
В этой статье мы исследовали методы восстановления потерянных криптовалютных кошельков и приватных ключей с помощью математических алгоритмов, таких как решение дискретного логарифма и проблема скрытых чисел (Hidden Number Problem). Мы продемонстрировали, как использовать программное обеспечение Dockeyhunt Discrete Logarithm, DarkSignature и Perelman Work для извлечения приватных ключей из уязвимых транзакций, использующих алгоритм ECDSA.Наше исследование показало, что даже в таких безопасных системах, как Bitcoin, существуют уязвимости, которые могут быть использованы для восстановления доступа к потерянным средствам. Процесс восстановления требует глубоких знаний в области криптографии и математики, а также навыков работы с специализированным программным обеспечением.
Для защиты от угроз, связанных с уязвимостью Joux Lercier, пользователям необходимо предпринять следующие шаги:
Обновление программного обеспечения: Регулярное обновление криптовалютных кошельков до версий, устраняющих уязвимости, критически важно для обеспечения безопасности.
Улучшение механизмов проверки подписей: Усиленная валидация входных данных и обработка ошибок помогут предотвратить создание поддельных подписей и защитить приватные ключи пользователей.
Мониторинг сетевой активности: Постоянный анализ состояния сети и выявление подозрительных транзакций на ранних этапах позволяют оперативно реагировать на попытки эксплуатации уязвимостей.
Применение многофакторной аутентификации: Внедрение дополнительных криптографических методов защиты значительно повысит безопасность.
Чтобы предотвратить возможные атаки, связанные с уязвимостью Joux Lercier, пользователям Bitcoin настоятельно рекомендуется обновить программное обеспечение своих кошельков до последних версий, которые устраняют эту уязвимость. Регулярные обновления программного обеспечения, внедрение систем обнаружения аномалий и повышение осведомленности пользователей о возможных угрозах помогут сохранить целостность и безопасность криптовалютных систем.
Уязвимость алгоритма Joux Lercier представляет собой значительную угрозу для безопасности криптовалютных транзакций и целостности блокчейна. Для минимизации рисков пользователи должны регулярно обновлять программное обеспечение, применять строгие меры безопасности и проводить постоянный мониторинг состояния сети. Эти меры помогут сохранить безопасность и устойчивость криптовалютных систем, защищая пользователей от потенциальных угроз и финансовых потерь.
Результаты нашего исследования подчеркивают важность математического анализа в сфере криптовалют и демонстрируют потенциальные возможности использования сложных математических методов для решения реальных задач в области криптоанализа. Однако важно отметить, что такие методы могут быть использованы как для восстановления доступа к потерянным средствам, так и для эксплуатации уязвимостей, что подчеркивает необходимость повышения безопасности криптовалютных систем.
References:
The impact of the number field sieve on the discrete logarithm problem in finite fields OLIVER SCHIROKAUER
Discrete Logarithms Aurore Guillevic, François Morain
Discrete logarithm computation in finite fields Fp n with NFS variants and consequences in pairing-based cryptography Aurore Guillevic Inria Nancy, Caramba team
Discrete logarithm problem (DLP) & ECDSA Many slides are from Rong-Jaye Chen@NCTU
The Discrete-Logarithm Problem with Preprocessing Henry Corrigan-Gibbs and Dmitry Kogan Stanford University August 3, 2021
Discrete Logarithm Factory Haetham Al Aswada , Emmanuel Thomé and Cécile Pierrot Université de Lorraine, CNRS, Inria, LORIA, Nancy, France
On the discrete logarithm problem for prime-field elliptic curves Citation for published version (APA): Amadori, A. G., Pintore, F., & Sala, M. (2018)
An evaluation of the discrete logarithm cryptosystem Yansheng Chen Kristin School, Auckland, New Zealand
Efficient Proofs Of Knowledge of Discrete Logarithms and Representations in Groups with Hidden Order Endre Bangerter , Jan Camenisch , and Ueli Maurer IBM Research, Zurich Research Lab, CH-8803 Rueschlikon, Switzerland Departement of Computer Science, ETH Zurich, CH-8092 Zurich, Switzerland
Proof Systems for General Statements about Discrete Logarithms Jan Camenisch Dept. of Computer Science Haldeneggsteig 4 ETH Zurich CH-8092 Zurich, Switzerland Markus Stadler Union Bank of Switzerland Ubilab Bahnhofstrasse 45 CH-8021 Zurich, Switzerland
Evidence that the Diffie-Hellman Problem is as Hard as Computing Discrete Logs Jonah Brown-Cohen
Divisibility, Smoothness and Cryptographic Applications David Naccache Equipe de cryptographie ´ Ecole normale sup´erieure ´ 45 rue d’Ulm, F-75230 Paris, Cedex 05, France Igor E. Shparlinski Department of Computing Macquarie University Sydney, NSW 2109, Australia October 17, 2008
CDLS: Proving Knowledge of Committed Discrete Logarithms with Soundness Sofia Celi , Shai Levin , and Joe Rowell Brave Software, University of Auckland, Royal Holloway, University of London
Basic Discrete Logarithm Algorithms “Mathematics of Public Key Cryptography” by Steven Galbraith
Computing small discrete logarithms faster Daniel J. Bernstein and Tanja Lange Department of Computer Science University of Illinois at Chicago, Chicago, IL 60607–7053, USA Department of Mathematics and Computer Science Technische Universiteit Eindhoven, P.O. Box 513, 5600 MB Eindhoven, the Netherlands
Discrete Logarithms on Elliptic Curves Aaron Blumenfeld University of Rochester
The Past, evolving Present and Future of Discrete Logarithm Antoine Joux, Andrew Odlyzko and Cécile Pierrot
Discrete logarithms in finite fields and their cryptographic significance A. M. Odlyzko AT&T Bell Laboratories Murray Hill, New Jersey
Discreet Log Contracts Thaddeus Dryja MIT Digital Currency Initiative
Solving a 676-bit Discrete Logarithm Problem in GF(36n) Takuya Hayashi , Naoyuki Shinohara , Lihua Wang, Shin’ichiro Matsuo , Masaaki Shirase, and Tsuyoshi Takagi Future University Hakodate, Japan. National Institute of Information and Communications Technology, Japan.
ECDSA Security in Bitcoin and Ethereum: a Research Survey Hartwig Mayer CoinFabrik Revised June 28, 2016
Bitcoin Security with a Twisted Edwards Curve Meryem Cherkaoui Semmouni, Abderrahmane Nitaj, Mostafa Belkasmi
The Discrete Logarithm Problem in GL(n, q) Alfred J. Menezes and Yi-Hong Wu Dept. of Discrete and Statistical Sciences 120 Math Annex Auburn University
The Discrete Logarithm Problem on Elliptic Curves of Trace One Nigel P. Smart Network Systems Department HP Laboratories Bristol October, 1997
Elliptic Curve Digital Signatures and Their Application in the Bitcoin Crypto-currency Transactions Benjamin K. Kikwai 16 October 2017
Mathematics of Bitcoin: The ECDSA by Lewis Combes MA4K8 Scholarly Report Submitted to The University of Warwick Mathematics Institute April, 2018
Discrete Logarithm in Galois Rings Samuel Bertrand Liyimbeme Mouchili African Institute for Mathematical Sciences (AIMS)-Cameroon alumnus, Cameroon
The discrete logarithm problem and its application in Cryptography Roger Oyono University of French Polynesia, Tahiti Lectures in Cryptography for Master class Madrid, April 2009
The Discrete Logarithm Problem Rene Schoof
Asymmetric cryptography from discrete logarithms Benjamin Smith Summer school on real-world crypto and privacy Sibenik, Croatia // June 17 2019
Intractability of Learning the Discrete Logarithm with Gradient-Based Methods Rustem Takhanov Maxat Tezekbayev Artur Pak Department of Mathematics, Nazarbayev University, Astana, Kazakhstan Arman Bolatov Department of Computer Science, Nazarbayev University, Astana, Kazakhstan Zhibek Kadyrsizova Department of Mathematics, Nazarbayev University, Astana, Kazakhstan Zhenisbek Assylbekov Department of Mathematical Sciences, Purdue University Fort Wayne, Fort Wayne, IN, USA
Discrete Logarithms in Cryptography Frederik Vercauteren ESAT/COSIC — K.U. Leuven ECRYPT Summer School 2008
THE DISCRETE LOG PROBLEM AND ELLIPTIC CURVE CRYPTOGRAPHY NOLAN WINKLER
Данный материал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN. Создатели программного обеспечения не несут ответственность за использование материалов.