Постквантовая криптография вступает в развертывание. ICICLE от @Ingo_zk теперь поддерживает ML-KEM (Kyber) с полными наборами параметров, пакетированием и асинхронными операциями. Давайте разберемся! 👇
@Ingo_zk ML-KEM (Module-Lattice Key Encapsulation Mechanism) — это стандартизированный вариант Kyber в соответствии со стандартом FIPS 203, предназначенный для постквантовой криптографии. NIST утвердил три уровня: Kyber512 (уровень 1), Kyber768 (уровень 3) и Kyber1024 (уровень 5).
@Ingo_zk ICICLE v3.9.0 реализует ML-KEM на C++ с полной поддержкой всех трех наборов параметров. Ключевые операции — генерация ключа, инкапсуляция, декапсуляция — создаются в виде шаблона с помощью Kyber{512,768,1024}Params.
@Ingo_zk Размеры байтов на набор параметров: - Kyber512: PK=800B, SK=1632B, CT=768B - Kyber768: PK=1184B, SK=2400B, CT=1088B - Kyber1024: PK=1568B, SK=3168B, CT=1568B
@Ingo_zk Структура MlKemConfig поддерживает асинхронные операции, подсказки о размещении устройств (например, public_keys_on_device) и пакетную обработку (batch_size). Хуки настройки через ConfigExtension* ext доступны для оптимизации для бэкенда.
@Ingo_zk Подписи API: - keygen(энтропия, конфигурация, public_keys, secret_keys) - encapsulate(сообщение, public_keys, config, ciphertexts, shared_secrets) - decapsulate(secret_keys, ciphertexts, config, shared_secrets)
@Ingo_zk Пакетная обработка обеспечивает параллелизм при обмене ключами, что критически важно для масштабируемых приложений, таких как защищенный обмен сообщениями и VPN PQ. Флаги на стороне устройства сообщают среде выполнения ICICLE о существующих местах памяти, чтобы свести к минимуму передачи.
@Ingo_zk ICICLE включает примеры использования для Kyber768: выделение, генерация энтропии, генерация пар ключей, инкапсуляция и декапсуляция. Шаблон структурирован и согласован для всех наборов параметров.
@Ingo_zk Эта реализация соответствует окончательной спецификации NIST FIPS 203 (июнь 2025 г.). Он предназначен для интеграции в приложения C++, поддерживающие PQC, особенно те, которые используют аппаратное ускорение.
2,4K