Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
2 января 2015, 8:37:35 AM   # 1
 
 
Сообщения: 478
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я может быть придирки, так как шансы на выход за границу к или плохой г или s значение настолько ничтожно мала ...

Но мы не должны быть все 100% RFC 6979 совместимый, если это возможно?

Вот некоторые из репозиториев я убирал.

https://github.com/bitpay/bitcore/pull/884

котировка
Я добавил аналогичную функцию Badrs Питон-ECDSA и сравнил результаты.

1 Badrs (иначе заставляя его цикл один раз) дала мне другое значение. Оказывается, вы пропустили один из у = hmac_k (V) шагов во время цикла.

Добавление одного дополнительного v = hmac_k (v) в каждом цикле делает совпасть с питона-ECDSA отлично (я даже пытался до Badrs = 30, и это было прекрасно.

https://tools.ietf.org/html/rfc6979#section-3.2

Если вы будете следовать шаг Н от после к = bits2int (T) вниз, а затем обратно до начала стадии ч к петле.

Код:
К = HMAC_K (V || 0x00)
V = HMAC_K (V),
Пустой T
V = HMAC_K (V),
Т = V (так как мы знаем TLEN == qlen)
к = bits2int (Т)
Как можно видеть, исходный код в Bitcore отсутствовал один V = HMAC_K (V), тогда как Python-ECDSA включает его в петлю.

В том числе это обязательство сделает поведение быть 100% гк 6979 совместимый.

https://github.com/blockchain/My-Wallet/pull/115

котировка
RFC определяет, что если значение K находится вне границ ИЛИ если г или ы равно 0 вы должны цикл через стадии ч, пока не будет найдено надлежащее значение.

Способ bitcore реализует это, в том числе целого под названием "Badrs" что заставит входа в цикл повторного хеширования на стадии ч. Инкрементацию Badrs выполняется в то время как сделай петлю вокруг поколения к и г и вычисления с.

котировка
Единственный способ это может быть проблемой безопасности, если кто-то транзакции + privkey пару, что только что произошло, чтобы произвести из пределов к (или в случае bitcore, в плохой г или с) ... И они решили подписать эту сделку используя как bitcore / blockchain.info и Electrum (использует питон-ECDSA), а затем по какой-то причине размещены эти два подписанных сделок в публичном пространстве каким-то образом.

Edit: Просто поместите в PR в bitcoinjs Пб:

https://github.com/bitcoinjs/bitcoinjs-lib/pull/336
dabura667 сейчас офлайн Пожаловаться на dabura667   Ответить с цитированием Мультицитирование сообщения от dabura667 Быстрый ответ на сообщение dabura667


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


2 января 2015, 2:36:43 PM   # 2
 
 
Сообщения: 464
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

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





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

2 января 2015, 6:20:56 PM   # 3
 
 
Сообщения: 217
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Хорошая находка. Я думаю, что Трезор имеет один и тот же вопрос. Есть, вероятно, больше.

Приглядевшись в спецификации, он требует, чтобы использовать HMAC с той же хэш, который используется для хеширования сообщения. Bitcoin использует двойную SHA256 в то время как все реализации rfc6979 использовать HMAC-singleSHA256. Я не уверен, сколько криптографические библиотеки поддерживают HMAC с двойным SHA256 из коробки. Было бы больше изменений без реальной выгоды.

В противном случае, старый код, созданный идентичная подпись для пограничных случаев с вероятностной 3,7 * 10 ^ -39, за исключением (что на самом деле, действительно крошечное). Тем не менее, это низкая вероятность делает невозможным генерировать реальный тест для этого. Вы также хотите тестовый случай, когда s равен 0, но надежда-меньше грубой силы.


Я думал, что RFC был пример такого случая в разделе А1. Могу ли я ошибаюсь, или они не проверить?

Я думаю, что они не проверяли. Это для другой кривой, так что значения K только 163 бита, но, по крайней мере, K, V, T значения должны быть одинаковыми.

@ Dabura667: вы проверить его на этом примере?
johoe сейчас офлайн Пожаловаться на johoe   Ответить с цитированием Мультицитирование сообщения от johoe Быстрый ответ на сообщение johoe

2 января 2015, 7:02:34 PM   # 4
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Приглядевшись в спецификации, он требует, чтобы использовать HMAC с той же хэш, который используется для хеширования сообщения.
Это не. В РЛК, требования обычно определяются с использованием всех заглавных букв (хотя и не строго обязательно), а также специальные ключевые слова. См RFC 2119. Это делает предложение, чтобы сделать это, но часто есть веские причины не делать этого; например becuase применения наслоения, наличие кода и т.д. (также RFC6979 вроде неловкости медленно уже, обязательное это будет половина снова медленнее в нашем случае будет просто привлечь больше людей делать некорректные ADHOC вещи). В этом случае предложение даже не кажется, уровень должен.

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

Я думаю, что быть правильным в этом отношении очень важно, не только в случае, если кто-то удается найти р = 2 ^ -256 входов, открывающие плохое поведение, но и потому, что тот же код может быть впоследствии повторно использовать для будущих кривых, где поле не так безумно близко к 2 ^ 256, и неспособность правильно осуществить это может превратиться в серьезную уязвимость безопасности. Это также важно сделать правильно, потому что это упрощает обзор: можно механически проверять каждый шаг и не прибегать к трудоёмке криптографического рассуждения о причастности какой-либо конкретного изменения, ошибки (или бэкдора), который убивает вас есть один (и рискованна!) которые выглядели безвредно на поверхности.
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

2 января 2015, 7:08:42 PM   # 5
 
 
Сообщения: 478
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

@ Dabura667: вы проверить его на этом примере?

Они не имеют каких-либо испытаний secp256k1 векторов 
dabura667 сейчас офлайн Пожаловаться на dabura667   Ответить с цитированием Мультицитирование сообщения от dabura667 Быстрый ответ на сообщение dabura667

3 января 2015, 1:55:14 AM   # 6
 
 
Сообщения: 464
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

@ Dabura667: вы проверить его на этом примере?

Они не имеют каких-либо испытаний secp256k1 векторов  
Да, но сначала закодировать общий случай, а затем вы можете упростить.

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

3 января 2015, 5:23:10 AM   # 7
 
 
Сообщения: 478
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

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

Тем не менее, очевидно, если вы будете следовать тест RFC6979 дело, что они "повторно генерировать T" которая включает в себя дополнительные V = HMAC_K (V), что я включен в моей просьбе тянуть.

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

3 января 2015, 5:39:24 AM   # 8
 
 
Сообщения: 464
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

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

Тем не менее, очевидно, если вы будете следовать тест RFC6979 дело, что они "повторно генерировать T" которая включает в себя дополнительные V = HMAC_K (V), что я включен в моей просьбе тянуть.

Что касается случая BIP32, я считаю, составляет большинство мест для вне границ частных ключевых результатов ... но есть так много реализаций BIP32 по сравнению с RFC6979 ... x.x

Я имел в виду вас, как безличное местоимение - не вы за слово. Если я правильно помню, только ярлык относительно Tlen = qlen. Все остальное должны были быть реализованы, и это было сложно в нескольких местах.
hhanh00 сейчас офлайн Пожаловаться на hhanh00   Ответить с цитированием Мультицитирование сообщения от hhanh00 Быстрый ответ на сообщение hhanh00

3 января 2015, 5:45:00 AM   # 9
 
 
Сообщения: 478
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Я думаю, что Трезор имеет один и тот же вопрос.
https://github.com/trezor/trezor-crypto/blob/9fea8f8ab377dc514e40c6fd1f7c89a74c1d8dc6/ecdsa.c#L285

Это выглядит так, как будто у них есть надлежащее количество HMACs, но проверить только в ограничивающих к.

https://github.com/trezor/trezor-crypto/blob/9fea8f8ab377dc514e40c6fd1f7c89a74c1d8dc6/ecdsa.c#L349
https://github.com/trezor/trezor-crypto/blob/9fea8f8ab377dc514e40c6fd1f7c89a74c1d8dc6/ecdsa.c#L362  (Заметка: &K представляет собой значение ы)

Похоже, что если г или s = 0, они не следуют RFC6979 и переходите к следующему циклу генерации K ... вместо этого они бросают ошибку.
Таким образом, единственный способ, которым пользователь может затем отправить их биткоен, чтобы выбрать другой вход, или немного изменить величину посыла изменить хэш транзакции и / или секретный ключ для подписи.
dabura667 сейчас офлайн Пожаловаться на dabura667   Ответить с цитированием Мультицитирование сообщения от dabura667 Быстрый ответ на сообщение dabura667

3 января 2015, 5:46:13 AM   # 10
 
 
Сообщения: 478
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Я имел в виду вас, как безличное местоимение - не вы за слово. Если я правильно помню, только ярлык относительно Tlen = qlen. Все остальное должны были быть реализованы, и это было сложно в нескольких местах.

О, хорошо.

Да, Tlen = qlen предположение придет укусить нас в зад, если Bitcoin когда-либо решает перейти от secp256k1 ... лол (ИДК, если это когда-нибудь случится)
dabura667 сейчас офлайн Пожаловаться на dabura667   Ответить с цитированием Мультицитирование сообщения от dabura667 Быстрый ответ на сообщение dabura667

3 января 2015, 9:09:46 AM   # 11
 
 
Сообщения: 217
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Я думаю, что Трезор имеет один и тот же вопрос.
https://github.com/trezor/trezor-crypto/blob/9fea8f8ab377dc514e40c6fd1f7c89a74c1d8dc6/ecdsa.c#L285

Это выглядит так, как будто у них есть надлежащее количество HMACs, но проверить только в ограничивающих к.

https://github.com/trezor/trezor-crypto/blob/9fea8f8ab377dc514e40c6fd1f7c89a74c1d8dc6/ecdsa.c#L349
https://github.com/trezor/trezor-crypto/blob/9fea8f8ab377dc514e40c6fd1f7c89a74c1d8dc6/ecdsa.c#L362  (Заметка: &K представляет собой значение ы)

Похоже, что если г или s = 0, они не следуют RFC6979 и переходите к следующему циклу генерации K ... вместо этого они бросают ошибку.
Таким образом, единственный способ, которым пользователь может затем отправить их биткоен, чтобы выбрать другой вход, или немного изменить величину посыла изменить хэш транзакции и / или секретный ключ для подписи.

Хорошо, г = 0 (есть указывает на secp256k при х = 0?) Или с = 0 является другим (маловероятно) проблема.

Но я думаю, что нужен этот патч, чтобы быть полностью совместимым (можно затем также удалить переменную т). 
HMAC в строке 290 должен работать на выходе HMAC в строке 283.

Код:
--- а / ecdsa.c
+++ б / ecdsa.c
@@ -280,8 +280,8 @@ ИНТ generate_k_rfc6979 (bignum256 * секрет, Const uint8_t * ПОИ
        hmac_sha256 (к, SizeOf (к), V, SizeOf (к), v);
 
        для (я = 0; я < 10000; я ++) {
-               hmac_sha256 (к, SizeOf (к), V, SizeOf (V), т);
-               bn_read_be (т, тайна);
+               hmac_sha256 (к, SizeOf (к), V, SizeOf (v), v);
+               bn_read_be (v, тайна);
                если (! bn_is_zero (секрет) && bn_is_less (секрет, &order256k1)) {
                        возвращать 0; // хороший номер -> Нет ошибки
                }

Я не проверял это на всех, хотя.
johoe сейчас офлайн Пожаловаться на johoe   Ответить с цитированием Мультицитирование сообщения от johoe Быстрый ответ на сообщение johoe

3 января 2015, 9:21:51 AM   # 12
 
 
Сообщения: 464
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Я думаю, что вы получили что-то смущенный. к = 0 не является такой же, как R = 0 или S = ​​0. Точка на бесконечности не имеет X, Y, но не может быть получена, если к между 1 и N-1 просто потому, что кГс <> 0.
hhanh00 сейчас офлайн Пожаловаться на hhanh00   Ответить с цитированием Мультицитирование сообщения от hhanh00 Быстрый ответ на сообщение hhanh00

3 января 2015, 11:04:41 AM   # 13
 
 
Сообщения: 478
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Я думаю, что вы получили что-то смущенный. к = 0 не является такой же, как R = 0 или S = ​​0. Точка на бесконечности не имеет X, Y, но не может быть получена, если к между 1 и N-1 просто потому, что кГс <> 0.

Они используют C, и по какой-то причине они держали выполнения всех расчетов и мутирует &К, пока он не стал с.

переменная &к является s сигнатуры к тому времени они проверяют его в строке 362.

Я знаю, к нормальному именование для случайного числа в R = кГ (где г = х-х коорд) ... Однако, если вы будете следовать всем операциям, вы увидите, что &К, представляющий (R, S) значение подписи с-х.
dabura667 сейчас офлайн Пожаловаться на dabura667   Ответить с цитированием Мультицитирование сообщения от dabura667 Быстрый ответ на сообщение dabura667

3 января 2015, 11:14:33 AM   # 14
 
 
Сообщения: 478
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Код:
#if USE_RFC6979
// генерировать K детерминировано
если (generate_k_rfc6979 (&к, priv_key, переваривать)! = 0) {    <<< это сохраняет K значение в &К
возвращает 1;
}
#else
// генерировать случайные числа к
если (generate_k_random (&к)! = 0) {
возвращает 1;
}
#endif

// вычислить к * G
scalar_multiply (&к, &Р);    <<< это Calcs кГс и сохраняет его в &р
если (PBY) {
* PBY = R.y.val [0] & 1;
}
// г = (ге моды п)
bn_mod (&R.x, &order256k1);
// если г равно нулю, мы не
если (bn_is_zero (&R.x)) возвращают 2;
bn_inverse (&к, &order256k1);      <<< это имеет модульную инверсию &К по порядку secp256k1, и помещает его обратно в &к (теперь &К есть = (к) ^ - 1)
bn_read_be (priv_key, да);
bn_multiply (&R.x, да, &order256k1);   <<< умножает да * г и сохраняет его в йа
для (я = 0; я < 8; я ++) {
da->Val [I] + = z.val [I];
da->Val [я + 1] + = (DA->Val [я] >> 30);
da->Val [я] &= 0x3FFFFFFF;
}
da->Вал [8] + = z.val [8];                  <<< Этот цикл и операции после него добавляет хэш сообщения (г) до (да * г) и сохраняет его в да ... (теперь это да = г + (да * г))
bn_multiply (да, &к, &order256k1);    <<< умножает &к * да и сохраняет его в &к (теперь &К есть = к ^ -1 * (г + (да * г)) .... который = S)
bn_mod (&к, &order256k1);               <<< модификация &к (который ы) по порядку.
// если к нулю, мы не
если (bn_is_zero (&к)) возвращает 3;           <<< проверив значение сек, если он равен 0
...
...
...
в generate_k_rfc6979 мы на самом деле есть чек, если к 0 или нет ... Линия 285
если (! bn_is_zero (секрет) && bn_is_less (секрет, &order256k1)) {  <<< проверки, если к находится между 1 и порядка - 1 (включительно)
возвращать 0; // хороший номер -> Нет ошибки
}
dabura667 сейчас офлайн Пожаловаться на dabura667   Ответить с цитированием Мультицитирование сообщения от dabura667 Быстрый ответ на сообщение dabura667

3 января 2015, 12:28:01 PM   # 15
 
 
Сообщения: 464
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Ах хорошо. R не может быть 0, если к в нужном диапазоне. S может быть 0, но должен быть повторен в алгоритме ECDSA. Шансы настолько низки, хотя.
hhanh00 сейчас офлайн Пожаловаться на hhanh00   Ответить с цитированием Мультицитирование сообщения от hhanh00 Быстрый ответ на сообщение hhanh00

3 января 2015, 12:44:09 PM   # 16
 
 
Сообщения: 217
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Кстати нет точки на кривом с й = 0, а г = 0 все еще возможен потому, что 04fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036414198f66641cb0ae 1776b463ebdee3d77fe2658f021db48e2c8ac7ab4c92f83621e точка на кривой (но никто не знает к?).

s = 0 имеет место тогда и только тогда, когда г = -r * d, где г хэш сообщения и d закрытый ключ.
johoe сейчас офлайн Пожаловаться на johoe   Ответить с цитированием Мультицитирование сообщения от johoe Быстрый ответ на сообщение johoe

3 января 2015, 1:47:03 PM   # 17
 
 
Сообщения: 464
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Я запутался. Как я сказал ранее, г = 0 не является такой же, как точки на бесконечности.
Если вы можете иметь X = п, вы можете иметь х = 0.
у2 = ах3 + 7 (п) => у2 = 7 (п)
Тем не менее, я не знаю, если вы X = п возможно. Не все X находятся на кривой Fp.

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

3 января 2015, 2:09:40 PM   # 18
 
 
Сообщения: 217
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Я запутался. Как я сказал ранее, г = 0 не является такой же, как точки на бесконечности.
Если вы можете иметь X = п, вы можете иметь х = 0.
у2 = ах3 + 7 (п) => у2 = 7 (п)
Тем не менее, я не знаю, если вы X = п возможно. Не все X находятся на кривой Fp.

s = 0 можно избежать, потому что вы можете найти секретный ключ, как вы сказали.

Есть два простых числа, п = fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f и д = fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141.
Простой п по модулю поля, где двумерный точки живут, а д есть порядок кривых. Так как д < п, точка с координатой х д может быть действительная точка на кривой, и это имеет место для "кривая Bitcoin", Для точки я уже у ^ 2 = д ^ 3 + 7 (мод п) имеет место.

Так как ECDSA вычисляет г = R.x по модулю д, эта точка даст г = 0.

s = 0 также избегать, так как алгоритм, который проверяет подпись делит на с. 
г = 0 исключается, так как только вы знаете, соответствующие к, вы можете подписать каждое сообщение с каждым ключом с г = 0 подписи (это показало бы к).
johoe сейчас офлайн Пожаловаться на johoe   Ответить с цитированием Мультицитирование сообщения от johoe Быстрый ответ на сообщение johoe

3 января 2015, 3:40:19 PM   # 19
 
 
Сообщения: 464
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

О да! Ты прав. Я использовал неправильный модуль.
hhanh00 сейчас офлайн Пожаловаться на hhanh00   Ответить с цитированием Мультицитирование сообщения от hhanh00 Быстрый ответ на сообщение hhanh00

3 января 2015, 4:23:35 PM   # 20
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: bitcoinjs Пб и связанные с ними операции РЕПО не 100% RFC6979 совместимый (только 99,999 ...%)

Хорошо, г = 0 (есть указывает на secp256k при х = 0?) Или с = 0 является другим (маловероятно) проблема.
R.x == 0 не является точкой на кривой; но R.x конгруэнтны 0 (по модулю порядка) _is_ на кривой, и так г может быть равно нулю, поскольку г х значение R мод порядок кривой.

(И аналогично, с может быть нулем, например, у меня есть тест в libsecp256k1 для s == 0:
https://github.com/bitcoin/secp256k1/commit/8d11164bc0e03024d38d5694e81f334ea31ec238#diff-4655d106bf03045a3a50beefc800db21R1210)
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW