PQ ALFTECH / STUDIES ↗
◌ Постквантовая криптография / рабочее демо 03

Заперто от
завтрашнего компьютера.

Шифрование, которое не вскроет квантовый компьютер, — на этом телефоне, по шагам. ML-KEM-768, стандарт NIST с 2024 года, реализованный по тексту стандарта.

Провести обмен ключом ↓ Рабочее демо для DeepTech Ventures Люксембург · сентябрь 2026

Три шага. Один секрет.

Алиса делает пару ключей. Боб запирает свежий секрет её открытым ключом. Алиса отпирает его своим закрытым. Потом испортите один байт того, что послал Боб, — и посмотрите, как всё молча ломается.

ML-KEM-768 · FIPS 203ЕЩЁ НЕ ЗАПУСКАЛОСЬ
1 · Alice
Алиса делает пару ключей
2 · Bob
Боб запирает секрет её открытым ключом
3 · Alice
Алиса отпирает его своим закрытым

Теперь скажите что-нибудь.

Общий секрет становится ключом AES-256. Напишите что угодно: шифруется на стороне Боба, расшифровывается у Алисы.

зашифровано
—
расшифровано
—
СхемаОткрытый ключШифртекстКвантовый компьютер
RSA-2048256 B256 Bвскрывает (Шор, 1994)
X25519 (эллиптическая кривая)32 B32 Bвскрывает (Шор, 1994)
ML-KEM-7681184 B1088 Bизвестных атак нет

Цена — ключи больше. Chrome, Firefox и Cloudflare уже сочетают X25519 с ML-KEM-768 в TLS — так что соединение с этой самой страницей могло им пользоваться.

01

Решётки

RSA стоит на разложении на множители, эллиптические кривые — на дискретном логарифме; квантовый компьютер решает оба алгоритмом Шора. ML-KEM стоит на другой задаче: по матрице A и A·s + e с малым шумом e найти s. Квантового алгоритма, решающего её быстрее классического, не известно.

⋰
02

Стандарт

FIPS 203, опубликован NIST в августе 2024-го после шестилетнего открытого конкурса. Эта страница реализует его строка за строкой: Keccak, арифметика в Z₃₃₂₉, теоретико-числовое преобразование, выборка, сжатие, K-PKE и сам KEM с неявным отказом.

◫
03

Проверено

Шесть детерминированных seed'ов через этот код и через независимую реализацию: открытые и закрытые ключи, шифртексты и общие секреты совпадают байт в байт. SHA-3 и SHAKE сходятся с тестовыми векторами стандарта. Полный обмен здесь занимает около 50 мс.

↗

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

Размеры: открытый ключ 1184 байта, закрытый 2400, шифртекст 1088, общий секрет 32 — ровно как FIPS 203 задаёт для ML-KEM-768.

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

Стандарт, а не догадка

Ключи родились здесь.
И умрут здесь.

Написать ↗
Aleksandr Fedorov
github.com/alexff91