Перейти к содержанию

Возможно ли шифрование сообщений ключами Bitcoin?


balance

Рекомендуемые сообщения

Здравствуйте, господа.

Подскажите, пожалуйста, возможно ли зная публичный ключ(bitcoin) получателя отправить ему зашифрованное сообщение, которое он сможет расшифровать своим закрытым ключом?

 

Собственно вопрос сводится к вопросу - возможно ли шифрование сообщений с помощью эллиптической кривой secp256k1, которая используется в биткоине или только подпись сообщений с её помощью?

Если да, то как?

 

Если невозможно, возникает вопрос, почему решено было не оставлять такую возможность, ведь она казалось бы напрашивается? Ведь есть же другие кривые, которые кажется позволяют одновременно и подпись и шифрование?

 

Если тут есть люди сведущие, подскажите, пожалуйста. Поправьте, где слажал. Гугл не хочет помочь :(

Заранее спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Вот пример реализации: https://github.com/jackjack-jj/jeeq. Хотя (могу ошибаться) алгоритмы, используемые именно для цифровых подписей, использовать для шифрования можно, вопрос в том, насколько это безопасно (хотя вроде ECIES работет на тех же ключах, что и ECDSA, надо смотреть).

 

А в Биткоине проблема в том, что адреса - не открытые (публичные) ключи, поэтому тут просто так ничего не отправить. И даже если бы они были открытыми ключами, то остаётся вопрос как, собственно, это сообщение доставить.

Изменено пользователем Har01d
Ссылка на комментарий
Поделиться на другие сайты

Вот пример реализации: https://github.com/jackjack-jj/jeeq. Хотя (могу ошибаться) алгоритмы, используемые именно для цифровых подписей, использовать для шифрования можно, вопрос в том, насколько это безопасно (хотя вроде ECIES работет на тех же ключах, что и ECDSA, надо смотреть).

Большое спасибо за ответ!

ECIES - вот это пожалуй то, что нужно. Спасибо за подсказку.

 

 

А в Биткоине проблема в том, что адреса - не открытые (публичные) ключи, поэтому тут просто так ничего не отправить. И даже если бы они были открытыми ключами, то остаётся вопрос как, собственно, это сообщение доставить.

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

Заранее предваряя вопрос о переполнении блокчейна. Можно было бы поступить как в BitMessage делают - через определённые периоды(неделя, две недели) вычищать сообщения старые из блокчейна.

Защита от спама - комиссия, каждое сообщение уходит по сути, как транзакция в блокчейн.

Конечно тут встаёт вопрос, что биток и так тормозной, и блоки уже итак переполнены, но это не та проблема, которой нет решения. Может быть обмен сообщениями можно было бы организовать в виде сайдчейна. Вобщем тут уже вариаций масса.

 

Один вот вопрос остался. Гуглю тему ECIES. Пишут, что не рекомендуется одновременно использовать одну и ту же ключевую пару для подписи и для шифрования. Вопрос - почему? Ведь я шифрую же публичным ключом, который итак засвечен, а без его засвета мы не проверим верность подписи. Собственно, если он итак засвечен, почему я не могу им же зашифровать сообщение ?

Ссылка на комментарий
Поделиться на другие сайты

Т.е. сейчас посылать транзакции с комментами можно, но интереснее было бы, если бы это сообщение можно было бы зашифровать.

В теории всё можно :)

 

Стандартный nulldata-выход (OP_RETURN) даёт возможность записывать до 80 байт. Ну, минус 1 байт для флага о том, что здесь специальное сообщение, и в оставшиеся 79 вполне можно запихнуть зашифрованный текст. Если не умещается в 79 байт, то можно добавлять ещё null-data выходы, транзакция будет считаться стандартной до тех пор, пока она меньше 100 Кб. Софтом отслеживать флаги и при необходимости расшифровывать.

 

Вопрос здесь только в том, что это будет очень дорого стоить, мессенджер тут точно не получится, а вот какая-то отправка сообщений "ну когда очень нужно" и когда о получателе известен только его открытый ключ - почему бы и нет?

 

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

Тут несколько вещей.

 

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

 

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

Ссылка на комментарий
Поделиться на другие сайты

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

п.с. ник у меня от балды))) сильно не возникаёте если не прав

Ссылка на комментарий
Поделиться на другие сайты

@xakep74, закрытый ключ нужен только для расшифровки (когда вы получили сообщение) и для ЭЦП (подтвердить, что именно вы отправили сообщение). Для шифрования используется не ваш закрытый ключ, а открытый ключ получателя.
Ссылка на комментарий
Поделиться на другие сайты

@balance, такая возможность реализована в другой платформе, а именно NXT, и заложена в самом ее ядре. На  основе этого ядра разработан NXTTY криптомессенжер для iOS и Андроида.

 

http://nxtty.com/

 

Клевая штука

Ссылка на комментарий
Поделиться на другие сайты

@balance, давно есть такая штука, как Bitmessage.

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

На сегодняшний день Bitmessage является самым защищенным способом коммуникации. Если интересно, почитайте тех. описание ( pdf, англ. яз.)

В общем, это настоящий алмаз для истинного параноика))

Ссылка на комментарий
Поделиться на другие сайты

Если у Вас нет паранойи, это ещё не значит, что за Вами не следят. :)

 

Была криптовалюта со встроенным в кошелек чатом и планами внедрения обмена зашифрованными сообщениями. Может пригодиться, ссылка на github: https://github.com/talkcoin/talkcoin-wallet

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Similar Topics

×
×
  • Создать...