aegis-q
Квантово-устойчивое криптографическое шифрование максимальной стойкости
Aegis-Q — это реализация криптографического алгоритма с четырёхслойной раундовой структурой, разработанного для обеспечения максимальной стойкости против квантовых атак.
Архитектура
Заголовок раздела «Архитектура»Aegis-Q использует четырёхслойную структуру:
- LatticeMix — операции на решётках RLWE (уровень безопасности > Kyber1024)
- CodeMix — линейные коды (порождающие матрицы G, перестановки P)
- ZKMix — zero-knowledge трансформация (симулятор)
- MaskMix — раундовые случайные маски
Структура проекта
Заголовок раздела «Структура проекта»Использование
Заголовок раздела «Использование»Базовое шифрование
Заголовок раздела «Базовое шифрование»use aegis_q_core::{aegis_q_encrypt, aegis_q_decrypt};
let key = b"your-32-byte-key-1234567890123456";let nonce = b"your-16-byte-nonce";let plaintext = b"Hello, Aegis-Q!";
// Шифрованиеlet ciphertext = aegis_q_encrypt(key, nonce, plaintext);
// Расшифрованиеlet decrypted = aegis_q_decrypt(key, nonce, &ciphertext)?;VPN транспорт
Заголовок раздела «VPN транспорт»use transport::vpn::{VpnSession, Handshake};
// Выполнить handshakelet handshake = Handshake::perform(client_key, server_key);let session = VpnSession::from_handshake(&handshake.shared_secret, nonce);
// Шифрование данныхlet encrypted = session.encrypt_data(data);Messenger (E2EE)
Заголовок раздела «Messenger (E2EE)»use messenger::ratchet::RatchetState;
let mut ratchet = RatchetState::new(root_key);let encrypted = ratchet.encrypt(message);Параметры безопасности
Заголовок раздела «Параметры безопасности»- LatticeMix: n = 4096, q = 2^32 - 5
- CodeMix: матрицы 4096×4096
- ZKMix: SHA3-512 / SHAKE-256
- Раунды: 10 (настраивается)
Тестирование
Заголовок раздела «Тестирование»# Запуск всех тестовcargo test
# Property-based тестыcargo test --test property
# Known Answer Testscargo test --test kat
# Бенчмаркиcargo benchДокументация
Заголовок раздела «Документация»# Генерация документацииcargo doc --openПодробная спецификация алгоритма доступна в SPEC.md
Исходный код · AGPL-3.0