Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
19 марта 2014, 4:35:48 PM   # 1
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Bitcoin в значительной мере опирается на криптографически безопасный PRNG и, как мы уже видели из андроида эксплуатации, обеспечивая высокую энтропию часто является проблемой. Эта функциональность обрабатываются операционной системой, что означает безопасность клиента становится в значительной степени зависит от безопасности операционной системы. Даже если скидка возможности трехбуквенный агентств намеренно ослабляя ПСЧ (что они могут сделать даже по причинам, не Bitcoin и пользователям Bitcoin стать сопутствующим ущербом) всегда есть возможность ошибки реализации в определенных ситуациях.

Существует предложение для детерминированных подписей ECDSA
http://tools.ietf.org/html/rfc6979

Это устранило бы необходимость случайных значений как одноразовые номера в подписях транзакций Bitcoin.
HD бумажники устраняют необходимость случайных величин при генерации закрытых ключей.
семена HD бумажник все еще нуждаются в высокой энтропии случайное число, но так как это необходимо только сделать один раз его даже можно было бы сделать с помощью бросков костей (100 рулонов стандартной шести односторонней для 256-битного семени).

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


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


19 марта 2014, 4:44:13 PM   # 2
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

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





http://sourceforge.net/p/bitcoin/mailman/message/31306213/

Я ожидаю, что мы будем делать, что изменения в Bitcoin-QT как часть изменения в libsecp256k1 ... хотя самые последние версии использования OpenSSL что-то вроде H (сообщения || частный || rng_output) в качестве временного значения, так что даже в в случае выхода из строя ГСЧ вы не получите утечку DSA.

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

20 марта 2014, 3:06:04 AM   # 3
 
 
Сообщения: 616
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

http://sourceforge.net/p/bitcoin/mailman/message/31306213/

Я ожидаю, что мы будем делать, что изменения в Bitcoin-QT как часть изменения в libsecp256k1 ... хотя самые последние версии использования OpenSSL что-то вроде H (сообщения || частный || rng_output) в качестве временного значения, так что даже в в случае выхода из строя ГСЧ вы не получите утечку DSA.

Это также случай, когда OpenSSL использует свой собственный внутренние хаотичности бассейн посеянный первоначально от ОС. Существует не какая-либо конкретная причина, что вы не могли бы отправить кости ввода в том, что, хотя интерфейс высева не подвергаются в Bitcoin в настоящее время, хотя, возможно, это должно быть.

Что Вы думаете об этом?

http://safecurves.cr.yp.to/

Они не считают secp256k1 быть безопасным

Существует также это видео лекции

SafeCurves: Выбор безопасных кривых для эллиптических-Curve Cryptography
Daniel J. Bernstein и Tanja Lange

https://archive.org/details/ShmooCon2014_SafeCurves

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

20 марта 2014, 3:07:18 AM   # 4
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Что Вы думаете об этом?
Пожалуйста, поищите на форуме. Это было отвечено ранее:
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

5 мая 2014, 8:58:43 AM   # 5
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Извините за возможно глупый вопрос.

Есть ли какая-либо причина с использованием значения, которое становится подписанным как R, а?

Я имею в виду, кроме того, что это может быть из диапазона.

Но будет ли какие-либо технические или вопросы безопасности, имеющие одинаковое значение при двух различных входных Params?
piotr_n сейчас офлайн Пожаловаться на piotr_n   Ответить с цитированием Мультицитирование сообщения от piotr_n Быстрый ответ на сообщение piotr_n

5 мая 2014, 4:07:01 PM   # 6
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Извините за возможно глупый вопрос.

Есть ли какая-либо причина с использованием значения, которое становится подписанным как R, а?

Я имею в виду, кроме того, что это может быть из диапазона.

Но будет ли какие-либо технические или вопросы безопасности, имеющие одинаковое значение при двух различных входных Params?

Ну пару вещей.

1) Вы не поставляете R вы поставку к (случайное слову) и R вычисляется из этого. 
2) к (и, таким образом вычисленное R) должен быть уникальным и неизвестным. ТХ (или хэш ТХ) является уникальным, но это не является неизвестным.

Простой вариант:
Если злоумышленник может определить к, то дается сообщение (ТХ) и Публичных (оба доступны в подписанной сделки), атака может вычислить закрытый ключ.

RFC6979 является решением. Упрощенная она использует HMAC ( http://en.wikipedia.org/wiki/Hash-based_message_authentication_code ) Из закрытого ключа и сделки, чтобы создать значение K, которое одновременно является детерминированным и неизвестно (если вы не знаете, закрытый ключ в этом случае держать K секрет спорный вопрос).

Я реализовал это в моей C # библиотеки, другие реализовали ее в библиотеках для других языков (C ++, Java, Perl, PHP, JS). В другом потоке есть пол-стандартный набор тестовых векторов (я попросил автор RFC6979 включать стандартный набор тестовых векторов для SECP256K1 в RFC документе). Хорошая вещь, что RFC6979 не Bitcoin конкретных поэтому мы надеемся, он будет широко поддерживается в стандартных криптографических библиотек. Один вопрос ж / RFC6979 это довольно сложно, как он предназначен для обработки всех возможных случаев краев. Биткойн (с использованием HMAC-SHA-256) представляет собой довольно упрощена использование с фиксированными ключа и хэш размеров, так что большая часть сложности "неиспользуемый"  можно реорганизовать RFC6979, чтобы удалить проверки и преобразования для обработки неиспользованных случаев, чтобы создать "Снижение RFC6979" который может быть использован только для Bitcoin, что гораздо меньше и проще понять (полезно, скажем, при Bitcoin конкретной библиотеки).

Если у меня есть шанс, я буду писать некоторую документацию.

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

5 мая 2014, 4:16:36 PM   # 7
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Ну вы не можете просто использовать значение подписания. Значение к должно быть как уникальное и UNKNOWN. Если злоумышленник знает значение K, даже если он является уникальным, они могут получить секретный ключ.
Я, хотя проблема была со значениями R повторного использования. Затем вычислить S, для конкретного R и секретного ключа.
И вы публикуете значения R в любом случае, как часть подписи, поэтому по определению они не могут быть UNKNOWN.

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

5 мая 2014, 4:24:21 PM   # 8
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Ну вы не можете просто использовать значение подписания. Значение к должно быть как уникальное и UNKNOWN. Если злоумышленник знает значение K, даже если он является уникальным, они могут получить секретный ключ.
Я, хотя проблема была со значениями R повторного использования. Затем вычислить S, для конкретного R и секретного ключа.
И вы публикуете значения R в любом случае, как часть подписи, поэтому по определению они не могут быть UNKNOWN.


Это упрощение. R вычисляется к. Если вы используете один и тот же K вы будете в конечном итоге с той же R. Если вы используете один и тот же K, то вы будете в конечном итоге с тем же R. Однако из-за некоторых ECDSA магии, зная R не позволяет вам знать, к (так же, как зная Публичный не позволяешь знать PrivKey).

R вычисляется к. Вот фрагмент кода. Это C #, но хорошая вещь о С # это довольно высокий уровень, и, таким образом, легко читается, как псевдо-код

Код:
           делать // Генерируем с.  
            {
                BigInteger к;
                делать // Генерирует г.
                {
                    к = KGenerator.GetK ();
                    вар р = G.Multiply (к);
                    г = p.X.Mod (N);
                }
                в то время как (r.IsZero); // г нуля (очень маловероятно), является недействительной подписью. Петля, пока мы случайно не даем действительный г.

                . S = k.ModInverse (N) .Multiply (e.Add (d.Multiply (г))) Mod (N);
            }
            в то время как (s.IsZero); // втор нуля (очень маловероятно), является недействительной подписью. Петля, пока случайно не производят действительный с.

            если (forceCanonical && s > N / 2)
                s = N - с;

            возвращать новый [] {R, S};

Стараясь не слишком далеко в траву ECDSA но G является базовой точкой secp256k1 кривой.

Таким образом, мы генерируем к (либо случайным или детерминированным).
Точка р получается путем умножения на к G. Затем мы делаем моды из N (чтобы избежать р быть больше, чем N). R является то, что Modded значение.

Это так же безопасно, как Q (Публичные) поколения
Код:
R = Ск (где R < N, и к является случайным 256 битым Nonce)
Q = Б (где Q < N, и г является случайным 256 битыми секретным ключом)

Там не представляется возможным способом для получения к- от R. Если есть, то вы можете также получить д из G, а также (privKey из Публичных). Это свойство, где ECDSA получает свою безопасность с.







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

5 мая 2014, 4:25:33 PM   # 9
 
 
Сообщения: 1778
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

О, я думаю, что я понимаю.
R является функцией (к, ключ), в то время как S, если функция (R, хэш).
Глупый я

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

5 мая 2014, 4:35:09 PM   # 10
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

О, я думаю, что я понимаю.
R является функцией (к, ключ), в то время как S, если функция (R, хэш).
Глупый я

В любом случае, спасибо за ответ.

Да и что функция R является функцией один из способов. И, наконец, чтобы не ставить под угрозу безопасность секретного ключа, к должно быть секретом (высвобождение к эквивалентно выбросу закрытого ключа). В связи с выводом R, что означает, что к должно быть уникальным (хорошо уникальным по отношению к закрытому ключу).

Совершенно верно нет ничего плохого с использованием случайных к. Это дешевый и простой способ (в теории), чтобы обеспечить к уникально без надежно хранить к. Дело в том, что, опираясь на ПСЧ имеет свои собственные наборы рисков. Наивная альтернатива была бы просто выбрать случайные к-семена и приращение его для каждой операции. "к-счетчик" может быть зашифрована в бумажнике. Это будет работать, но если злоумышленник понюхал значение K из памяти, что позволит им не только поставить под угрозу текущий секретный ключ, но любые частные ключи, используемые в предыдущих операциях.

RFC6979 является способом обеспечения уникальных значений K, не полагаясь на либо ПСЧЕ или сохранения высокого риска "K счетчик",

Кроме того, они не тупые вопросы; ECC намного сложнее "получить" чем открытые ключи систем на основе целочисленной факторизации (RSA). Даже сейчас, когда я "возьми" (Через много проб и ошибок), я часто использую неправильную терминологию. К счастью gmaxwell указывает их. Он один из немногих людей, которых я уверенно доверяю его ответы. Когда он говорит о ECC (или шифровании вообще) я останавливаюсь и слушаю.
DeathAndTaxes сейчас офлайн Пожаловаться на DeathAndTaxes   Ответить с цитированием Мультицитирование сообщения от DeathAndTaxes Быстрый ответ на сообщение DeathAndTaxes

5 мая 2014, 4:52:54 PM   # 11
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

http://sourceforge.net/p/bitcoin/mailman/message/31306213/

Я ожидаю, что мы будем делать, что изменения в Bitcoin-QT как часть изменения в libsecp256k1 ... хотя самые последние версии использования OpenSSL что-то вроде H (сообщения || частный || rng_output) в качестве временного значения, так что даже в в случае выхода из строя ГСЧ вы не получите утечку DSA.

Это также случай, когда OpenSSL использует свой собственный внутренние хаотичности бассейн посеянный первоначально от ОС. Существует не какая-либо конкретная причина, что вы не могли бы отправить кости ввода в том, что, хотя интерфейс высева не подвергаются в Bitcoin в настоящее время, хотя, возможно, это должно быть.

Чтение через это сообщение нить это выглядит предлагаемый план компиляция флаг времени для включения libsecp256k1. Это было почти шесть месяцев назад. Что же случилось с этой идеей?
DeathAndTaxes сейчас офлайн Пожаловаться на DeathAndTaxes   Ответить с цитированием Мультицитирование сообщения от DeathAndTaxes Быстрый ответ на сообщение DeathAndTaxes

5 мая 2014, 6:04:15 PM   # 12
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

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

5 мая 2014, 6:40:33 PM   # 13
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Чтение через это сообщение нить это выглядит предлагаемый план компиляция флаг времени для включения libsecp256k1. Это было почти шесть месяцев назад. Что же случилось с этой идеей?
Это часть делает OpenSSL необязательными. Есть в настоящее время полудюжины тянуть REQ в основном ждет выхода 0.9.2, чтобы получить слитый, которые двигают этот подпроект вперед.

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

5 мая 2014, 10:23:24 PM   # 14
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Я думаю, что детерминированный к-значение будет меньше подвержен ошибкам (например, Android повторить к-значение ошибки). Тем не менее, RFC6979 кажется более сложным, чем это должно быть. Почему я не могу просто взять секретный ключ 256-битную, сцепить его с 256-битным кешем я собираюсь подписать, применить SHA256 к полученному 512-битное целое число

   к = sha256 (private_key || hash_to_sign)

и (предполагая, что 0<К<п) использовать полученный хэш как мой каждое сообщение секретного номер?
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R

5 мая 2014, 11:50:51 PM   # 15
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Я думаю, что детерминированный к-значение будет меньше подвержен ошибкам (например, Android повторить к-значение ошибки). Тем не менее, RFC6979 кажется более сложным, чем это должно быть. Почему я не могу просто взять секретный ключ 256-битную, сцепить его с 256-битным кешем я собираюсь подписать, применить SHA256 к полученному 512-битное целое число
   к = sha256 (private_key || hash_to_sign)
и (предполагая, что 0<К<п) использовать полученный хэш как мой каждое сообщение секретного номер?
Потому что они пытаются сделать что-то вроде атак расширения избежать в хэш-функций (которые все структуры хэш-функции MD имеют, по крайней мере, в теории), так как его спецификацию, которая является хэш-функция нейтралью. Это может привести к вещам, как подготовка сообщений с определенной структурой, чтобы подписать, что уменьшить кажущуюся однородность к ведущему к компромиссу. Сразу же я настоятельно рекомендую против вашей простой конструкции и предполагаю, что это будет с помощью HMAC-SHA256 вместо того, чтобы закрыть озабоченность расширения атаки. Конечно, навалить еще несколько слоев мнения, и вы, вероятно, получить RFC. Вдвойне поэтому, когда вы хотите быть хэш-функции и применение независимого (например, опасение расширения не так много вопроса в Bitcoin с SHA256 и ... несколькими приложениями, где вы бы вслепую подписать какой-то хэш, не зная, что это было).
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

5 мая 2014, 11:53:16 PM   # 16
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Я думаю, что детерминированный к-значение будет меньше подвержен ошибкам (например, Android повторить к-значение ошибки). Тем не менее, RFC6979 кажется более сложным, чем это должно быть. Почему я не могу просто взять секретный ключ 256-битную, сцепить его с 256-битным кешем я собираюсь подписать, применить SHA256 к полученному 512-битное целое число

   к = sha256 (private_key || hash_to_sign)

и (предполагая, что 0<К<п) использовать полученный хэш как мой каждое сообщение секретного номер?


Я не считаю, что это было бы "неправильно" чтобы сделать это, но я хотел бы использовать HMAC-256 (private_key, hash_to_sign) над SHA256 (private_key || hash_to_sign) по целому ряду причин. Подробнее об этом ниже. Автор RFC 6979 принял очень осторожный подход и несколько раундов HMAC в сочетании с инициализацией предназначены для упрочнения от утечки информации в том случае, если частичные компромиссы базового алгоритма происходят в будущем. Хорошая безопасность смотрит не только сегодняшние атаки векторов, но вероятные будущие векторы атак на основе детального понимания того, как безопасность алгоритма может ухудшиться через криптоанализ. Я знаю достаточно, чтобы знать "не свернуть свой собственный крипто", Стандарт становится более сложным, поскольку он предназначен для обработки любого HMAC, любого размера дайджеста, любой ключа, любые параметров кривых, а любое сообщения дайджеста. Для Bitcoin все те статичны многие из краевых случаев не представляется возможным. Это позволяет реорганизовать стандарт производить упрощенный, который работает только с "Bitcoin" (256 бит хэша, 256 битых секретный ключ, secp256k1 кривые, HMAC-SHA256). Если взять простую реализацию и добавить в различном застывании я сомневаюсь, что это будет намного проще, чем реорганизованный RFC6979.

Почему HMAC-хэш над простым хэш? HMACs не является уязвимым для атак расширения длины, и они могут уменьшить столкновения уязвимости основного хэша. В качестве примера MD5 криптографический сломан, но HMAC-MD5 еще надежная, без прообраза или столкновения атак (быстрейшая атака грубой силы).  Я бы не рекомендовал никому использовать HMAC-MD5 только предвидение в тот день, когда SHA-2 может быть следующей MD5.

Одна из причин, чтобы использовать RFC6979 вместо некоторых "свернуть свой собственный" является повторяемость. Если ваше аппаратное устройство реализует RFC6979 посторонние может проверять его при наличии аппаратных и другой совместимый клиент RFC6979 генерировать ту же операцию и сравнения подписей. Если устройство использует детерминированные подписи и реализует BIP32 с прилагаемого семени пользователя становится намного труднее построить в лазейки, чтобы украсть у пользователя. Хотя любые пользовательские реализации также можно было бы проверить, если у вас есть пять различных реализаций, что просто означает, что в пять раз больше работы, чтобы проверить их все. Мы могли бы придумать упрощенную детерминированной подписи протокола BIP и призываем всех разработчиков стандартизировать вокруг, что, тем не менее, даже в случае успеха это очень маловероятно, что "BIP XYZ" никогда не будет реализован в любых основных криптографических библиотек. RFC6979 некоторый прогресс на этом фронте. Надувной замок в настоящее время поддерживает его и с достаточно принятия, OpenSSL, .Net Framework, моно и т.д. будет также. Это будет означать более широкое сообщество, глядя на кодовом и больше глаз всегда лучше.

Простой вариант: Когда я смотрю на существующий стандарт я смотрю на него с "Есть ли причина, почему этот стандарт не может быть использован?"  Для RFC6979 единственно возможный ответ "это слишком сложно" и для меня это не является достаточным, чтобы выбросить его в пользу другого стандарта. Большинство пользователей (или даже разработчики) не будет реализовывать RFC6979 вручную, они будут надеяться, будет с использованием хорошо проверенных библиотек. Тестовые векторы и детерминированный характер в сочетании с эффектом лавинного сделать это удаленный шанс, что вы могли "понять неправильно" и до сих пор проходят юнит-тесты.

Конечно, эта тема не была бы полной без:

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

6 мая 2014, 4:41:50 AM   # 17
 
 
Сообщений: 13
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Привет всем, я поднял глаза реализация RFC6979 в pybitcointools (Строка 367), и это очень компактный. Как вы упоминаете выше, реализация делается намного проще, если мы только учитывая Bitcoin USECASE, так что не так много сложностей с точки зрения проверки кода.

Я лично тоже очень нравится детерминированной к по причинам, указанным выше:

  • Можно использовать твердый источник случайности (например, кости) для первоначального семени высокой энтропии и не беспокоиться о ПСЧ,
  • Воспроизводимость, модульное тестирование и стандартизированные векторы испытаний.
christianlundkvist сейчас офлайн Пожаловаться на christianlundkvist   Ответить с цитированием Мультицитирование сообщения от christianlundkvist Быстрый ответ на сообщение christianlundkvist

6 мая 2014, 6:08:03 AM   # 18
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: Может ли детерминированных подпись можно использовать для снижения зависимости Bitcoin на ПСЧ?

Я думаю, что детерминированный к-значение будет меньше подвержен ошибкам (например, Android повторить к-значение ошибки). Тем не менее, RFC6979 кажется более сложным, чем это должно быть. Почему я не могу просто взять секретный ключ 256-битную, сцепить его с 256-битным кешем я собираюсь подписать, применить SHA256 к полученному 512-битное целое число

   к = sha256 (private_key || hash_to_sign)

и (предполагая, что 0<К<п) использовать полученный хэш как мой каждое сообщение секретного номер?


Я не считаю, что это было бы "неправильно" чтобы сделать это, но ... ..

Простой вариант: Когда я смотрю на существующий стандарт я смотрю на него с "Есть ли причина, почему этот стандарт не может быть использован?"  Для RFC6979 единственно возможный ответ "это слишком сложно" и для меня это не является достаточным, чтобы выбросить его в пользу другого стандарта. Большинство пользователей (или даже разработчики) не будет реализовывать RFC6979 вручную, они будут надеяться, будет с использованием хорошо проверенных библиотек. Тестовые векторы и детерминированный характер в сочетании с эффектом лавинного сделать это удаленный шанс, что вы могли "понять неправильно" и до сих пор проходят юнит-тесты.


Спасибо за ответ. Я, вероятно, использовать RFC6979 по причинам, вы сказали, что самое главное, потому что, используя стандарт с юнит-тестов будет больше доверия вдохновляющим, чем некоторые дома прядения версии. Проблема я сталкиваюсь на регулярной основе интеграции уже написанный код в 16-битный микроконтроллер прошивкой со значительными ограничениями памяти и процессора; Я всегда спрашиваю себя, что самый простой способ реализации что-то есть. 
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW