Jump to content

Recommended Posts

Posted

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

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

 

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

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

 

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

 

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

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

Posted (edited)

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

 

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

Edited by Har01d
Posted

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

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

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

 

 

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

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

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

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

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

 

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

Posted

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

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

 

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

 

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

 

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

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

 

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

 

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

Posted

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

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

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

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

 

http://nxtty.com/

 

Клевая штука

Posted

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

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

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

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

Posted

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

 

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...