La crittografia post-quantistica sta entrando in fase di distribuzione. ICICLE di @Ingo_zk ora supporta ML-KEM (Kyber) con set di parametri completi, batching e operazioni asincrone. Analizziamo questo! 👇
@Ingo_zk ML-KEM (Meccanismo di Incapsulamento della Chiave a Modulo-Lattice) è la variante standardizzata di Kyber secondo FIPS 203, progettata per la crittografia post-quantistica. NIST ha approvato tre livelli: Kyber512 (Livello 1), Kyber768 (Livello 3) e Kyber1024 (Livello 5).
@Ingo_zk ICICLE v3.9.0 implementa ML-KEM in C++ con pieno supporto per tutti e tre i set di parametri. Le operazioni chiave—generazione della chiave, incapsulamento, decapsulamento—sono instantiate tramite template usando Kyber{512,768,1024}Params.
@Ingo_zk Dimensioni in byte per set di parametri: - Kyber512: PK=800B, SK=1632B, CT=768B - Kyber768: PK=1184B, SK=2400B, CT=1088B - Kyber1024: PK=1568B, SK=3168B, CT=1568B
@Ingo_zk La struct MlKemConfig support operazioni async, suggerimenti sulla residenza del dispositivo (ad es. public_keys_on_device) e batching (batch_size). I ganci di tuning tramite ConfigExtension* ext sono disponibili per l'ottimizzazione specifica del backend.
@Ingo_zk Firmare API: - keygen(entropia, configurazione, chiavi_pubbliche, chiavi_segrete) - incapsula(messaggio, chiavi_pubbliche, configurazione, testi_cifrati, segreti_condivisi) - decapsula(chiavi_segrete, testi_cifrati, configurazione, segreti_condivisi)
@Ingo_zk Il batching consente il parallelismo nella scambio di chiavi—critico per applicazioni scalabili come la messaggistica sicura e i VPN PQ. I flag lato dispositivo forniscono suggerimenti al runtime ICICLE riguardo a posizioni di memoria preesistenti per minimizzare i trasferimenti.
@Ingo_zk ICICLE include esempi di utilizzo per Kyber768: allocazione, generazione di entropia, generazione di coppie di chiavi, incapsulamento e decapsulamento. Il modello è strutturato e coerente attraverso i set di parametri.
@Ingo_zk Questa implementazione è in linea con la specifica finale NIST FIPS 203 (giugno 2025). È progettata per l'integrazione in applicazioni C++ consapevoli della PQC, specialmente quelle che sfruttano l'accelerazione hardware.
1,83K