Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
8 апреля 2014, 10:08:29 PM   # 1
 
 
Сообщений: 23
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

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


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

я хочу построить класс PHP с некоторыми Bitcoin инструментов для генерации Bitcoin адрес, появится WIF ключ сжатого и несжатого или что-то другое.
я уже сгенерированные ключи с http://brainwallet.org/#generator чтобы проверить мои функции. все в порядке.

Теперь я хочу, чтобы создать открытый и закрытый ключ, сам с помощью OpenSSL для окон.
я знаю, что я могу генерировать секретный ключ EC со следующими командами:

Код:
OpenSSL ecparam -name secp256k1 -noout -genkey отъезда key.pem
OpenSSL ес -outform МЭД -в key.pem отъезда key.der

закрытый ключ, начиная с байта 9 и длиной 32 байта
Открытый ключ Последние 65 байт закрытого ключа EC.
все работает нормально и правильно.

но теперь я хочу, чтобы сгенерировать открытый ключ только от секретного ключа 32 байта без весь личный ключ EC "накладные расходы",
это представляется возможным, потому что http://brainwallet.org/#generator сделать это (закрытый ключ в виде шестнадцатеричной строки в секретном показателе).
Как я могу сделать это с помощью OpenSSL? Есть простой способ сделать это?

спасибо

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


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


9 апреля 2014, 1:45:22 AM   # 2
 
 
Сообщения: 412
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

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





https://github.com/Bit-Wasp/bitcoin-lib-php надеюсь это поможет! Для этого требуется расширение php5-ГМФ и использует библиотеку Mathyas Danthers PHP ECC.
fbueller сейчас офлайн Пожаловаться на fbueller   Ответить с цитированием Мультицитирование сообщения от fbueller Быстрый ответ на сообщение fbueller

9 апреля 2014, 12:37:52 PM   # 3
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Если что-то не изменилось в самых последних версиях OpenSSL, ваши варианты ограничены созданием новых пары ключей, или импортируя privkey в виде сертификата. И на самом деле я не уверен насчет второго.

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

9 апреля 2014, 11:24:21 PM   # 4
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Весь смысл шифрования с открытым ключом вы не можете сгенерировать открытый ключ от секретного ключа, и наоборот.

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

10 апреля 2014, 1:31:36 AM   # 5
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Весь смысл шифрования с открытым ключом вы не можете сгенерировать открытый ключ от секретного ключа, и наоборот.

Тоши

Где вы получите представление о том, как это?

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

10 апреля 2014, 3:08:06 AM   # 6
 
 
Сообщения: 1764
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Весь смысл шифрования с открытым ключом вы не можете сгенерировать открытый ключ от секретного ключа, и наоборот.

Тоши

Где вы получите представление о том, как это?

Открытые ключи всегда могут быть сгенерированы из закрытого ключа (хотя, очевидно, что вам нужен какой-то инструмент, кроме OpenSSL).

Он прав, и вы можете сделать это в OpenSSL. Если я получаю то, что вы говорите, вы хотите взять существующий открытый ключ и вычислить privkey для него, да?

РЕДАКТИРОВАТЬ:

Мы здесь. Это было взято из моего мерзавца репо здесь: https://github.com/wolf9466/minitowif

Код:
INT ecdsa_get_pubkey (неподписанный символ ** Публичные, неподписанный символ * rawprivkey, внутр keylen)
{
BN_CTX * CTX;
EC_KEY * privkey;
Const EC_GROUP * группа;
EC_POINT * pubkeypoint;
BIGNUM * bnprivkey * bnpubkey;

bnprivkey = BN_bin2bn (rawprivkey, keylen, NULL);
privkey = EC_KEY_new_by_curve_name (NID_secp256k1);
группа = EC_KEY_get0_group (privkey);

pubkeypoint = EC_POINT_new (группа);
EC_KEY_set_private_key (privkey, bnprivkey);

CTX = BN_CTX_new ();
bnpubkey = BN_new ();
EC_POINT_mul (группа, pubkeypoint, bnprivkey, NULL, NULL, CTX);
bnpubkey = EC_POINT_point2bn (группа, pubkeypoint, POINT_CONVERSION_UNCOMPRESSED, bnpubkey, CTX);

* Публичный = (неподписанный символ *) таНос (SizeOf (символ без знака) * (BN_num_bytes (bnpubkey) + 1));
BN_bn2bin (bnpubkey, * Публичный);
возврата (BN_num_bytes (bnpubkey));
}
Wolf0 сейчас офлайн Пожаловаться на Wolf0   Ответить с цитированием Мультицитирование сообщения от Wolf0 Быстрый ответ на сообщение Wolf0

10 апреля 2014, 6:21:53 PM   # 7
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Весь смысл шифрования с открытым ключом вы не можете сгенерировать открытый ключ от секретного ключа, и наоборот.

Тоши

Где вы получите представление о том, как это?

Открытые ключи всегда могут быть сгенерированы из закрытого ключа (хотя, очевидно, что вам нужен какой-то инструмент, кроме OpenSSL).

Это не звучит.

AFAIK алгоритм шифрования с открытым ключом основывается на двух ключей: закрытый ключ и открытый ключ.

Сообщения, закодированные с помощью закрытого ключа могут быть расшифрованы с помощью открытого ключа, и наоборот.

Поэтому, ПКЕ может использоваться для проверки подлинности, поскольку один может доказать один владеет закрытый ключ, соответствующий определенный открытый ключ без раскрытия самого закрытого ключа.

Если частный ключ, соответствующий открытый ключ, может быть сгенерирован произвольно, то это позволяет олицетворения.

Тоши

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

10 апреля 2014, 6:58:40 PM   # 8
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Это не звучит.

AFAIK алгоритм шифрования с открытым ключом основывается на двух ключей: закрытый ключ и открытый ключ.

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

Сообщения, закодированные с помощью закрытого ключа могут быть расшифрованы с помощью открытого ключа, и наоборот.

Подписи, созданные с помощью закрытого ключа можно проверить с помощью открытого ключа. Подписи не создается с помощью открытого ключа.

Поэтому, ПКЕ может использоваться для проверки подлинности, поскольку один может доказать один владеет закрытый ключ, соответствующий определенный открытый ключ без раскрытия самого закрытого ключа.

Верный. Подпись предоставляется. Подпись проверяется с помощью открытого ключа (который раскрывается).

Если частный ключ, соответствующий открытый ключ, может быть сгенерирован произвольно, то это позволяет олицетворения.

Верный. Это не представляется возможным генерировать секретный ключ, соответствующий открытому ключу.

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



ECDSA является алгоритм цифровой подписи.

Открытый ключ предоставляется КАЖДЫМ. Это PUBLIC.

Подпись создается с помощью закрытого ключа и проверяется с помощью открытого ключа.

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

Существует математическая связь между частным ключом и открытым ключом.

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

Там в настоящее время нет известных способов вычислить секретный ключ, если у вас есть открытый ключ. Это означает, что владелец закрытого ключа может выдать публичный ключ без какого-либо беспокойства по поводу любого выяснить, что закрытый ключ.

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

10 апреля 2014, 7:08:28 PM   # 9
 
 
Сообщений: 23
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Весь смысл шифрования с открытым ключом вы не можете сгенерировать открытый ключ от секретного ключа, и наоборот.

Это неправильно, конечно вы можете сгенерировать открытый ключ от секретного ключа. это основная функция пара ключей шифрования. это то, что SSL / TLS делать в сообщении HTTPS, например.
если у вас есть закрытый ключ RSA, вы можете сгенерировать открытый ключ с PuTTYgen от него. Вы получили открытый ключ генерируется из секретного ключа. Вы не можете расшифровать любые зашифрованные данные с помощью открытого ключа, но с закрытым ключом.

@fbueller:
Большое спасибо Либерал использует КИО-Lib для генерации секретного ключа и открытого ключа от него. это именно то, что я хочу, и это работает

@kjj:
проблема заключается в том, что я не могу построить частный сертификат с закрытым ключом. Мне нужен открытый ключ для этого. без ключа OpenSSL общественности не будет генерировать открытый ключ ... это paradoxon

@ Wolf0:
MHH мои навыки C очень ограничены. не знаю, как собрать и использовать его. есть скомпилированный исполняемый файл для Windows?
Aefan сейчас офлайн Пожаловаться на Aefan   Ответить с цитированием Мультицитирование сообщения от Aefan Быстрый ответ на сообщение Aefan

10 апреля 2014, 10:42:16 PM   # 10
 
 
Сообщения: 1764
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Весь смысл шифрования с открытым ключом вы не можете сгенерировать открытый ключ от секретного ключа, и наоборот.

Это неправильно, конечно вы можете сгенерировать открытый ключ от секретного ключа. это основная функция пара ключей шифрования. это то, что SSL / TLS делать в сообщении HTTPS, например.
если у вас есть закрытый ключ RSA, вы можете сгенерировать открытый ключ с PuTTYgen от него. Вы получили открытый ключ генерируется из секретного ключа. Вы не можете расшифровать любые зашифрованные данные с помощью открытого ключа, но с закрытым ключом.

@fbueller:
Большое спасибо Либерал использует КИО-Lib для генерации секретного ключа и открытого ключа от него. это именно то, что я хочу, и это работает

@kjj:
проблема заключается в том, что я не могу построить частный сертификат с закрытым ключом. Мне нужен открытый ключ для этого. без ключа OpenSSL общественности не будет генерировать открытый ключ ... это paradoxon

@ Wolf0:
MHH мои навыки C очень ограничены. не знаю, как собрать и использовать его. есть скомпилированный исполняемый файл для Windows?

Что нужно исполняемый делать? Я могу изменить программу, чтобы сделать это и дать вам исполняемый файл Win64.


Там в настоящее время нет известных способов вычислить секретный ключ, если у вас есть открытый ключ. Это означает, что владелец закрытого ключа может выдать публичный ключ без какого-либо беспокойства по поводу любого выяснить, что закрытый ключ.


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

11 апреля 2014, 1:16:53 AM   # 11
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Придираться: В случае RSA, общее число поле решето будет делать это. Несмотря на то, что будет принимать тысячи лет для больших ключей.

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

11 апреля 2014, 1:46:18 AM   # 12
 
 
Сообщения: 1764
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

Придираться: В случае RSA, общее число поле решето будет делать это. Несмотря на то, что будет принимать тысячи лет для больших ключей.

Придираться 1: это поиск, а не расчет.
Придираться 2: поиск ключей, которые мы используем бы миллиарды лет.

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

11 апреля 2014, 3:25:26 AM   # 13
 
 
Сообщения: 1218
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

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

Вот ближе всего я нашел

Код:
C: \ OpenSSL-Win64 \ бин>OpenSSL ecparam -name secp256k1 -genkey -noout -outform DER -out е: \ priv.der
Загрузка «экран» в случайное состояние - сделано

C: \ OpenSSL-Win64 \ бин>OpenSSL ЕК -conv_form сжимаются информ DER -в е: \ priv.der -text -noout
прочитать ключ EC

Private-Key: (256 бит)
собств:
    00: f3: 30: 10: 43: d3: аа: 3e: ба: с9: с3: 3e: ба: 74: 7f:
    быть: 6f: 05: 7e: 2e: 01: b0: 1c: с8: с9: d3: AC: 86: 59: с4:
    63: f1: 3d
паб:
    03: a0: 3b: 51: ЭБ: DC: 99: 50: с6: 76: 7e: с9: 5b: 43: Fd:
    73: 4b: 50: изд: 48: 2e: 98: 4a: 28: 09: 8f: с2: BC: 17: с9:
    4e: 2b: Fe
ASN1 OID: secp256k1

Если вам нужно это вывод в файл, который вы можете использовать выходную трубу, как
Код:
C: \ OpenSSL-Win64 \ бин>OpenSSL ЕК -conv_form сжимаются информ DER -в е: \ priv.der -text -noout > е: \ keypair.der
прочитать ключ EC
Выход перед экраном будет перенаправлен в файл. Вы все еще будете нуждаться, чтобы сделать некоторые синтаксический, но она должна быть чище. Одна вещь, чтобы следить за это есть ведущий ноль 0x00 до закрытого ключа (не это 66 шестнадцатеричных значения не 64).

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

11 апреля 2014, 4:03:59 AM   # 14
 
 
Сообщения: 180
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация открытого ключа от 256 бит секретного ключа

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW