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