Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
17 июня 2014, 1:24:53 AM   # 1
 
 
Сообщения: 742
Цитировать по имени
цитировать ответ
по умолчанию Re: Как подписать текстовое сообщение?

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


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

В key.h функция два знака определяется:

котировка
    BOOL Вход (uint256 хэш, станд :: вектор<неподписанные символ>& vchSig);
    BOOL SignCompact (uint256 хэш, станд :: вектор<неподписанные символ>& vchSig);

но оба работают на хэш сообщения.

Это, как работает система:
текстовое сообщение->hash->(знак)->подпись

теперь и текстовые сообщения и подписи направляются к месту назначения, и signature->хэш сравнивается с текстом Сообщение->хэш, чтобы определить, если сообщение изменено или нет.

Но я хочу сделать это:
текстовое сообщение->(Знак с закрытым ключом) ->(Подпись широковещательных сообщений) ->(В месте назначения) ->подписать с открытым ключом, чтобы получить сообщение.

Есть ли функция доступна в Bitcoin для этой цели?

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


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


17 июня 2014, 2:56:12 AM   # 2
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Как подписать текстовое сообщение?

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





Нет. Криптография с открытым ключом особенно дорого, поэтому хэш сообщения всегда принимается. Если криптографический хэш является безопасным, то она служит в качестве прокси для фактического сообщения (которое может быть произвольной длиной), как нельзя изменить сообщение, не производя другой хэш. Так как текстовые сообщения, короткие вы теоретически могли бы подписать сообщение непосредственно, однако это будет нестандартным, это не только не поддерживается исходным кодом Bitcoin, не будет поддерживаться любой стандартной криптографической библиотекой либо. Сообщение также должны были бы быть меньше, чем п параметра кривой, для secp256k1 составляет 256 бит или 32 байта ~ (символов). Вы можете написать собственный код для реализации этого, но это было бы очень собственности, крайне ограниченная, не будет проверяемыми любой стандартной библиотекой, и я не уверен, что вы получите в течение всего подписания хэша произвольного сообщения.
DeathAndTaxes сейчас офлайн Пожаловаться на DeathAndTaxes   Ответить с цитированием Мультицитирование сообщения от DeathAndTaxes Быстрый ответ на сообщение DeathAndTaxes

17 июня 2014, 3:02:25 AM   # 3
 
 
Сообщения: 247
Цитировать по имени
цитировать ответ
по умолчанию Re: Как подписать текстовое сообщение?

https://github.com/bitcoin/bitcoin/blob/master/src/qt/signverifymessagedialog.cpp#L146

Вот код в диалоговом окне, которое делает фактическое подписание:
Код:
key.SignCompact (Хэш (ss.begin (), ss.end ()), vchSig)

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

17 июня 2014, 3:11:19 AM   # 4
 
 
Сообщения: 742
Цитировать по имени
цитировать ответ
по умолчанию Re: Как подписать текстовое сообщение?

Нет. Криптография с открытым ключом особенно дорого, поэтому хэш сообщения всегда принимается. Если криптографический хэш является безопасным, то она служит в качестве прокси для фактического сообщения (которое может быть произвольной длиной), как нельзя изменить сообщение, не производя другой хэш. Так как текстовые сообщения, короткие вы теоретически могли бы подписать сообщение непосредственно, однако это будет нестандартным, это не только не поддерживается исходным кодом Bitcoin, не будет поддерживаться любой стандартной криптографической библиотекой либо. Сообщение также должны были бы быть меньше, чем п параметра кривой, для secp256k1 составляет 256 бит или 32 байта ~ (символов). Вы можете написать собственный код для реализации этого, но это было бы очень собственности, крайне ограниченная, не будет проверяемыми любой стандартной библиотекой, и я не уверен, что вы получите в течение всего подписания хэша произвольного сообщения.

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

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

17 июня 2014, 3:12:19 AM   # 5
 
 
Сообщения: 742
Цитировать по имени
цитировать ответ
по умолчанию Re: Как подписать текстовое сообщение?

https://github.com/bitcoin/bitcoin/blob/master/src/qt/signverifymessagedialog.cpp#L146

Вот код в диалоговом окне, которое делает фактическое подписание:
Код:
key.SignCompact (Хэш (ss.begin (), ss.end ()), vchSig)

Так что да, на самом деле, он работает на гашиш сообщения! Подпись покрывает только хэш сообщения, он не говорит вам само сообщение или адрес, подписанный его. Вот почему эти поля включены в текстовом виде в формате, который вы видите здесь: http://brainwallet.org/#verify

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

17 июня 2014, 3:56:37 AM   # 6
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Как подписать текстовое сообщение?

Цель подписания не скрыть сообщение, что является для проверки подлинности сообщения. Это звучит, как вы хотите, чтобы сообщение не шифруется подпись.

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

Вот пример протокола шифрования на основе ECC:
http://en.wikipedia.org/wiki/Integrated_Encryption_Scheme
DeathAndTaxes сейчас офлайн Пожаловаться на DeathAndTaxes   Ответить с цитированием Мультицитирование сообщения от DeathAndTaxes Быстрый ответ на сообщение DeathAndTaxes

17 июня 2014, 3:58:43 AM   # 7
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Как подписать текстовое сообщение?

Да, но я ищу для функции, которая может подписать текстовое сообщение, вместо хэша ...

Там нет такой функции. Максимальная длина дайджеста, который может быть подписан в <256 бит (<32 ASCII символов). Это ограничение, как работает ECDSA. Поскольку нет почти никакой пользы для подписания сообщения непосредственно с этим ограничением хэш используется вместо этого. Таким образом, даже в тех случаях, когда сообщение меньше чем 256 бит до сих пор принято принимать хэш сообщения и признак того, что вместо сделки с этим крайним краем случае иначе, чем все остальные сообщения >256 бит.  

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

17 июня 2014, 4:13:39 AM   # 8
 
 
Сообщения: 742
Цитировать по имени
цитировать ответ
по умолчанию Re: Как подписать текстовое сообщение?

Да, но я ищу для функции, которая может подписать текстовое сообщение, вместо хэша ...

Там нет такой функции. Максимальная длина дайджеста, который может быть подписан в <256 бит (<32 ASCII символов). Это ограничение, как работает ECDSA. Поскольку нет почти никакой пользы для подписания сообщения непосредственно с этим ограничением хэш используется вместо этого. Таким образом, даже в тех случаях, когда сообщение меньше чем 256 бит до сих пор принято принимать хэш сообщения и признак того, что вместо сделки с этим крайним краем случае иначе, чем все остальные сообщения >256 бит.  

Похоже, что вы пытаетесь использовать неправильный инструмент для работы. Цель алгоритма цифровой подписи является для цифровой подписи не шифровать сообщения.

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW