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

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

Отправитель
Получатель
Передача данных

Видеоинструкция

Смотреть на Яндекс.Диске

Публичный ключ pk

Ключи получателя (ML-KEM)

  • Генерирует пару ключей ML-KEM-1024: публичный (pk) и секретный (sk).
  • Секретный ключ хранит только у себя — никому не передаёт.
  • Отображает отпечаток (fingerprint) для проверки подлинности pk.

Ключ подписи отправителя (ML-DSA)

  • Генерирует долгоживущую пару ML-DSA: pk_sender и sk_sender.
  • Подписывает метаданные файла своим sk_sender при каждой отправке.
  • Передаёт pk_sender получателю для верификации (см. справа).
Публичный ключ подписи pk_sender

Доверенные отправители

  • Получает pk_sender по защищённому или проверенному каналу.
  • Сохраняет в список «Доверенные отправители» (имя + pk_sender).
  • При расшифровке проверяет подпись по этому ключу → «верифицировано».

Шифрование и отправка

  • Вставляет pk получателя, выбирает файл.
  • ML-KEM encapsulate(pk) → shared_secret. AES-256-GCM шифрует файл и мету.
  • Подписывает мету ключом sk_sender. Формирует blob, загружает на сервер.
  • Получает ссылку вида /r/{id}.
Ссылка на файл

Расшифровка и скачивание

  • Открывает ссылку /r/{id}, вставляет свой секретный ключ (sk).
  • ML-KEM decapsulate → shared_secret. Расшифровывает мету и файл AES-GCM.
  • Проверяет подпись по сохранённому pk_sender → «От: Имя (верифицировано)».
  • Скачивает файл с правильным именем.

Роль сервера

Сервер принимает и хранит зашифрованные данные (файл, мета, подпись, ключи — только как данные). Не шифрует и не расшифровывает; не знает секретных ключей и содержимого файлов.

Мета (метаданные)

Имя файла, время отправки и т.п. Шифруется вместе с файлом (в т.ч. имя: по нему нельзя понять, о чём файл) и подписывается для проверки целостности.

KEM

ML-KEM-1024 (Kyber)

Обмен ключами. Только получатель получает общий секрет для расшифровки.

Шифрование

AES-256-GCM

Файл и метаданные. Целостность + конфиденциальность.

Подпись

ML-DSA-87 (Dilithium-5)

Подпись меты. Верификация отправителя по сохранённому pk.

Образовательный проект

Это работающий учебный сервис для демонстрации постквантовых алгоритмов криптографии. В будущем, когда квантовые компьютеры станут достаточно мощными, современные алгоритмы шифрования (RSA, ECDH) станут уязвимыми. Kyber и Dilithium — стандарты NIST для защиты данных от квантовых атак.

• E2EE — сквозное шифрование (только отправитель и получатель видят данные)

• NIST PQC — постквантовые стандарты, признанные во всём мире

• Сервер не имеет доступа к ключам и содержимому