Aegis-Q Specification
RFC-формат спецификации ядра Aegis-Q
Section titled “RFC-формат спецификации ядра Aegis-Q”1. Общая структура
Section titled “1. Общая структура”Aegis-Q — четырёхслойная раундовая криптографическая схема, обеспечивающая квантово-устойчивое шифрование.
1.1. Раундовая функция
Section titled “1.1. Раундовая функция”Каждый раунд выполняет следующие преобразования:
S_L' = LatticeMix(S_L)S_C' = CodeMix(S_C)S_Z' = ZKMix(S_Z, nonce)S_M' = MaskMix(S_M, nonce)
S_next = concat(S_L', S_C', S_Z', S_M')1.2. Шифрование
Section titled “1.2. Шифрование”for i in 1..R: state = F(state, round_key[i], nonce)
ciphertext = XOR(plaintext, KDF(state))2. LatticeMix
Section titled “2. LatticeMix”2.1. Параметры
Section titled “2.1. Параметры”- n: 4096 (размерность полинома)
- q: 2^32 - 5 (модуль)
- R_q: Z_q[x]/(x^n + 1)
2.2. Преобразование
Section titled “2.2. Преобразование”state_L' = (a * state_L + b) mod qгде a и b производятся из мастер-ключа через HKDF-SHA3-512.
2.3. Реализация
Section titled “2.3. Реализация”- Используется NTT (Number Theoretic Transform) для эффективного умножения полиномов
- Все операции выполняются в константном времени
3. CodeMix
Section titled “3. CodeMix”3.1. Параметры
Section titled “3.1. Параметры”- Размерность: 4096×4096
- Плотность матрицы: ~10% (разреженное представление)
3.2. Преобразование
Section titled “3.2. Преобразование”state_C' = P * G * state_Cгде:
- G — порождающая матрица кода
- P — секретная перестановка
3.3. Реализация
Section titled “3.3. Реализация”- Строго линейные операции
- Сложность O(n²), оптимизировано блоками
- Без таблиц поиска
4. ZKMix
Section titled “4. ZKMix”4.1. Преобразование
Section titled “4.1. Преобразование”ZKMix(x, r) = H(r || x) XOR xгде H — SHA3-512 или SHAKE-256.
4.2. Симулятор
Section titled “4.2. Симулятор”Sim(r) = H(r || 0) XOR random()Гарантия ZK обеспечивается полной симулируемостью.
4.3. Реализация
Section titled “4.3. Реализация”- Постоянное время операций
- Используется SHA3-512 или SHAKE-256
5. MaskMix
Section titled “5. MaskMix”5.1. Преобразование
Section titled “5.1. Преобразование”mask = SHAKE256(round_key || nonce || counter)state_M' = state_M XOR mask6. Состояние (State)
Section titled “6. Состояние (State)”6.1. Структура
Section titled “6.1. Структура”struct State { lattice: Vec<u32>, // 4096 элементов code: Vec<u32>, // 4096 элементов zk: Vec<u8>, // 64 байта mask: Vec<u8>, // переменный размер (обычно 64 байта)}6.2. Инициализация
Section titled “6.2. Инициализация”Состояние инициализируется из ключа и nonce через HKDF-SHA3-512.
7. API
Section titled “7. API”7.1. Инициализация
Section titled “7.1. Инициализация”fn aegis_q_init(key: &[u8], nonce: &[u8]) -> State7.2. Шифрование
Section titled “7.2. Шифрование”fn aegis_q_encrypt(key: &[u8], nonce: &[u8], plaintext: &[u8]) -> Vec<u8>7.3. Расшифрование
Section titled “7.3. Расшифрование”fn aegis_q_decrypt(key: &[u8], nonce: &[u8], ciphertext: &[u8]) -> Result<Vec<u8>, &'static str>8. Безопасность
Section titled “8. Безопасность”8.1. Уровень безопасности
Section titled “8.1. Уровень безопасности”- LatticeMix: > Kyber1024
- Общий уровень: пост-квантовый
8.2. Константное время
Section titled “8.2. Константное время”Все криптографические операции выполняются в константном времени для предотвращения атак по времени.
8.3. Аутентификация
Section titled “8.3. Аутентификация”Используется SHA3-256 для генерации тега аутентификации (256 бит).
9. Оптимизация
Section titled “9. Оптимизация”- SIMD ускорение (планируется)
- NTT оптимизация
- Раздельные memory arenas
- Строгая константность времени
10. Тестирование
Section titled “10. Тестирование”- Property-based тесты (proptest)
- Known Answer Tests (KAT)
- Тесты на константное время
- Тесты компонентов раундов