Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
9 октября 2013, 7:02:01 PM   # 1
 
 
Сообщения: 1008
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Если порядок эллиптической кривой в Bitcoin некоторое число немного меньше, чем 2 ^ 256, то почему OK, чтобы использовать SHA256 хэш некоторых входных сигналов в качестве секретного ключа? Мой (постоянно растет) понимание ECDSA является то, что ключ должен быть некоторое целое число между 1 и порядок кривой, которая является:

Код:
п = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141

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


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


9 октября 2013, 7:05:34 PM   # 2
 
 
Сообщения: 2114
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

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





Если выход SHA256 больше, чем п она будет просто "обтекать" и работа.

Хотя, теперь, когда я думаю об этом, если выход из вашей SHA256 было ровно п, что, вероятно, вызовет проблемы.

Но, то вероятность выхода из SHA256 быть точно п 1/2256
BurtW сейчас офлайн Пожаловаться на BurtW   Ответить с цитированием Мультицитирование сообщения от BurtW Быстрый ответ на сообщение BurtW

9 октября 2013, 7:08:12 PM   # 3
 
 
Сообщений: 12
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Если порядок эллиптической кривой в Bitcoin некоторое число немного меньше, чем 2 ^ 256, то почему OK, чтобы использовать SHA256 хэш некоторых входных сигналов в качестве секретного ключа? Мой (постоянно растет) понимание ECDSA является то, что ключ должен быть некоторое целое число между 1 и порядок кривой, которая является:

Код:
п = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141

К сожалению, если это было предложено в 1000 раз уже ...

Допустимые закрытые ключи являются целыми числами от 1 до N-1. Если вы получаете целое число >= П, когда хэширования какой-то секрет, то, что целое число является недопустимым закрытым ключом. Было бы ошибкой сводить что число по модулю п, как было бы ввести смещение в сторону более низких значений. Вероятность того, что происходит относительно невысока, однако.
plaprade сейчас офлайн Пожаловаться на plaprade   Ответить с цитированием Мультицитирование сообщения от plaprade Быстрый ответ на сообщение plaprade

9 октября 2013, 7:14:35 PM   # 4
 
 
Сообщений: 12
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Если выход SHA256 больше, чем п она будет просто "обтекать" и работа.

Хотя, теперь, когда я думаю об этом, если выход из вашей SHA256 было ровно п, что, вероятно, вызовет проблемы.

Но, то вероятность выхода из SHA256 быть точно п 1/2256

Тебе не следует "обтекать" или уменьшить число по модулю п.

Если целое число == 0 или или >= П, то вы должны отказаться от него полностью и создать новый секретный ключ, используя новый секрет. В противном случае вы бы введение уклон в сторону более низкого нормированных частных ключей.
plaprade сейчас офлайн Пожаловаться на plaprade   Ответить с цитированием Мультицитирование сообщения от plaprade Быстрый ответ на сообщение plaprade

9 октября 2013, 7:17:51 PM   # 5
 
 
Сообщения: 2114
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Так что, brainwallet.org или любые из других сайтов brainwallet отвергает проходят фразы, которые происходят в хэш выше п?
BurtW сейчас офлайн Пожаловаться на BurtW   Ответить с цитированием Мультицитирование сообщения от BurtW Быстрый ответ на сообщение BurtW

9 октября 2013, 7:24:05 PM   # 6
 
 
Сообщения: 539
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Так что, brainwallet.org или любые из других сайтов brainwallet отвергает проходят фразы, которые происходят в хэш выше п?

Вероятность хэш выше п равна 1/2 ^ 128, так что следует считать практически невозможно достичь.
Sergio_Demian_Lerner сейчас офлайн Пожаловаться на Sergio_Demian_Lerner   Ответить с цитированием Мультицитирование сообщения от Sergio_Demian_Lerner Быстрый ответ на сообщение Sergio_Demian_Lerner

9 октября 2013, 7:37:17 PM   # 7
 
 
Сообщения: 1008
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Так что, brainwallet.org или любые из других сайтов brainwallet отвергает проходят фразы, которые происходят в хэш выше п?

Вероятность хэш выше п равна 1/2 ^ 128, так что следует считать практически невозможно достичь.


Я понимаю, что это очень маловероятно ... но для моего собственного понимания того, как работает Bitcoin, мне интересно знать, что происходит, если вы генерировать секретный ключ целое число, которое больше, чем п ...

Я на самом деле реализовать свой собственный (очень неэффективный) вариант алгоритма ECDSA, так что я знаю, что вы можете выбрать закрытый ключ за пределами диапазона и алгоритм еще может функционировать нормально (путем оборачивания вокруг) ... но это то, что поведение по умолчанию Bitcoin это?

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

9 октября 2013, 8:02:46 PM   # 8
 
 
Сообщения: 2114
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Вероятность хэш выше п равна 1/2 ^ 128, так что следует считать практически невозможно достичь.

На самом деле (2256 - п) / 2256 = 1 - п / 2256, которая очень близка к нулю.
BurtW сейчас офлайн Пожаловаться на BurtW   Ответить с цитированием Мультицитирование сообщения от BurtW Быстрый ответ на сообщение BurtW

10 октября 2013, 3:43:42 AM   # 9
 
 
Сообщения: 560
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

котировка
но это то, что поведение Bitcoin по умолчанию?
Что ты имеешь ввиду "по умолчанию Bitcoin"? Вы имеете в виду Bitcoin-QT? Биткойн-интервал QT выбирает случайное число в соответствующем диапазоне; он не использует алгоритм SHA-256. Таким образом, он не имеет этой проблемы. Brainwallets использовать SHA-256. HD бумажники использовать HMAC_SHA512. Вы имеете в виду какой-либо из тех, в частности?

Правильный ответ, если используется алгоритм SHA-256 для генерации ключа, чтобы отклонить ключ и повторите попытку.

Как было отмечено, хотя, это все спорно при написании приложения. При написании стандарта вы хотели бы получить информацию, как это право. Но в ходе реализации это не важно, так как код вы пишете, чтобы проверить это никогда не сработает.
fpgaminer сейчас офлайн Пожаловаться на fpgaminer   Ответить с цитированием Мультицитирование сообщения от fpgaminer Быстрый ответ на сообщение fpgaminer

10 октября 2013, 3:48:01 AM   # 10
 
 
Сообщения: 1008
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

котировка
но это то, что поведение Bitcoin по умолчанию?
Что ты имеешь ввиду "по умолчанию Bitcoin"? Вы имеете в виду Bitcoin-QT? Биткойн-интервал QT выбирает случайное число в соответствующем диапазоне; он не использует алгоритм SHA-256. Таким образом, он не имеет этой проблемы. Brainwallets использовать SHA-256. HD бумажники использовать HMAC_SHA512. Вы имеете в виду какой-либо из тех, в частности?

Правильный ответ, если используется алгоритм SHA-256 для генерации ключа, чтобы отклонить ключ и повторите попытку.

Как было отмечено, хотя, это все спорно при написании приложения. При написании стандарта вы хотели бы получить информацию, как это право. Но в ходе реализации это не важно, так как код вы пишете, чтобы проверить это никогда не сработает.

Попался. Благодарю.
chriswilmer сейчас офлайн Пожаловаться на chriswilmer   Ответить с цитированием Мультицитирование сообщения от chriswilmer Быстрый ответ на сообщение chriswilmer

10 октября 2013, 4:52:04 AM   # 11
 
 
Сообщения: 905
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Вы, скорее всего, ввести ошибку в обработке особого случая, чем шанс обработчика вызываются даже один раз в всей жизни вашего приложения.
maaku сейчас офлайн Пожаловаться на maaku   Ответить с цитированием Мультицитирование сообщения от maaku Быстрый ответ на сообщение maaku

10 октября 2013, 5:23:29 AM   # 12
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Вы, скорее всего, ввести ошибку в обработке особого случая, чем шанс обработчика вызываются даже один раз в всей жизни вашего приложения.
Это довольно легко проверить повторные попытки, просто изменить критерии сравнения. Для того, чтобы сделать менее создает certificational слабость, которая уменьшает безопасность подписи ниже 128 бит. Уровень тестирования, необходимого для адекватного решения не существенно по сравнению с _everything else_ о процессе, так как есть много других ошибок, которые вы могли бы сделать, которые бы легко просочиться закрытый ключ, но оставить программное обеспечение, очевидно, работает правильно.
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

12 октября 2013, 7:50:35 AM   # 13
 
 
Сообщения: 196
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

К сожалению, если это было предложено в 1000 раз уже ...

И его на самом деле очень близко к теме самого первого вопроса я спросил на этом форуме ...

bitaddress.org позволяет ввести шестнадцатеричный секретный ключ, и пытаются несколько различных значений (включая все FFFF и все 0000) Я думал, что я нашел столкновение. На самом деле оказалось, что все 0000 нарушил алгоритм (bitaddress.org) и только что вернулся один и тот же ключ, что и предыдущей попытки. Но дальше играя подтвердил, что ключевые ценности делать обтекать в п значения (по крайней мере, в том смысле, генерирующего то же значение открытого ключа, и, следовательно, решения, от закрытого ключа). Это также случай с версией алгоритма ECDSA, используемого pywallet. Что касается Bitcoin-QT, я оставлю его разработчикам, чтобы комментировать, поскольку я не получил мою голову вокруг этого кода еще.

Да, и некоторые советы. Не используйте SHA256 для brainwallet. Слишком много жуликов порождающих радужных таблиц и радикальные операции. Если нужно, то по крайней мере, использовать какое-то соль, чтобы сделать их работу сложнее.
J35st3r сейчас офлайн Пожаловаться на J35st3r   Ответить с цитированием Мультицитирование сообщения от J35st3r Быстрый ответ на сообщение J35st3r

14 октября 2013, 1:07:54 AM   # 14
 
 
Сообщения: 1008
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

К сожалению, если это было предложено в 1000 раз уже ...

И его на самом деле очень близко к теме самого первого вопроса я спросил на этом форуме ...

bitaddress.org позволяет ввести шестнадцатеричный секретный ключ, и пытаются несколько различных значений (включая все FFFF и все 0000) Я думал, что я нашел столкновение. На самом деле оказалось, что все 0000 нарушил алгоритм (bitaddress.org) и только что вернулся один и тот же ключ, что и предыдущей попытки. Но дальше играя подтвердил, что ключевые ценности делать обтекать в п значения (по крайней мере, в том смысле, генерирующего то же значение открытого ключа, и, следовательно, решения, от закрытого ключа). Это также случай с версией алгоритма ECDSA, используемого pywallet. Что касается Bitcoin-QT, я оставлю его разработчикам, чтобы комментировать, поскольку я не получил мою голову вокруг этого кода еще.

Да, и некоторые советы. Не используйте SHA256 для brainwallet. Слишком много жуликов порождающих радужных таблиц и радикальные операции. Если нужно, то по крайней мере, использовать какое-то соль, чтобы сделать их работу сложнее.

Спасибо за ответ и советы.

Интересно, что полуспециальных пользователи заинтересованы. Я думаю, что есть много пользователей, которые не действительно хотят знать, как работает ECDSA, но они не хотят знать, что "действительный" закрытый ключ. Не слишком много мест, говорят, что любое целое число от 1 до N-1 и указать значение п (и, что еще хуже, я нашел несколько мест, которые отметили, что выход SHA256 является допустимым ключом, который не так ... и вероятности есть ничего не делать с ней, если она ведет пользователь думать, что "все значения FFFF" набран вручную действителен).
chriswilmer сейчас офлайн Пожаловаться на chriswilmer   Ответить с цитированием Мультицитирование сообщения от chriswilmer Быстрый ответ на сообщение chriswilmer

15 октября 2013, 6:51:13 AM   # 15
 
 
Сообщения: 1568
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

К сожалению, если это было предложено в 1000 раз уже ...

И его на самом деле очень близко к теме самого первого вопроса я спросил на этом форуме ...

bitaddress.org позволяет ввести шестнадцатеричный секретный ключ, и пытаются несколько различных значений (включая все FFFF и все 0000) Я думал, что я нашел столкновение. На самом деле оказалось, что все 0000 нарушил алгоритм (bitaddress.org) и только что вернулся один и тот же ключ, что и предыдущей попытки. Но дальше играя подтвердил, что ключевые ценности делать обтекать в п значения (по крайней мере, в том смысле, генерирующего то же значение открытого ключа, и, следовательно, решения, от закрытого ключа). Это также случай с версией алгоритма ECDSA, используемого pywallet. Что касается Bitcoin-QT, я оставлю его разработчикам, чтобы комментировать, поскольку я не получил мою голову вокруг этого кода еще.

Да, и некоторые советы. Не используйте SHA256 для brainwallet. Слишком много жуликов порождающих радужных таблиц и радикальные операции. Если нужно, то по крайней мере, использовать какое-то соль, чтобы сделать их работу сложнее.

Я прочитал очень интересную нить до того, где было показан, brainwallets с общими фразами, как "пароль" а также "люблю" были сделки sweeped из них быстро. Использование соли, безусловно, сделает лучше безопасность.
б! г сейчас офлайн Пожаловаться на б! Г   Ответить с цитированием Мультицитирование Сообщения от б! Г Быстрый ответ на сообщение б! Г

15 октября 2013, 7:05:46 AM   # 16
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Я прочитал очень интересную нить до того, где было показан, brainwallets с общими фразами, как "пароль" а также "люблю" были сделки sweeped из них быстро.
"brainwallets" гораздо более сложные, чем те (например, те, с 60+ входами символов), были скомпрометированы. Люди не является приемлемым источником случайности.

котировка
Использование соли, безусловно, сделает лучше безопасность.
Если соль является достаточно большим, чтобы обеспечить надлежащую безопасность, вы можете просто использовать пароль для шифрования соли вместо этого, и тогда вы не имеете ключ управление кошмара пароля, который никогда не может действительно быть изменен.
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

15 октября 2013, 9:47:19 AM   # 17
 
 
Сообщения: 2016
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Вероятность хэш выше п равна 1/2 ^ 128, так что следует считать практически невозможно достичь.

На самом деле (2256 - п) / 2256 = 1 - п / 2256, которая очень близка к нулю.
Похоже, п ~ 2 ^ 256 - 2 ^ 128, так что это приходит как 1/2 ^ 128, как сказал Серхио.
Мени Розенфельда сейчас офлайн Пожаловаться на Мень Rosenfeld   Ответить с цитированием Мультицитирование сообщения от Мени Rosenfeld Быстрый ответ на сообщение Мени Rosenfeld

15 октября 2013, 4:34:10 PM   # 18
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Расстраивает анекдот: библиотека Crypto ++ делает не обернуть вокруг значения больше, чем N (и это справедливо не должны). Вместо этого он просто возвращает ошибку сегментации. Я знаю это, потому что в тестировании адрес импортирования, я часто использую строки, как "\ хаа"* 32 для закрытых ключей. Однажды я использовал "\ XFF '* 32, не понимая, я выбирала неверный секретный ключ, который привел к как полный рабочий день отслеживания этого разрушительного "ошибка" который был на самом деле просто разработчик глупостью. 

На практике, если ваш "Генератор случайных чисел" приводит к закрытому ключу, который находится вне диапазона, это более вероятно, плохой ГСЧ или вредоносный результат, чем то, что вы только что получили "несчастливый", С даже посредственного ГСЧ, это не является проблемой.
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

15 октября 2013, 5:32:34 PM   # 19
 
 
Сообщения: 1008
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

Расстраивает анекдот: библиотека Crypto ++ делает не обернуть вокруг значения больше, чем N (и это справедливо не должны). Вместо этого он просто возвращает ошибку сегментации. Я знаю это, потому что в тестировании адрес импортирования, я часто использую строки, как "\ хаа"* 32 для закрытых ключей. Однажды я использовал "\ XFF '* 32, не понимая, я выбирала неверный секретный ключ, который привел к как полный рабочий день отслеживания этого разрушительного "ошибка" который был на самом деле просто разработчик глупостью. 

На практике, если ваш "Генератор случайных чисел" приводит к закрытому ключу, который находится вне диапазона, это более вероятно, плохой ГСЧ или вредоносный результат, чем то, что вы только что получили "несчастливый", С даже посредственного ГСЧ, это не является проблемой.

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

15 октября 2013, 8:55:00 PM   # 20
 
 
Сообщений: 88
Цитировать по имени
цитировать ответ
по умолчанию Re: Не выход SHA256 * немного * слишком большой, чтобы использовать для закрытого ключа?

если закрытый ключ не должен быть 0, как приходит адрес Оружейные генерирует из секретного ключа все 0 имеет баланс? ошибка в оружейной?
https://blockchain.info/de/address/16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM

Кстати, сделка ретранслируется купить 0.0.0.0?
реветь сейчас офлайн Пожаловаться на реветь   Ответить с цитированием Мультицитирование сообщения от реветь Быстрый ответ на сообщение реветь



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW