Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
27 января 2011, 9:32:33 PM   # 1
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
До сих пор, dirtyfilthy и я практически используя один и тот же код для декодирования открытых ключей, генерации пары ключей, подписав с секретными ключами и проверки подписей. Вот код: http://bitcointalk.org/index.php?topic=2957.msg41493#msg41493

Но после того, как, наконец, убедившись, что я даю все, что правильные данные, получать правильные хэш, кросс-проверки все с данными и хэш, генерируемых официальным клиентом Bitcoin и т.д., наша проверка подписи до сих пор не работает. Это может быть либо, что я не преобразовывать байты ключа к объекту ECPublicKey правильно, или (как мне кажется, немного более вероятно), что я не использую правильный код для проверки подписи. Я ничего об BouncyCastle не знаю (и не может найти много способов документации вне частичного Javadocs) или о деталях низкого уровня ECDSA (или открытого ключа криптографии в целом), что делает его гораздо труднее даже не знаю, где искать.

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

Есть ли кто-нибудь с любым опытом Bitcoin и BouncyCastle, которые могут помочь с этим?

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


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


27 января 2011, 11:32:31 PM   # 2
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

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





Я отправил в список рассылки BouncyCastle, тоже: http://www.bouncycastle.org/devmailarchive/msg11643.html
сейчас офлайн пожаловаться на   Ответить с цитированием Мультицитирование сообщение от Быстрый ответ на сообщение

28 января 2011, 12:05:46 AM   # 3
 
 
Сообщения: 314
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Вот что я хотел бы предложить. Создание новой пары ключей в коде. Хэш и подписать что-то вроде «ABC». Затем посмотреть, если вы можете проверить подпись. Если он работает, опубликовать ключ и подпись здесь. Я могу попытаться проверить сиговый с OpenSSL. Я был успешным в проверке подписей Bitcoin, так что это может выявить различия в двух библиотеках.
Hal сейчас офлайн Пожаловаться на Hal   Ответить с цитированием Мультицитирование сообщения от Hal Быстрый ответ на сообщение Hal

28 января 2011, 12:23:51 AM   # 4
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Вот что я хотел бы предложить. Создание новой пары ключей в коде. Хэш и подписать что-то вроде «ABC». Затем посмотреть, если вы можете проверить подпись. Если он работает, опубликовать ключ и подпись здесь. Я могу попытаться проверить сиговый с OpenSSL. Я был успешным в проверке подписей Bitcoin, так что это может выявить различия в двух библиотеках.

я использовал "азбука",

Код:
Данные: 616263
открытый ключ: 04cc2fcc1e68683f61ccc34b83737580bcc574dee4c0ec3c93fcbe8a0fce990187a92ecc95631f90229e853c209d865cd3f69a45a0c346c1a22d06f5103a5d78b5
Подпись: 3046022100cb4a3dc8cc0a149ef4e29b0501b84689514693c7a0a76107c13f3ecb0ef843d8022100bbc2b4b6b1879fbfa3883d0256fca1358884e215094dee36957759f6407b7502

И я могу проверить это и другие вещи, порожденную мой код ... просто не могу проверить вещи из Bitcoin, и я не знаю, если Bitcoin будет проверить это.

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

28 января 2011, 2:04:13 AM   # 5
 
 
Сообщения: 314
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Ну моя попытка проверить, что сиговых в OpenSSL не удалось, он не проверил. Это не удивительно, так как эти два метода также не согласились о справедливости Bitcoin сига. Я надеялся, что увижу что-то неправильно в структурах данных, но я не сделал. Ваш Публичных является действительной точкой ЕС на secp256k1 кривого. Подпись, как представляется, правильно отформатирован.

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

28 января 2011, 2:34:51 AM   # 6
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Интересно, если они используют разные кодировки? Я смотрю на этой странице дока для материала OpenSSL ECDSA (http://www.openssl.org/docs/crypto/ecdsa.html), И есть много говорилось о кодировке DER ... Я не уверен, но я предполагаю, что Bitcoin использует DER, но я не могу сказать, является ли или нет кода Java и BouncyCastle используя DER или другую кодировку ,
сейчас офлайн пожаловаться на   Ответить с цитированием Мультицитирование сообщение от Быстрый ответ на сообщение

28 января 2011, 2:56:40 AM   # 7
 
 
Сообщений: 75
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Bitcoin использует необработанный формат, который не DER закодированные, какой код вы используете, чтобы выкачать этот ключ? вы хотите использовать pubkey.encode (), чтобы получить версию МЭД.
dirtyfilthy сейчас офлайн Пожаловаться на dirtyfilthy   Ответить с цитированием Мультицитирование сообщения от dirtyfilthy Быстрый ответ на сообщение dirtyfilthy

28 января 2011, 3:21:35 AM   # 8
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Bitcoin использует необработанный формат, который не DER закодированные, какой код вы используете, чтобы выкачать этот ключ? вы хотите использовать pubkey.encode (), чтобы получить версию МЭД.

Я считаю, что я использую все тот же код, который вы размещены здесь: http://bitcointalk.org/index.php?topic=2957.msg41493#msg41493

Что вы знаете о подписи? Являются ли они закодированы в некотором роде в Bitcoin или BouncyCastle?
сейчас офлайн пожаловаться на   Ответить с цитированием Мультицитирование сообщение от Быстрый ответ на сообщение

28 января 2011, 3:48:22 AM   # 9
 
 
Сообщения: 314
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Подписи DER закодированные в Bitcoin, и ваша подпись выше в том же формате. 30 представляет собой последовательность значений, в этом случае эти два компонента ECDSA, называется г и з. 46 представляет собой длину последовательности. Тогда 02 означает целое число, 21 является длиной, а затем 0x21 байт, которое является значением г. Тогда есть еще 02 и длину для значения с. Если старший бит г или с установлен, они получают 00 предваряется так ясно, что они положительны. Bitcoin SIGs имеет точно такой же формат, как вы можете увидеть в любом blockexplorer.com свалки.
Hal сейчас офлайн Пожаловаться на Hal   Ответить с цитированием Мультицитирование сообщения от Hal Быстрый ответ на сообщение Hal

28 января 2011, 4:51:28 AM   # 10
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

В заключение! Я понял!  

Различные методы для подписания, проверки, и я предполагаю, что другие вызовы методов (EDIT: только подписи и верификации методов) со строкой "ECDSA" необходимо использовать "NONEwithECDSA" вместо. Теперь операция проверка для меня!

Я только что произошло, чтобы увидеть "NONEwithECDSA" в разделе 2.4.3 выпуска BouncyCastle отмечает страницу: http://www.bouncycastle.org/releasenotes.html
После просмотра материала о различных алгоритмах РДПА, используя алгоритм SHA-1 и прочее, я подумал, что, возможно, это было проблемой и конкретизации NONEwithECDSA бы предотвратить. Понятия не имею, если это не причина, почему она не работала, но теперь это!

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

28 января 2011, 9:59:42 AM   # 11
 
 
Сообщения: 1526
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Рад слышать вас это выяснили. Я думаю, что объясняет разницу ... Я не использовал ОКО, так что я никогда не должен был указать, что волшебную строку.

Затем, успешно отправлять и получать некоторые монеты с реализацией
Майк Хирн сейчас офлайн Пожаловаться на Mike Хирн   Ответить с цитированием Мультицитирование сообщения от Mike Хирн Быстрый ответ на сообщение Mike Хирн

28 января 2011, 12:31:32 PM   # 12
 
 
Сообщения: 487
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Таким образом, ссылка на ваш код от другого поста вы бы просто заменить "ECDSA" Строка в signData методы и verifySignedData с "NONEwithECDSA"?
Cdecker сейчас офлайн Пожаловаться на Cdecker   Ответить с цитированием Мультицитирование сообщения от Cdecker Быстрый ответ на сообщение Cdecker

28 января 2011, 1:02:24 PM   # 13
 
 
Сообщения:
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Таким образом, ссылка на ваш код от другого поста вы бы просто заменить "ECDSA" Строка в signData методы и verifySignedData с "NONEwithECDSA"?

Да.

Есть много вариантов, как "SHA1withECDSA", "SHA256withECDSA"И т.д., и я предполагаю, что он использует один из них по умолчанию при подписании и проверки, так что нам нужно "NONEwithECDSA" при подписании и проверке.
сейчас офлайн пожаловаться на   Ответить с цитированием Мультицитирование сообщение от Быстрый ответ на сообщение

28 января 2011, 1:21:22 PM   # 14
 
 
Сообщения: 1526
Цитировать по имени
цитировать ответ
по умолчанию Re: [Решено] BouncyCastle - Как генерировать ключи Bitcoin совместимые, подписи ...

Да потому, что вы уже делаете хэширования самостоятельно. Если вы не укажете NONEwithECDSA то реализация будет хэширования во второй раз и вычислить неверный результат.
Майк Хирн сейчас офлайн Пожаловаться на Mike Хирн   Ответить с цитированием Мультицитирование сообщения от Mike Хирн Быстрый ответ на сообщение Mike Хирн



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW