A criptografia pós-quântica está a entrar em fase de implementação. O ICICLE da @Ingo_zk agora suporta ML-KEM (Kyber) com conjuntos de parâmetros completos, processamento em lote e operações assíncronas. Vamos desvendar isto! 👇
@Ingo_zk ML-KEM (Mecanismo de Encapsulação de Chave em Módulo-Lattice) é a variante de Kyber padronizada sob o FIPS 203, projetada para criptografia pós-quântica. O NIST aprovou três níveis: Kyber512 (Nível 1), Kyber768 (Nível 3) e Kyber1024 (Nível 5).
@Ingo_zk ICICLE v3.9.0 implementa ML-KEM em C++ com suporte total para todos os três conjuntos de parâmetros. As operações de chave—geração de chave, encapsulação, descapsulação—são instanciadas por modelo via Kyber{512,768,1024}Params.
@Ingo_zk Tamanhos em bytes por conjunto de parâmetros: - Kyber512: PK=800B, SK=1632B, CT=768B - Kyber768: PK=1184B, SK=2400B, CT=1088B - Kyber1024: PK=1568B, SK=3168B, CT=1568B
@Ingo_zk A estrutura MlKemConfig suporta operações assíncronas, dicas de residência do dispositivo (por exemplo, public_keys_on_device) e agrupamento (batch_size). Os ganchos de ajuste via ConfigExtension* ext estão disponíveis para otimização específica do backend.
@Ingo_zk Assinaturas da API: - keygen(entropia, configuração, chaves_públicas, chaves_secretas) - encapsular(mensagem, chaves_públicas, configuração, textos_cifrados, segredos_compartilhados) - decapsular(chaves_secretas, textos_cifrados, configuração, segredos_compartilhados)
@Ingo_zk O Batching permite paralelismo na troca de chaves—crítico para aplicações escaláveis como mensagens seguras e VPNs PQ. As flags do lado do dispositivo indicam ao runtime ICICLE sobre locais de memória pré-existentes para minimizar transferências.
@Ingo_zk ICICLE inclui exemplos de uso para Kyber768: alocação, geração de entropia, geração de pares de chaves, encapsulamento e desencapsulamento. O padrão é estruturado e consistente em todos os conjuntos de parâmetros.
@Ingo_zk Esta implementação está alinhada com a especificação final do NIST FIPS 203 (junho de 2025). É adaptada para integração em aplicações C++ cientes de PQC, especialmente aquelas que utilizam aceleração de hardware.
1,82K