Secure Messenger
Инженерный прототип ядра защищённого мессенджера без интерфейса. Он проверяет главное: сообщение нельзя прочитать чужому, нельзя незаметно изменить и нельзя подсунуть второй раз.

Как устроено
У каждого профиля пароль и пара ключей. Контакты передаются файлами с отпечатком ключа для сверки. Сообщение подписывается Ed25519 и шифруется постквантовым ML-KEM-768 вместе с ChaCha20-Poly1305. История хранится в SQLite, текст на диске открытым не лежит.
Что он отклоняет
Повтор уже полученного сообщения, сообщение с одним изменённым битом, неверный пароль и самозванца, который назвался тем же именем, но с другим ключом. Всё это показано на настоящих прогонах ниже.
Честно о границах
Это прототип: в нём нет сетевого транспорта, прямой секретности и внешнего аудита. Он показывает, как мы строим криптографическое ядро и проверяем его тестами.
Пресс для писем с печатью
Письмо проходит замок ключа, конверт и сургучную печать подписи. На стороне получателя щуп ворот проверяет печать и бракует письмо с одним сломанным битом, а счётчик не пускает повтор.
Экраны
Технически
- C++20, CMake, OpenSSL и SQLite, строгие флаги компилятора и сборка с санитайзерами.
- Ed25519 для подписи, ML-KEM-768, HKDF и ChaCha20-Poly1305 для шифрования.
- Пароль профиля усилен scrypt.
- Около 1 500 строк кода, программа весит около 120 КБ.
- Сборки для Linux, macOS и Windows.
C++20 · OpenSSL · SQLite · CMake