Перейти до вмісту
Назад до Німчату

База знань Спілкування з людьми

Квантово-стійке шифрування

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

Проблема, яку він вирішує

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

Цією ключовою згодою є еліптична крива Діффі-Хеллмана на 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 користувачів та будь-якого іншого клієнта нашої компанії отримують стандартні НІП-17Ніщо не руйнується, коли ви повідомляєте комусь поза межами Nymchat.

Постквантове повідомлення замінює стандартний, а не надсилається разом із ним. Надсилання обох було б безглуздо: зловмисник просто зламав би слабшу копію.

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

Залишайтеся читабельними в Bitchat

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

Оголошення вище робить ці припущення непотрібними. Якщо хтось опублікував, це так працює Nymchat, тому копія Bitchat видаляється, і надсилається лише сильніше повідомлення. Якщо вони немає, нічого не змінилося: вони все ще отримують обидва формати, як і раніше, тому нічого надісланий вами може стати нечитабельним, оскільки програма неправильно вгадала, яким клієнтом хтось користується.

Як і саме шифрування, це автоматично і не має налаштувань.

Чому б тільки не здогадатися з громадської діяльності

Nymchat міг зробити висновок, хто чим керує, з активності публічного каналу, і це помітило людей швидше. Але цей висновок інколи є хибним, а помилятися тут означає надіслати комусь повідомлення, яке його програма не може відкрити, без помилок і без повторних спроб. Опубліковано оголошення підписане автором і не може бути підроблено, тому використовується замість нього.

У групових чатах

Групові повідомлення вже зашифровані окремо для кожного учасника, тому група може комбінувати обидва види вільно — учасники, чиї клієнти підтримують це, отримують надійніше шифрування, решта отримують стандартний, і група працює нормально в будь-якому випадку.

Через це групове повідомлення позначається як квантово стійке лише тоді, коли кожен член отримав це таким чином. Якщо хоч одна копія використовувала стандартний обмін, ця копія має те саме значення повідомлення, тому повідомлення в цілому захищене настільки, наскільки захищено його найслабшу копію. Додаток каже "квантово стійкий до 8 із 10 членів", а не округлення.

Групові чати також зберігають свої поворотні одноразові ключі, які приховують учасників групи від тих, хто дивиться естафету. Цей захист не змінюється і працює точно так само, як і раніше.

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

Кожне приватне повідомлення та групове повідомлення несуть невеликий щит Натискання на будь-яку з ознак пояснює, що вона показує.

МаркЗначення
навісний замокХто відправив — чи збігається підпис із заявленим автором.
ЩитОбидві сторони мали свій власний пост-квантовий код, і гібридний обмін використовувався для кожної копії цього повідомлення.
Пунктирний щитЧастково квантово-резистентний — групове повідомлення тільки деякі члени отримали захищену копію.Оскільки інші несуть той же текст, розглядати повідомлення як звичайно зашифрований в цілому.
Швидкий щитСтандартне шифрування NIP-44 — все ще шифрується від кінця до кінця, і досі незрозуміло нікому, крім учасників сьогодні.
Без щитаПовідомлення публічного каналу читаються на реле за проектом, тому не застосовується знак шифрування.

Відсутня марка буде неоднозначною - це також може означати “не квантово-резистентний”, “це будівництво занадто старе”, або “індикатор зламаний” - і індикатор безпеки, який не може бути відрізнений від зламаного, не говорить вам нічого.

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

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

Що воно не робить

Це захищає вміст ваших повідомлень. Це не робить кожну частину Nostr квантово надійний, і варто бути точним щодо різниці.

  • Підписи все ще secp256k1. Nostr ідентифікує знак із Шнорром на така сама крива. Супротивник, у якого вже був працюючий квантовий комп’ютер, міг підробити a підписати та видати себе за когось у реальному часі. Що зупиняє гібридна біржа, так це читання записаний трафік — конфіденційність, а не автентифікація.
  • Попередньої таємниці немає. Обидва ключі довговічні: NIP-44 отримує свій ключ від вашого nsec, а пост-квантовий шар вкапсулюється до ключа ML-KEM за вашим nympq1… Кожне повідомлення отримує свіжу енкапсуляцію, так що ключ одного повідомлення не відкриває наступного - але той, хто в кінцевому підсумку тримає ці довгострокові ключі, може прочитати все, що вони коли-небудь записували, а не тільки те, що прийшло потім. Залишаються повідомлення зменшити, і саме тому ця функція спрямована на урожай-тепер-дешифрувати-пізніше, а не на ключ, який приймається.
  • Метадані не змінені. Реле все ще бачить, що подія була адресована ключ і приблизно коли. Це обробляється подарункова упаковка та одноразові ключі, а не за це.
  • Металургія Bluetooth не покривається. Повідомлення, що переноситься Мечеть подорожує всередині сеансу Noise XX, який є сильним, поточним шифруванням, але класичним обміном ключів - так що він не несе пост-квантовий шар, навіть між двома користувачами Nymchat. Відзнака відображає це: повідомлення, що надходить через сітку, не позначено квантовою стійкістю. Додавання його там означає зміну самого рукостискання, яке обидва однолітки повинні були б робити одночасно, без релею, щоб повернутися і залишатися читами Bitchat.
  • Ваш код відновлення є другою річчю, щоб зберегти. Вона починається з nympq1 І ви знайдете його в Деталі вашого німаУ тій же формі, що і ваша nsec — натисніть ваш нім, а потім “Відкрити цей нім приватний ключ і код відновлення”. nsec сама по собі не переробляє ваш пост-квантовий ключ - саме тому він працює - так що якщо жоден пристрій не зберігає цей код і у вас немає його копії, те, що було запечатано на ньому, не може бути знову відкрито. nsec.
  • Він не може захистити те, що робить інша сторона. Одержувач усе ще може зробити знімок екрана, скопіювати або зберегти повідомлення.

Це та сама позиція, яку займає Signal із власним постквантовим оновленням: виправити обмін ключами тепер, оскільки це та частина, на яку зловмисник може діяти заднім числом і розглядати підписи як a окрема проблема, коли стандарти надолужать.

Перевірка роботи

Реалізація ML-KEM тестується проти офіційного Тестування векторів NIST для FIPS 203, так що він перевіряється проти самого стандарту, а не тільки проти самого себе. веб-додаток і мобільний додаток додатково тримаються до спільного набору тестових векторів, що гарантує, що повідомлення, написане одним, може бути прочитане іншим.

Обидва є Відкриті джерела під AGPL-3.0, і будівлі веб-додатків є відтворюваними — див. перевірка конструкції.

А далі глибше: Пост-квантовий ключовий договір в Nymchat - технічна білка про те, як розповсюджується ключ ML-KEM без каталогу, точна конструкція, що об'єднує два ключові обміни, і проекти, які були відхилені.