La cryptographie post-quantique entre en déploiement. ICICLE de @Ingo_zk prend désormais en charge ML-KEM (Kyber) avec des ensembles complets de paramètres, le traitement par lots et les opérations asynchrones. Décortiquons celui-ci ! 👇
@Ingo_zk ML-KEM (Module-Lattice Key Encapsulation Mechanism) est la variante standardisée de Kyber selon la norme FIPS 203, conçue pour la cryptographie post-quantique. Le NIST a approuvé trois niveaux : Kyber512 (niveau 1), Kyber768 (niveau 3) et Kyber1024 (niveau 5).
@Ingo_zk ICICLE v3.9.0 implémente ML-KEM en C++ avec une prise en charge complète des trois ensembles de paramètres. Les opérations clés (génération de clés, encapsulation, décampsulation) sont instanciées via Kyber{512,768,1024}Params.
@Ingo_zk Tailles d’octets par paramètre défini : - Kyber512 : PK = 800 B, SK = 1632B, CT = 768B - Kyber768 : PK = 1184B, SK = 2400B, CT = 1088B - Kyber1024 : PK=1568B, SK=3168B, CT=1568B
@Ingo_zk La structure MlKemConfig prend en charge les opérations asynchrones, les indicateurs de résidence de périphérique (par exemple, public_keys_on_device) et le traitement par lot (batch_size). Des hooks de réglage via ConfigExtension* ext sont disponibles pour une optimisation spécifique au backend.
@Ingo_zk signatures API : - keygen(entropie, config, public_keys, secret_keys) - encapsulate(message, public_keys, config, ciphertexts, shared_secrets) - decapsulate(secret_keys, ciphertexts, config, shared_secrets)
@Ingo_zk Le traitement par lots permet le parallélisme dans l’échange de clés, ce qui est essentiel pour les applications évolutives telles que la messagerie sécurisée et les VPN PQ. Les indicateurs côté appareil indiquent à l’environnement d’exécution ICICLE les emplacements de mémoire préexistants afin de minimiser les transferts.
@Ingo_zk ICICLE comprend des exemples d’utilisation pour Kyber768 : allocation, génération d’entropie, génération de paires de clés, encapsulation et décapsulation. Le modèle est structuré et cohérent entre les ensembles de paramètres.
@Ingo_zk Cette mise en œuvre s’aligne sur la spécification finale NIST FIPS 203 (juin 2025). Il est conçu pour l’intégration dans les applications C++ compatibles PQC, en particulier celles qui exploitent l’accélération matérielle.
2,31K