Перейти к содержимому
Вернуться в Нимчат

База знаний Разговор с людьми

Квантовое шифрование

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

Проблема, которую он решает

Обычное шифрование Nostr — НИП-44, что это такое личные сообщения и групповые чаты надстроены — имеют две половинки. Половина, которую фактически шифрует текст (ChaCha20, HMAC-SHA256, HKDF) отлично выдерживает квантовый компьютер. Половина, согласившаяся с ключом, не соглашается.

Это ключевое соглашение — эллиптическая кривая Диффи-Хеллмана на secp256k1, та же самая математика, которую использует Биткойн. Алгоритм Шора решает эту задачу сразу. Любой, кто запускает его с открытым ключом, восстанавливает закрытый ключ, а вместе с ним и все общие секреты, когда-либо созданные этим ключом.

Соберите сейчас, расшифруйте позже

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

Как это работает

Nymchat оставляет формат сообщений NIP-44 полностью один. Ключевое соглашение, которое он уже использует, не затрагивается; вокруг него добавляется второй, независимый.

  • стандарт secp256k1 ECDH, точно так же, как и раньше;
  • МЛ-КЭМ-768, постквантовый алгоритм NIST, стандартизированный как ФИПС 203. Его безопасность основана на проблемах решетки, которых алгоритм Шора не затрагивает.

Эти два являются Смешанные, а не смешанныеСообщение зашифровано с помощью NIP-44 точно так же, как и всегда, и законченный шифровальный текст затем запечатывается во второй раз внутри пост-квантового слоя — ChaCha20-Poly1305, зашифрованного из общей секретности ML-KEM. Ключ отправителя, ключ получателя, текст шифрования инкапсуляции и ключ ML-KEM получателя связаны в эту производную как контекст, поэтому слой не может быть выведен из одного обмена и воспроизведен на другом.

Комбинатор, такой как X-Wing или Signal's PQXDH, смешивает оба секрета в один ключ вместо этого. Nymchat не делает этого, и причина практична, а не криптографическая: смешивание требует сырого выхода ECDH, и расширение браузера или удаленный подписчик никогда не передаст это обратно — он возвращает законченный шифровальный текст, который является всей точкой хранения ключа, где приложение не может до него добраться.

Важным свойством является одно и то же: результат По крайней мере, столь же сильная, как и сильная половинаЕсли криптография решетки окажется слабее, чем ожидалось, разрыв ML-KEM только срывает внешний слой и оставляет сегодняшний NIP-44 ниже.

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

Пост-квантовой половине нужен собственный ключ, и откуда этот ключ приходит, это то, что решает, стоит ли вся вещь чего-либо. нет Выработано из вашего nsecКвантовый компьютер, который нарушает классическую половину, восстанавливает nsec от вашего публичного ключа, и все, что вытекает из nsec по опубликованной формуле выходит с ней — два замка, открываемые одним перерывом. Постквантовый код для каждой учетной записи, один раз, из случайных байтов, которые никакая общественная стоимость не раскрывает. nympq1… И сидит рядом с тобой nsec Это не пароль и не второй вход: это ключевой материал, который вы можете сохранить, точно так же, как и nsec.

Нечего включать

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

Настройки › Конфиденциальность & Безопасность показывает, активна ли она и сколько ваших контактов она в настоящее время достигает, но только в качестве информации — нет переключателя.

Вход в расширение браузера (NIP-07) или удаленный подписчик (NIP-46) никогда не передает ключ вашей личности в приложение, что является целым пунктом использования одного — и это не обязательно. Две половины шифрования держатся отдельно: ваш подписчик делает ту часть, которую он всегда делал, а приложение делает пост-квантовую часть с вашим кодом восстановления, который он держит напрямую.

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

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

Приложение генерирует nympq1… код для вас, так что нет ничего, чтобы выбрать и ничего, чтобы придумать. Просмотреть или редактировать детали NymТогда Откройте свой частный ключ и код восстановленияОн находится прямо под вашим nsecВы никогда не должны думать об этом до того дня, когда вы добавите второе устройство.

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

Ваши другие устройства

Второе устройство нуждается в двух вещах: текущей версии приложения и nympq1… Старый build продолжает работать — он не отрезается — но он не может читать текущий формат, поэтому, пока он все еще находится на учетной записи, копии, которые вы держите для себя, возвращаются к более старым, чем он может.

С кем ты это получишь

Каждая сторона нуждается в ней.Каждый клиент Nymchat публикует небольшое подписанное объявление с истечением срока действия, говоря так, и включает его пост-квантовый ключ, когда у него есть один.Удержание действительного объявления для кого-то является тем, что делает приложение использовать более сильный обмен с ними.Нет никаких переговоров, чтобы вмешиваться: либо ключ есть, либо его нет, и потому что объявление подписано его автором, заменённый ключ должен быть сфальсифицирован, а не просто обслуживается.

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

Эти объявления продолжаются неделю и обновляются ежедневно, пока вы используете приложение.Если вы находитесь подальше от него дольше, ваши объявления пропадают и вы читаете как обычный клиент Nostr на некоторое время: сообщения, отправленные вам в этот пробел, шифруются нормальным способом, а не квантово-резистентным способом.Они все еще прибывают, и вы все еще можете их читать — и ничего, что вы получили раньше, не затрагивается.Открытие приложения повторно публикует ваше объявление, и более сильное шифрование возобновляется самостоятельно.

Все остальные продолжают работать так же, как и раньше. Bitchat пользователи и любые другие клиенты Nostr получают стандартные НИП-17Ничто не ломается, когда вы отправляете сообщение кому-то за пределами Nymchat.

Постквантовое послание заменяет стандартный, а не отправляться вместе с ним. Отправлять оба было бы бессмысленно: злоумышленник просто сломал бы более слабую копию.

Копии, адресованные ты получите и его — тот, который читают другие ваши устройства, архив, стоящий за ним, и ваши синхронизированные настройки, которые перемещаются таким же образом и несут ваши список разговоров, ваши групповые ключи и история сообщений. Оставив любой из них на старом шифрование сделало бы их самой слабой вещью, которую вы храните: их мог бы прочитать любой, кто взломает сегодняшняя криптография, как бы тщательно ни были запечатаны сами сообщения.

Оставайтесь читабельными для Bitchat

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

Объявление выше делает эти догадки ненужными. Если кто-то опубликовал его, это работает Nymchat, поэтому копия Bitchat удаляется и отправляется только более сильное сообщение. Если они нет, ничего не изменилось: они по-прежнему получают оба формата, точно так же, как и раньше, так что ничего Отправленное вами сообщение может стать нечитаемым, поскольку приложение неправильно угадало, какой клиент кто-то использует.

Как и само шифрование, оно происходит автоматически и не требует настройки.

Почему бы просто не догадаться по общественной активности

Nymchat может сделать вывод о том, кто чем управляет, по активности общедоступных каналов, и выявить люди скорее. Но этот вывод иногда неверен, и быть неправым здесь означает отправка кому-либо сообщения, которое его приложение не может открыть, без ошибок и повторных попыток. Опубликовано объявление подписано его автором и не может быть подделано, поэтому вместо него используется оно.

В групповых чатах

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

По этой причине групповое сообщение помечается как квантовоустойчивое только тогда, когда каждый член получил его таким образом. Если хотя бы одна копия использовала стандартный обмен, эта копия несет тот же самый сообщение, поэтому сообщение в целом защищено ровно настолько, насколько защищена его самая слабая копия. Приложение говорит «квантовая устойчивость к 8 из 10 членов», а не округление в большую сторону.

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

Чтение значка

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

ОтметкаЗначение
ЗамокКто отправил — соответствует ли подпись заявленному автору.
ЩитОбе стороны держали свой собственный постквантовый код, и гибридный обмен использовался для каждой копии этого сообщения.
Пунктирный щитЧастично квантово-устойчивое — групповое сообщение, только некоторые члены получили защищенную копию.Поскольку другие несут тот же текст, обращайтесь с сообщением как с обычным шифрованием в целом.
Щит через щитСтандартное шифрование NIP-44 — все еще шифруется от конца до конца, и до сих пор не читается никому, кроме сегодняшних участников.
Нет щитаПубличные сообщения канала читаются на реле по дизайну, поэтому не применяется знак шифрования.

Лишенная отметка будет двусмысленной - это также может означать “не квантово-резистентный”, “этот сбор слишком старый” или “индикатор сломан” - и индикатор безопасности, который не может быть различен от сломанного, ничего не говорит вам.

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

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

Чего он не делает

Это защищает содержание ваших сообщений. Это не делает каждую часть Ностр квантово-доказательен, и стоит уточнить разницу.

  • Подписи по-прежнему secp256k1. Знак личности Ностра со Шнорром на та же кривая. Противник, у которого уже был работающий квантовый компьютер, мог подделать подписывать и выдавать себя за кого-то в реальном времени. Что останавливает гибридная биржа, читается записанный трафик — конфиденциальность, а не аутентификация.
  • Впереди нет никакой тайны. Оба ключа долговечны: NIP-44 получает свой ключ от вашего компьютера. nsec, и пост-квантовый слой встраивается в ключ ML-KEM за вашим nympq1… Каждое сообщение получает свежую инкапсуляцию, поэтому ключ одного сообщения не открывает следующего — но тот, кто в конечном итоге держит эти долгосрочные ключи, может прочитать все, что они когда-либо записывали, а не только то, что пришло после. Заключительные сообщения уменьшить, и поэтому эта функция направлена на урожай-сейчас-дешифровать-позже, а не на ключ, который получается.
  • Метаданные не изменяются. Реле все равно видит, что событие было адресовано ключ и примерно когда. Этим занимается подарочная упаковка и одноразовые ключи, а не по это.
  • Сеть Bluetooth не покрыта. Послание, переданное через Машины путешествует внутри сессии Noise XX, которая имеет сильное, текущее шифрование, но классический обмен ключами — поэтому он не несет пост-квантовый слой, даже между двумя пользователями Nymchat. Знак отражает это: сообщение, доставленное через сеть, не отмечено квантовой стойкостью. Добавление его там означает изменение самого рукопожатия, которое оба партнера должны были бы делать в тот же момент, без реле, чтобы вернуться и оставаться читаемым Bitchat.
  • Ваш код восстановления является второй вещью, чтобы сохранить. Он начинается с nympq1 И вы найдете его в Детали вашего нимав той же панели, что и ваш nsec — нажмите свой ним, а затем “Раскрыть частный ключ этого ним и код восстановления”. nsec сама по себе не восстанавливает ваш пост-квантовый ключ — именно поэтому он работает — поэтому если ни одно устройство не держит этот код и у вас нет его копии, то то, что было запечатано на нем, не может быть открыто снова. nsec.
  • Он не может защитить то, что делает другая сторона. Получатель по-прежнему может сделать снимок экрана, скопировать или сохранить сообщение.

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

Проверка работы

Реализация ML-KEM тестируется против официального Тест векторов NIST публикует для ФИПС 203Веб-приложение и мобильное приложение дополнительно содержатся в совместном наборе тестовых векторов, что гарантирует, что сообщение, написанное одним, может быть прочитано другим.

Оба они Открытый источник в соответствии с AGPL-3.0, а сборки веб-приложений воспроизводимы — см. проверка сборки.

Идти глубже : Постквантовое ключевое соглашение в Nymchat — техническая белая книга о том, как распределяется ключ ML-KEM без каталога, точная конструкция, которая объединяет два ключевых обмена, и проекты, которые были отклонены.