Postkvantkryptografi är på väg in i distribution. ICICLE by @Ingo_zk har nu stöd för ML-KEM (Kyber) med fullständiga parameteruppsättningar, batchbearbetning och asynkrona operationer. Låt oss packa upp den här! 👇
@Ingo_zk ML-KEM (Module-Lattice Key Encapsulation Mechanism) är den standardiserade Kyber-varianten enligt FIPS 203, designad för postkvantkryptografi. NIST godkände tre nivåer: Kyber512 (nivå 1), Kyber768 (nivå 3) och Kyber1024 (nivå 5).
@Ingo_zk ICICLE v3.9.0 implementerar ML-KEM i C++ med fullt stöd för alla tre parameteruppsättningarna. Nyckeloperationer – nyckelgenerering, inkapsling, avkapsling – är mallinstansierade via Kyber{512,768,1024}Params.
@Ingo_zk Bytestorlekar per parameteruppsättning: - Kyber512: PK=800B, SK=1632B, CT=768B - Kyber768: PK=1184B, SK=2400B, CT=1088B - Kyber1024: PK=1568B, SK=3168B, CT=1568B
@Ingo_zk MlKemConfig-structen stöder asynkrona ops, tips om enhetshemvist (t.ex. public_keys_on_device) och batchbearbetning (batch_size). Stämskruvar via ConfigExtension* ext är tillgängliga för backend-specifik optimering.
@Ingo_zk API-signaturer: - keygen (entropi, konfiguration, public_keys, secret_keys) - kapsla in (meddelande, public_keys, config, chiffertexter, shared_secrets) - decapsulate(secret_keys, chiffertexter, config, shared_secrets)
@Ingo_zk Batching möjliggör parallellitet i nyckelutbyte, vilket är viktigt för skalbara program som säkra meddelanden och PQ VPNs. Flaggor på enhetssidan ger ledtrådar till ICICLE-körningen om befintliga minnesplatser för att minimera överföringar.
@Ingo_zk ICICLE innehåller exempel på användning för Kyber768: allokering, entropigenerering, generering av nyckelpar, inkapsling och avkapsling. Mönstret är strukturerat och konsekvent mellan parameteruppsättningar.
@Ingo_zk Den här implementeringen överensstämmer med den slutliga specifikationen för NIST FIPS 203 (juni 2025). Den är skräddarsydd för integration i PQC-medvetna C++-applikationer, särskilt de som utnyttjar hårdvaruacceleration.
1,93K