24 июля 2015, 2:44:58 AM   # 1
 
 
Сообщений: 16
Цитировать по имени
цитировать ответ
по умолчанию Re: как получить значение X из Y

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
http://bitcoin.stackexchange.com/questions/38740/bitcoin-how-to-get-x-value-from-y

Как получить значение X от Y?



здесь получение у значения из й

Х = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798

код Python,

р = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
х = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
ysquared = ((х * х * х + 7)% р)   
Распечатать "ysquared =% s " % Гекс (ysquared)   
у = пау (ysquared, (р + 1) / 4, р)
Распечатать "y1 =% s " % Гекс (у)
Распечатать "у2 =% s " % Гекс (у * -1% р)

Вывод
Y1 = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
У2 = 0xb7c52588d95c3b9aa25b0403f1eef75702e84bb7597aabe663b82f6f04ef2777

Печать гекс ((х ** 3 + 7 - у1 ** 2)% р) // выход 0

Печать гекс ((х ** 3 + 7 - у2 ** 2)% р) // выход 0



выше питон код, чтобы получить два возможных значение Y от й

как то же самое, как получить возможные значения х от у ?,

Является ли это любая формула или скрипт доступен

Мой вопрос заключается в том, чтобы получить значение х от у

sss555 сейчас офлайн Пожаловаться на sss555   Ответить с цитированием Мультицитирование сообщения от sss555 Быстрый ответ на сообщение sss555


Как заработать Биткоины?
Без вложений. Не майнинг.


26 июля 2015, 3:33:40 AM   # 2
 
 
Сообщения: 170
Цитировать по имени
цитировать ответ
по умолчанию Re: как получить значение X из Y

Получил 1806 Биткоинов
Реальная история.





Привет sss555,

Если вы можете, установив шалфей и используя, что вместо Python сделает вашу жизнь намного проще. Существует пример ноутбук на bitcoin.ninja которая делает некоторые вещи ECDSA на кривой Bitcoin в.

Для того, чтобы прямо ответить на ваш вопрос, мы можем получить от й у в основном так же, как вы получили у от й. Чтобы убедиться в этом, давайте рассмотрим, почему ваш метод работает.

Мы имеем от нашей кривой уравнения, Y = у ^ 2 = х ^ 3 + 7. Вы можете вычислить Y легко от х, то вы решаете Y = у ^ 2 при у. По Маленькой теоремы Ферма можно записать 1 = у ^ (р - 1) = Y ^ (р - 1) / 2. Написать Q = (р - 1) / 2; то мы имеем Y ^ Q = 1, так что Y ^ (Q + 1) = Y = у ^ 2, так что Y ^ ((Q + 1) / 2) = у. Как оказалось, (Q + 1) / 2 = (р + 1) / 4, который почему вы смогли решить для у, используя показатель степени (р + 1) / 4. Обратите внимание на то, что это во многом зависит от р будучи 3 по модулю 4; в противном случае (р + 1) / 4 не быть целым числом, и мы не смогли бы вычислить это. К счастью, наш выбор р удовлетворяет этим.

ОК! Так давайте сделаем аналогичную вещь для х. Напишем X = х ^ 3 = у ^ 2 - 7. X можно вычислить у легко, поэтому мы должны решить Х = х ^ 3. Написать Q = (р - 1) / 3; то Х ^ Q = х ^ (р - 1) = 1, так что Х ^ (Q + 1) = Q = х ^ 3, так что Х ^ ((Q + 1) / 3) = х. Как оказалось, (Q + 1) / 3 = (р + 2) / 9. На этот раз мы в значительной степени зависеть от р будучи 7 мод 9, с тем, что это целое число. К счастью это! Так что вы идете.

TL; ДР использовать (р + 2) / 9 вместо (р + 1) / 4.

Редактировать: О, и получить два других кубические корни нужно умножить нетривиальной кубический корень из 1. (Аналогично вы умножения на -1 в исходном коде.) Одним из таких куб корень 0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee.

Edit2: Вот Python код аналогичен ваш. Он принимает одно из значений выходных у и возвращает введенное й значение как х2.
Код:

## Input
у = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8

## Параметры полей
Модуль # поле
р = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
# Cube корень из 1
бета = 0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee

## Фактический код
xcubed = (у * у - 7)% р
Распечатать "xcubed = 0x% х" % xcubed

х = пау (xcubed, (р + 2) / 9, р)
Распечатать "x1 = 0x% х" % Икс
Распечатать "х2 = 0x% х" % (Х * р бета%)
Распечатать "x3 = 0x% х" % (Х * бета * р бета%)
Его выход
Код:
xcubed = 0x4866d6a5ab41ab2c6bcc57ccd3735da5f16f80a548e5e20a44e4e9b8118c26eb
x1 = 0xc994b69768832bcbff5e9ab39ae8d1d3763bbf1e531bed98fe51de5ee84f50fb
x2 = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
x3 = 0xbcace2e99da01887ab0102b696902325872844067f15e98da7bba04400b88fcb
andytoshi сейчас офлайн Пожаловаться на andytoshi   Ответить с цитированием Мультицитирование сообщения от andytoshi Быстрый ответ на сообщение andytoshi

26 июля 2015, 4:21:27 AM   # 3
 
 
Сообщений: 16
Цитировать по имени
цитировать ответ
по умолчанию Re: как получить значение X из Y

Спасибо andytoshi, цель развития я задаю этот вопрос
sss555 сейчас офлайн Пожаловаться на sss555   Ответить с цитированием Мультицитирование сообщения от sss555 Быстрый ответ на сообщение sss555

1 августа 2015, 6:22:26 PM   # 4
 
 
Сообщения: 920
Цитировать по имени
цитировать ответ
по умолчанию Re: как получить значение X из Y

Очень enlighting Andyoshi.
gablay12 сейчас офлайн Пожаловаться на gablay12   Ответить с цитированием Мультицитирование сообщения от gablay12 Быстрый ответ на сообщение gablay12



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW