Как это работает
По шагам: кто создаёт ключи, зачем они нужны и как файл шифруется и расшифровывается. Всё происходит у вас в браузере; сервер только хранит уже зашифрованные данные.
Видеоинструкция
Ключи получателя (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 получателя, выбирает файл.
- •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 — постквантовые стандарты, признанные во всём мире
• Сервер не имеет доступа к ключам и содержимому