В чужих конфигах Xray всё чаще попадаются две новые сущности: строка "decryption": "mlkem768x25519plus.native.600s..." вместо привычного "none" и пара полей mldsa65Seed / mldsa65Verify внутри realitySettings. Обе появились недавно, обе про постквантовую криптографию, и обе решают разные задачи — из-за чего в чатах регулярно советуют «включи, там квантовое шифрование», не объясняя, от чего именно оно спасает.
Собрал ответы на вопросы, которые задают чаще всего. Фактура — из документации Project X и описания PR, который эту механику принёс.
ℹ️ Справка
Кому пригодится: тем, кто держит свой сервер на Xray-core (в том числе под панелями вроде Remnawave, Marzban, 3x-ui) и раздаёт конфиги дальше. Если вы только клиент и ключи вам выдали — вам полезны вопросы 4, 7 и 13.
1. Что именно добавили и когда
Механика приехала в Xray-core пулл-реквестом #5067 — «VLESS protocol: Add lightweight, Post-Quantum ML-KEM-768-based PFS 1-RTT / anti-replay 0-RTT AEAD Encryption» за авторством RPRX. В списке изменений релиза v26.6.1 (1 июня 2026) «VLESS Post-Quantum Encryption» вынесено отдельным пунктом со ссылкой на этот PR.
Параллельно в REALITY появились поля mldsa65Seed (сервер) и mldsa65Verify (клиент) — это уже про подпись, а не про шифрование. Разница между ними — половина всей путаницы вокруг темы, и к ней мы вернёмся в вопросе 10.
2. Разве REALITY и так не шифрует трафик?
Шифрует, но отвечает не за то, о чём обычно думают.
REALITY — это в первую очередь маскировка и аутентификация сервера. Клиент отправляет настоящий TLS ClientHello с SNI постороннего сайта, сервер подсовывает сертификат этого сайта, а для DPI картина выглядит как обычный визит на example.com. Внутри — X25519, короткий идентификатор shortId и проверка того, что сервер действительно ваш, а не подставленный по дороге.
Чего REALITY делать не обязан — защищать вас от последствий утечки клиентского конфига. Именно эту дыру закрывает VLESS Encryption.
Три слоя одного VLESS-соединения
Схема на основе документации xtls.github.io и описания PR XTLS/Xray-core#5067
3. От чего страхует VLESS Encryption, чего не делает REALITY
Сценарий, который прямо разбирают в описании PR: конфиг клиента куда-то утёк. Вы отправили ссылку vless:// в мессенджер, скопировали её через буфер обмена на телефоне с «умной» клавиатурой, положили в облачную заметку, отдали знакомому — вариантов масса.
Со старой схемой ("decryption": "none") владелец такого конфига получает всё: он может подключаться, он может — если параллельно писал ваш трафик — расшифровать записанное, он может встать посередине. С VLESS Encryption ключ каждого соединения выводится из эфемерной пары ML-KEM-768 + X25519, сгенерированной на месте, и из содержимого конфига не восстанавливается.
❗ Главное
Главная мысль в одну строку: REALITY отвечает на вопрос «как это выглядит снаружи и тот ли это сервер», VLESS Encryption — на вопрос «что будет, если строка подключения окажется в чужих руках».
В описании PR это разложено на два уровня. NFS-слой (non-forward-secret) построен на заранее известных публичных ключах и нужен, чтобы промежуточные узлы в цепочке не могли выдать себя за сервер. PFS-слой договаривается о временных ключах на каждое соединение — и даже утечка приватного ключа сервера не даёт задним числом расшифровать записанный трафик. Для сравнения там же прямо названы Shadowsocks 2022 / AEAD и VMess: они держатся на фиксированном PSK и forward secrecy в этом смысле не дают вовсе.
4. Что значит «постквантовый», если квантового компьютера всё равно нет
Угроза здесь не «завтра сломают», а harvest now, decrypt later: трафик пишут сегодня, расшифровывают через N лет, когда появится подходящая машина. Для мессенджера это неактуально, для человека, чей трафик кто-то методично складывает в архив, — вопрос открытый.
ML-KEM-768 — это стандартизованный NIST механизм инкапсуляции ключа (FIPS 203, в девичестве CRYSTALS-Kyber). В mlkem768x25519plus он используется вместе с классическим X25519, а не вместо: гибрид ломается только если сломать обе половины. Это та же логика, по которой браузеры уже несколько лет гоняют X25519MLKEM768 в обычном TLS.
⚠️ Осторожно
Трезво: постквантовая часть не делает вас невидимым для DPI, не ускоряет соединение и не решает ни одной сегодняшней проблемы с блокировками. Она стоит дёшево и страхует от гипотетического сценария. Если вам продают «квантовый VPN» как средство обхода — вам продают маркетинг.
5. Как читается эта длинная строка
Формат — блоки, разделённые точкой, в фиксированном порядке. Одна и та же грамматика для серверного decryption и клиентского encryption, отличаются третий блок и содержимое ключевого хвоста.
Анатомия строки encryption/decryption
Схема на основе xtls.github.io/config/inbounds/vless.html и PR XTLS/Xray-core#5067
Блок
Сервер (decryption)
Клиент (encryption)
1. Рукопожатие
mlkem768x25519plus
то же самое, обязано совпадать
2. Внешний вид
native / xorpub / random
то же самое, обязано совпадать
3. Сессия
срок жизни тикета: 600s или диапазон 100-500s
0rtt или 1rtt
4. Паддинг
100-111-1111 — вероятность-мин-макс
то же
5. Задержка
75-0-111 — «75 % подождать 0…111 мс»
то же
6. Паддинг
50-0-3333
то же
7. X25519
приватный ключ
пароль (публичный ключ сервера)
8. ML-KEM-768
Seed
клиентская часть
Если блоки 4–6 опустить, применяются значения по умолчанию: 100-111-1111.75-0-111.50-0-3333.
6. native, xorpub или random — что выбрать
Режим
Что делает
Когда брать
native
Ничего не прячет: заголовки выглядят как TLSv1.3 AEAD, публичные ключи узнаваемы
Внутри REALITY/TLS, где внешний вид уже обеспечен верхним слоем
xorpub
XOR-ом гасит характерные признаки публичных ключей ML-KEM-768 и X25519
Когда VLESS Encryption работает без TLS сверху
random
Полная рандомизация через XOR (AES-256-CTR). По описанию PR затрагивает ~0,006 % объёма трафика
Максимальная невыразительность, когда обвязки нет вовсе
В описании PR отдельно отмечено, что связка native/xorpub + XTLS ReadV/Splice даёт лучшую производительность, потому что не приходится шифровать поверх уже зашифрованного. То есть если у вас REALITY + Vision — native тут не «слабый вариант», а осознанно правильный.
7. 0-RTT — экономия или дыра
0rtt разрешает клиенту переиспользовать выданный ранее тикет и пропустить полное рукопожатие: первое сообщение с данными уходит сразу. 1rtt всегда делает полный обмен.
Защита от реплея здесь сделана через срок жизни тикета на стороне сервера (по умолчанию около 10 минут), а не через сверку времени между клиентом и сервером. Практическая разница: вам не нужно ловить рассинхрон часов на роутере или телефоне — типовую боль Shadowsocks-AEAD и старых схем с maxTimeDiff.
📌 Заметка
Паддинг и задержки (блоки 4–6) применяются только к 1-RTT рукопожатию. Если у вас 0rtt и тикеты живут, вы эти блоки на большинстве соединений просто не увидите.
8. Как сгенерировать ключи
Самый короткий путь — одна команда, которая выдаёт сразу согласованную пару строк для сервера и клиента:
./xray vlessenc
Ручной путь, если нужно контролировать каждый блок:
./xray x25519 # пара X25519: PrivateKey для сервера, Password для клиента
./xray mlkem768 # Seed для сервера и клиентская часть
./xray uuid # UUID пользователя, если создаёте нового
shortIds для REALITY — это hex чётной длины, до 8 байт (16 hex-символов) включительно.
9. Как выглядит рабочий конфиг
Серверный inbound — VLESS с Vision поверх XHTTP и REALITY:
Поле decryptionнельзя оставлять пустым. Если шифрование не нужно, туда явно пишется "none". Пустая строка — не «выключено», а невалидный конфиг, и Xray на старте это уронит.
10. Тогда что такое mldsa65Seed и mldsa65Verify
Это уже не про шифрование канала, а про подпись сертификата, которым REALITY представляется клиенту.
mldsa65Seed на сервере — приватный ключ, которым к сертификату добавляется вторая, постквантовая подпись по ML-DSA-65 (FIPS 204).
mldsa65Verify на клиенте — публичная часть, которой эта подпись проверяется.
Смысл: аутентификация сервера в REALITY исторически держится на X25519, и её ломает тот же гипотетический квантовый противник. ML-DSA-65 добавляет параллельный механизм, который таким противником не ломается. Если поле не заполнено — работает старая схема, всё как раньше.
⚠️ Осторожно
Подводный камень из документации: когда в обвязке включается гибридный обмен X25519MLKEM768, сертификат вашего target должен быть больше 3500 байт. Постквантовые ключи и подписи объёмные, и слишком «худой» сертификат чужого сайта ломает картину. Если после включения соединение начало разваливаться — начните проверку именно отсюда, а не с ключей.
11. Справочник полей REALITY — что там вообще есть
Поле
Сторона
Назначение
target
сервер
Куда уходит трафик, не прошедший проверку, например example.com:443
serverNames
сервер
Допустимые значения SNI; пустая строка разрешает подключения без SNI
privateKey
сервер
Приватный ключ X25519 (./xray x25519)
shortIds
сервер
Список коротких идентификаторов, hex чётной длины до 16 символов
minClientVer
сервер
Минимальная версия клиента, по умолчанию 26.3.27; занижать не стоит — старые клиенты заметнее для DPI
maxClientVer
сервер
Максимальная версия клиента
maxTimeDiff
сервер
Допустимый разбег часов в миллисекундах
mldsa65Seed
сервер
Постквантовая подпись сертификата (ML-DSA-65)
limitFallbackUpload / limitFallbackDownload
сервер
Ограничение скорости для трафика, ушедшего в фолбэк
serverName
клиент
Одно из значений серверного serverNames
fingerprint
клиент
Обязательно. Профиль uTLS, например chrome
shortId
клиент
Один из серверных shortIds, может быть пустым
password
клиент
Публичный ключ X25519 сервера
mldsa65Verify
клиент
Проверка постквантовой подписи
spiderX
клиент
Стартовый путь «краулера»; лучше делать разным для разных клиентов
Разбор самого механизма REALITY — в отдельной теме: Гайд: как работает Reality (XTLS) и почему он обходит DPI.
12. Насколько это дорого по скорости
В описании PR приводятся два аргумента. Первый: у VLESS Encryption нет отдельного поля длины AEAD, за счёт чего заявлен выигрыш около 10 % относительно Shadowsocks 2022. Второй: при включённом XTLS повторной расшифровки проксируемого TLSv1.3 не происходит вовсе — на Linux работает splice на уровне ядра, и трафик идёт почти на нативной скорости.
Отдельно упомянуто ограничение размера пакета — 8K, позже 16K, — введённое ради того, чтобы не копировать буферы лишний раз.
📌 Заметка
Это цифры автора реализации из описания PR, а не результаты независимого замера. Проверяйте на своём железе: на слабом ARM-роутере постквантовое рукопожатие заметно тяжелее классического X25519, и на большом количестве коротких соединений разница видна.
13. Что сломается у клиентов
Главный риск — не криптография, а совместимость. Строка encryption — поле уровня ядра Xray, и клиент, который её не понимает, просто не подключится. В обсуждениях сообщества прямым текстом рекомендуют держать для таких пользователей отдельный inbound с классической схемой vless + vision + reality.
Практический порядок действий:
✅ Как правильно
Поднимите второй inbound с VLESS Encryption на отдельном порту, не трогая рабочий.
Проверьте на нём свои клиенты по одному, отмечая версию ядра Xray, а не версию GUI-обёртки — они расходятся.
Убедитесь, что сертификат target больше 3500 байт, если включаете mldsa65.
Только после этого переносите пользователей и гасите старый inbound.
Отдельно: mlkem768x25519plus — это конструкция Xray-core. Не переносите строку в конфиг другого ядра «по аналогии»; если у вас клиенты на sing-box или mihomo, сверяйтесь с их собственной документацией и не считайте поддержку данностью. Про маршрутизацию в sing-box у нас есть разбор по слоям.
14. Так включать сейчас или подождать
Взвешенно: включать имеет смысл, если вы раздаёте конфиги людям, которые точно перешлют их в мессенджере. Именно этот сценарий даёт реальный выигрыш уже сегодня — вне зависимости от того, когда и появится ли вообще квантовый компьютер.
Не имеет смысла торопиться, если у вас разношёрстный зоопарк клиентов, которые вы не контролируете, а поддержку обновлений некому оказывать. Ломать работающее ради страховки от гипотетической угрозы — плохой размен.
И общая оговорка, которая касается любого туннеля: всё описанное защищает канал до вашего сервера. Что происходит после сервера, и что вы сами отправили в чужой сервис поверх этого канала, ни ML-KEM, ни ML-DSA не лечат.
Если что-то в цепочке всё-таки не работает — есть отдельный справочник «симптом → причина → что делать».
А вы уже перевели своих пользователей на mlkem768x25519plus — или держите классику ради совместимости? Интересны цифры: сколько клиентов отвалилось при переключении и на каком железе постквантовое рукопожатие заметно по CPU.
В чужих конфигах Xray всё чаще попадаются две новые сущности: строка
"decryption": "mlkem768x25519plus.native.600s..."вместо привычного"none"и пара полейmldsa65Seed/mldsa65VerifyвнутриrealitySettings. Обе появились недавно, обе про постквантовую криптографию, и обе решают разные задачи — из-за чего в чатах регулярно советуют «включи, там квантовое шифрование», не объясняя, от чего именно оно спасает.Собрал ответы на вопросы, которые задают чаще всего. Фактура — из документации Project X и описания PR, который эту механику принёс.
ℹ️ Справка
Кому пригодится: тем, кто держит свой сервер на Xray-core (в том числе под панелями вроде Remnawave, Marzban, 3x-ui) и раздаёт конфиги дальше. Если вы только клиент и ключи вам выдали — вам полезны вопросы 4, 7 и 13.
1. Что именно добавили и когда
Механика приехала в Xray-core пулл-реквестом #5067 — «VLESS protocol: Add lightweight, Post-Quantum ML-KEM-768-based PFS 1-RTT / anti-replay 0-RTT AEAD Encryption» за авторством RPRX. В списке изменений релиза v26.6.1 (1 июня 2026) «VLESS Post-Quantum Encryption» вынесено отдельным пунктом со ссылкой на этот PR.
Параллельно в REALITY появились поля
mldsa65Seed(сервер) иmldsa65Verify(клиент) — это уже про подпись, а не про шифрование. Разница между ними — половина всей путаницы вокруг темы, и к ней мы вернёмся в вопросе 10.2. Разве REALITY и так не шифрует трафик?
Шифрует, но отвечает не за то, о чём обычно думают.
REALITY — это в первую очередь маскировка и аутентификация сервера. Клиент отправляет настоящий TLS ClientHello с SNI постороннего сайта, сервер подсовывает сертификат этого сайта, а для DPI картина выглядит как обычный визит на
example.com. Внутри — X25519, короткий идентификаторshortIdи проверка того, что сервер действительно ваш, а не подставленный по дороге.Чего REALITY делать не обязан — защищать вас от последствий утечки клиентского конфига. Именно эту дыру закрывает VLESS Encryption.
Схема на основе документации xtls.github.io и описания PR XTLS/Xray-core#5067
3. От чего страхует VLESS Encryption, чего не делает REALITY
Сценарий, который прямо разбирают в описании PR: конфиг клиента куда-то утёк. Вы отправили ссылку
vless://в мессенджер, скопировали её через буфер обмена на телефоне с «умной» клавиатурой, положили в облачную заметку, отдали знакомому — вариантов масса.Со старой схемой (
"decryption": "none") владелец такого конфига получает всё: он может подключаться, он может — если параллельно писал ваш трафик — расшифровать записанное, он может встать посередине. С VLESS Encryption ключ каждого соединения выводится из эфемерной пары ML-KEM-768 + X25519, сгенерированной на месте, и из содержимого конфига не восстанавливается.❗ Главное
Главная мысль в одну строку: REALITY отвечает на вопрос «как это выглядит снаружи и тот ли это сервер», VLESS Encryption — на вопрос «что будет, если строка подключения окажется в чужих руках».
В описании PR это разложено на два уровня. NFS-слой (non-forward-secret) построен на заранее известных публичных ключах и нужен, чтобы промежуточные узлы в цепочке не могли выдать себя за сервер. PFS-слой договаривается о временных ключах на каждое соединение — и даже утечка приватного ключа сервера не даёт задним числом расшифровать записанный трафик. Для сравнения там же прямо названы Shadowsocks 2022 / AEAD и VMess: они держатся на фиксированном PSK и forward secrecy в этом смысле не дают вовсе.
4. Что значит «постквантовый», если квантового компьютера всё равно нет
Угроза здесь не «завтра сломают», а harvest now, decrypt later: трафик пишут сегодня, расшифровывают через N лет, когда появится подходящая машина. Для мессенджера это неактуально, для человека, чей трафик кто-то методично складывает в архив, — вопрос открытый.
ML-KEM-768 — это стандартизованный NIST механизм инкапсуляции ключа (FIPS 203, в девичестве CRYSTALS-Kyber). В
mlkem768x25519plusон используется вместе с классическим X25519, а не вместо: гибрид ломается только если сломать обе половины. Это та же логика, по которой браузеры уже несколько лет гоняютX25519MLKEM768в обычном TLS.⚠️ Осторожно
Трезво: постквантовая часть не делает вас невидимым для DPI, не ускоряет соединение и не решает ни одной сегодняшней проблемы с блокировками. Она стоит дёшево и страхует от гипотетического сценария. Если вам продают «квантовый VPN» как средство обхода — вам продают маркетинг.
5. Как читается эта длинная строка
Формат — блоки, разделённые точкой, в фиксированном порядке. Одна и та же грамматика для серверного
decryptionи клиентскогоencryption, отличаются третий блок и содержимое ключевого хвоста.Схема на основе xtls.github.io/config/inbounds/vless.html и PR XTLS/Xray-core#5067
decryption)encryption)mlkem768x25519plusnative/xorpub/random600sили диапазон100-500s0rttили1rtt100-111-1111— вероятность-мин-макс75-0-111— «75 % подождать 0…111 мс»50-0-3333Если блоки 4–6 опустить, применяются значения по умолчанию:
100-111-1111.75-0-111.50-0-3333.6. native, xorpub или random — что выбрать
nativexorpubrandomВ описании PR отдельно отмечено, что связка native/xorpub + XTLS ReadV/Splice даёт лучшую производительность, потому что не приходится шифровать поверх уже зашифрованного. То есть если у вас REALITY + Vision —
nativeтут не «слабый вариант», а осознанно правильный.7. 0-RTT — экономия или дыра
0rttразрешает клиенту переиспользовать выданный ранее тикет и пропустить полное рукопожатие: первое сообщение с данными уходит сразу.1rttвсегда делает полный обмен.Защита от реплея здесь сделана через срок жизни тикета на стороне сервера (по умолчанию около 10 минут), а не через сверку времени между клиентом и сервером. Практическая разница: вам не нужно ловить рассинхрон часов на роутере или телефоне — типовую боль Shadowsocks-AEAD и старых схем с
maxTimeDiff.📌 Заметка
Паддинг и задержки (блоки 4–6) применяются только к 1-RTT рукопожатию. Если у вас
0rttи тикеты живут, вы эти блоки на большинстве соединений просто не увидите.8. Как сгенерировать ключи
Самый короткий путь — одна команда, которая выдаёт сразу согласованную пару строк для сервера и клиента:
Ручной путь, если нужно контролировать каждый блок:
shortIdsдля REALITY — это hex чётной длины, до 8 байт (16 hex-символов) включительно.9. Как выглядит рабочий конфиг
Серверный inbound — VLESS с Vision поверх XHTTP и REALITY:
Клиентская сторона — зеркально:
⛔ Так делать нельзя
Поле
decryptionнельзя оставлять пустым. Если шифрование не нужно, туда явно пишется"none". Пустая строка — не «выключено», а невалидный конфиг, и Xray на старте это уронит.10. Тогда что такое mldsa65Seed и mldsa65Verify
Это уже не про шифрование канала, а про подпись сертификата, которым REALITY представляется клиенту.
mldsa65Seedна сервере — приватный ключ, которым к сертификату добавляется вторая, постквантовая подпись по ML-DSA-65 (FIPS 204).mldsa65Verifyна клиенте — публичная часть, которой эта подпись проверяется.Смысл: аутентификация сервера в REALITY исторически держится на X25519, и её ломает тот же гипотетический квантовый противник. ML-DSA-65 добавляет параллельный механизм, который таким противником не ломается. Если поле не заполнено — работает старая схема, всё как раньше.
⚠️ Осторожно
Подводный камень из документации: когда в обвязке включается гибридный обмен
X25519MLKEM768, сертификат вашегоtargetдолжен быть больше 3500 байт. Постквантовые ключи и подписи объёмные, и слишком «худой» сертификат чужого сайта ломает картину. Если после включения соединение начало разваливаться — начните проверку именно отсюда, а не с ключей.11. Справочник полей REALITY — что там вообще есть
targetexample.com:443serverNamesprivateKey./xray x25519)shortIdsminClientVer26.3.27; занижать не стоит — старые клиенты заметнее для DPImaxClientVermaxTimeDiffmldsa65SeedlimitFallbackUpload/limitFallbackDownloadserverNameserverNamesfingerprintchromeshortIdshortIds, может быть пустымpasswordmldsa65VerifyspiderXРазбор самого механизма REALITY — в отдельной теме: Гайд: как работает Reality (XTLS) и почему он обходит DPI.
12. Насколько это дорого по скорости
В описании PR приводятся два аргумента. Первый: у VLESS Encryption нет отдельного поля длины AEAD, за счёт чего заявлен выигрыш около 10 % относительно Shadowsocks 2022. Второй: при включённом XTLS повторной расшифровки проксируемого TLSv1.3 не происходит вовсе — на Linux работает
spliceна уровне ядра, и трафик идёт почти на нативной скорости.Отдельно упомянуто ограничение размера пакета — 8K, позже 16K, — введённое ради того, чтобы не копировать буферы лишний раз.
📌 Заметка
Это цифры автора реализации из описания PR, а не результаты независимого замера. Проверяйте на своём железе: на слабом ARM-роутере постквантовое рукопожатие заметно тяжелее классического X25519, и на большом количестве коротких соединений разница видна.
13. Что сломается у клиентов
Главный риск — не криптография, а совместимость. Строка
encryption— поле уровня ядра Xray, и клиент, который её не понимает, просто не подключится. В обсуждениях сообщества прямым текстом рекомендуют держать для таких пользователей отдельный inbound с классической схемойvless + vision + reality.Практический порядок действий:
✅ Как правильно
targetбольше 3500 байт, если включаетеmldsa65.Отдельно:
mlkem768x25519plus— это конструкция Xray-core. Не переносите строку в конфиг другого ядра «по аналогии»; если у вас клиенты на sing-box или mihomo, сверяйтесь с их собственной документацией и не считайте поддержку данностью. Про маршрутизацию в sing-box у нас есть разбор по слоям.14. Так включать сейчас или подождать
Взвешенно: включать имеет смысл, если вы раздаёте конфиги людям, которые точно перешлют их в мессенджере. Именно этот сценарий даёт реальный выигрыш уже сегодня — вне зависимости от того, когда и появится ли вообще квантовый компьютер.
Не имеет смысла торопиться, если у вас разношёрстный зоопарк клиентов, которые вы не контролируете, а поддержку обновлений некому оказывать. Ломать работающее ради страховки от гипотетической угрозы — плохой размен.
И общая оговорка, которая касается любого туннеля: всё описанное защищает канал до вашего сервера. Что происходит после сервера, и что вы сами отправили в чужой сервис поверх этого канала, ни ML-KEM, ни ML-DSA не лечат.
Если что-то в цепочке всё-таки не работает — есть отдельный справочник «симптом → причина → что делать».
Источники
💬 Вопрос к сообществу
А вы уже перевели своих пользователей на
mlkem768x25519plus— или держите классику ради совместимости? Интересны цифры: сколько клиентов отвалилось при переключении и на каком железе постквантовое рукопожатие заметно по CPU.TOP HOSTERS: KAMATERA (30 дней бесплатного теста!)
Универсальный хостер №1 - 4VPS.su (2Гб\с сервера) - 10% скидка на первый заказ или 15% бонус на первое пополнение