Преминете към съдържанието
Обратно към Нимчат

База знания Говорейки с хора

Квантово-устойчиво криптиране

Личните съобщения и груповите чатове между потребителите на Nymchat могат да бъдат криптирани така че записването им днес не купува нищо на нападателя, дори след като пристигнат квантовите компютри.

Проблемът, който решава

Обикновено Nostr криптиране — NIP-44, което е какво лични съобщения и групови чатове са изградени върху — има две половини. Половината от това действително кодира текста (ChaCha20, HMAC-SHA256, HKDF) издържа добре срещу квант компютър. Половината, която е съгласна с ключа, не го прави.

Това ключово споразумение е елиптична крива на Diffie-Hellman на secp256k1, същата математика, която биткойн използва. Алгоритъмът на Шор го решава директно. Всеки, който го стартира срещу публичен ключ, възстановява частен ключ, а с него и всяка споделена тайна, която този ключ някога е произвел.

Съберете сега, дешифрирайте по-късно

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

Как работи

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

  • стандартът secp256k1 ECDH, точно както преди;
  • ML-KEM-768, постквантовият алгоритъм NIST, стандартизиран като FIPS 203. Сигурността му се основава на проблеми с решетката, които алгоритъмът на Шор не засяга.

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

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

Важната собственост е една и съща: резултатът е Поне толкова силна, колкото силната половинаЧетенето на съобщението означава преминаване през двата слоя.Ако криптографията на решетката се окаже по-слаба от очакваното, разбиването на ML-KEM само изтрива външния слой и оставя днешния NIP-44 под него.Ако secp256k1 падне на квантов компютър, вътрешният слой се отваря, но външният не.

Всяко съобщение получава нов постквантов обмен, така че възстановяването на ключа на едно съобщение разкрива нищо за другите.

Постквантовата половина се нуждае от свой собствен ключ и откъдето идва този ключ е това, което решава дали цялото нещо си струва нещо. не Работи от твоята nsecКвантов компютър, който прекъсва класическата половина, възстановява nsec от вашия публичен ключ, и всичко, което произтича от nsec от публикувана формула излиза с него — две ключалки се отварят с едно прекъсване. Квантов код за всеки акаунт, веднъж, от случайни байтове, които няма публична стойност. nympq1… седи до теб nsec Това не е парола и не е втори вход: това е ключов материал, който можете да запишете, точно като nsec.

Няма нищо за включване

Това не е настройка. Постквантовото криптиране е просто начинът, по който Nymchat разговаря с Nymchat, the по същия начин обикновеното криптиране е начинът, по който говори с всичко останало. Прилага се автоматично към всяко лично съобщение и групов чат с друг потребител на Nymchat.

Настройки › Поверителност и сигурност показва дали е активна и колко от вашите контакти в момента достига, но само като информация - няма превключване.

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

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

Така че едно устройство трябва да задържи този код, преди да може да ги отвори, а добавянето на устройство сега отнема още една стъпка. nympq1… Това е веднъж на устройство, а не веднъж на вход. Тази стъпка не е триене, което не успяхме да премахнем: код, който може да пристигне на ново устройство сам по себе си, ще трябва да пътува там в обикновено съобщение и това съобщение е точно това, което атакуващият тази функция съществува, за да спре да записва.

Приложението генерира nympq1… код за вас, така че няма какво да избирате и нищо да измисляте.За да го видите: докоснете нима, за да отворите Преглед или редактиране на детайлите на NymСлед това Разкрийте този частен ключ и код за възстановяванеТой се намира точно под вашия nsec, със същите бутони за показване и копиране.Никога не е нужно да мислите за това, докато не добавите второ устройство.

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

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

Второто устройство се нуждае от две неща: актуална версия на приложението и nympq1… Код. По-старото изграждане продължава да работи – не е изключено – но не може да чете текущия формат, така че докато все още е в профила, копията, които държите за себе си, се връщат към по-старото, което може.Актуално устройство, което все още не е свързано, чете вашата по-стара история и иска код.Нито може да ни каже, че съществува, затова това е предупреждение, а не нещо, което откриваме за вас.

С кого го получавате

И двете страни се нуждаят от това. Всеки клиент на Nymchat публикува малко подписано, изтичащо обявление, казвайки така, и включва своя пост-квантов ключ, когато има такъв.Държането на валидно обявление за някого е това, което прави приложението да използва по-силния обмен с тях.Няма преговори, с които да се намесва: или ключът е там, или не е, и тъй като обявлението е подписано от неговия автор, заместващият ключ ще трябва да бъде фалшифициран, а не просто сервиран.

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

Тези съобщения траят една седмица и се освежават ежедневно, докато използвате приложението.Ако сте далеч по-дълго от това, вашите пропуски и вие сте прочетени като обикновен клиент на Nostr за известно време: съобщенията, изпратени до вас в този пропуск, са криптирани по нормален начин, а не по квантово-устойчив начин.Те все още пристигат, и все още можете да ги прочетете - и нищо, което сте получили по-рано, не е засегнато.Отварянето на приложението повторно публикува вашето съобщение, а по-силното криптиране се възобновява от само себе си.

Всички останали продължават да работят точно както преди. Bitchat потребителите и всеки друг клиент на Nostr получават стандартни NIP-17Нищо не се счупва, когато изпратите съобщение на някого извън Nymchat.

Постквантово съобщение замества стандартната, вместо да бъде изпратена заедно с нея. Изпращането и на двете би било безсмислено: нападателят просто би счупил по-слабото копие.

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

Останете четливи от Bitchat

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

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

Подобно на самото криптиране, това е автоматично и няма настройка.

Защо не просто познайте от обществена дейност

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

В групови чатове

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

Поради това групово съобщение се маркира като квантово устойчиво само когато всеки член получи го така. Ако дори едно копие използва стандартния обмен, това копие носи същото съобщение, така че съобщението като цяло е защитено толкова, колкото и най-слабото му копие. Приложението казва „квантово устойчив на 8 от 10 члена“, а не закръгляване нагоре.

Груповите чатове също запазват своите въртящи се еднократни ключове, които скриват кой е в група от всеки, който гледа щафета. Тази защита не е засегната и работи точно както е работила.

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

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

МаркЗначение
катинарКой го е изпратил — дали подписът съвпада с посочения автор.
ЩитДвете страни държаха свой собствен постквантов код, а хибридният обмен се използва за всяко копие на това съобщение.
Прекъснат щитЧастично квантово-устойчиво — групово съобщение само някои членове са получили защитено копие от. Тъй като другите носят същия текст, се третира съобщението като конвенционално криптирано като цяло.
Противопоказания за щитСтандартното NIP-44 криптиране - все още шифровано от край до край и все още неразбираемо за никого, освен за участниците днес.
Без щитПубличните публикации по канала могат да се четат на релей по дизайн, така че не се прилага знак за криптиране.

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

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

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

Какво не прави

Това предпазва съдържание от вашите съобщения. Не прави всяка част от Nostr е квантово доказателство и си струва да бъдем точни за разликата.

  • Подписите все още са secp256k1. Знак за самоличност на Nostr с Schnorr на същата крива. Противник, който вече има работещ квантов компютър, може да фалшифицира a подписвайте и се представяйте за някого в реално време. Това, което спира хибридната борса, е четенето записан трафик — поверителност, не удостоверяване.
  • Няма предварителна тайна. И двата ключа са дълготрайни: NIP-44 получава ключа си от вашия компютър. nsec, и пост-квантовия слой се вгражда в ML-KEM клавиша зад вашия nympq1… Всяко съобщение получава нова капсулация, така че ключът на едно съобщение не отваря следващия, но всеки, който в крайна сметка държи тези дългосрочни ключове, може да прочете всичко, което някога е записано, не само това, което дойде след това. Изтичане на съобщенията намаляване, и затова тази функция е насочена към събиране-сега-дешифриране-по-късно, а не към ключ, който се взема.
  • Метаданните са непроменени. Релето все още вижда, че е адресирано събитие ключ и горе-долу кога. Това се обработва от подаръчна опаковка и еднократни ключове, не от това.
  • Bluetooth мрежата не е покрита. Съобщение, пренесено през Мехът пътува в сесия Noise XX, което е силно, текущо криптиране, но класически ключов обмен - така че не носи пост-квантовия слой, дори между двама потребители на Nymchat. Бележката отразява това: съобщението, доставено над мрежата, не е маркирано с квантова устойчивост. Добавянето му там означава промяна на самия ръкохват, което и двамата връстници ще трябва да направят в същия момент, без релей да падне назад и докато остава четиво от Bitchat.
  • Вашият код за възстановяване е второто нещо, което трябва да запазите. Тя започва с nympq1 Ще го намерите в Детайлите на вашия Nymна същия панел като вашия nsec — докоснете вашия nym, след това “Открийте този nym частния ключ и кода за възстановяване”. nsec само по себе си не възстановява вашия пост-квантов ключ - точно затова работи - така че ако няма устройство, което държи този код и нямате копие от него, това, което е запечатано в него, не може да бъде отворено отново. nsec.
  • Не може да защити това, което прави другата страна. Получателят все още може да направи екранна снимка, копирайте или запазете съобщение.

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

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

Имплементацията на ML-KEM се тества срещу официалния Тест на векторите NIST публикува за FIPS 203, така че се проверява срещу самия стандарт, а не само срещу себе си.Уеб приложението и мобилното приложение допълнително се държат за споделен набор от тестови вектори, което е това, което гарантира, че съобщението, написано от един, може да бъде прочетено от другия.

И двете са Отворени източници под AGPL-3.0, и изгражданията на уеб приложението са възпроизводими — вижте проверка на компилация.

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