Publicado em 01 de outubro de 2026· 3 min de leitura

    Cloudflare Workers adiciona ML-KEM e ML-DSA pós-quânticos ao Web Crypto

    Capa do post sobre algoritmos pós-quânticos no Cloudflare Workers, com o título em branco sobre fundo navy e uma malha de nós conectados em tons de dourado

    O Cloudflare Workers passou a oferecer cinco variantes de algoritmos pós-quânticos no Web Crypto: ML-KEM-768 e ML-KEM-1024 para encapsulamento de chaves, além de ML-DSA-44, ML-DSA-65 e ML-DSA-87 para assinaturas digitais. O suporte é opcional e depende da flag de compatibilidade webcrypto_modern_algorithms.

    Segundo o anúncio da Cloudflare, o objetivo é permitir que aplicações testem essas primitivas sem incluir uma implementação criptográfica própria em JavaScript ou WebAssembly. A mudança reduz o código embarcado pelas bibliotecas, mas ainda não representa uma migração pós-quântica completa.

    O que entrou no Web Crypto

    Além dos cinco algoritmos, o runtime ganhou as operações encapsulateBits(), decapsulateBits(), encapsulateKey() e decapsulateKey(). Também há importação e exportação de chaves no formato JWK.

    ML-KEM é um mecanismo de encapsulamento de chaves. Uma parte encapsula material secreto usando a chave pública; a parte que possui a chave privada decapsula o resultado e obtém o mesmo segredo compartilhado.

    const keys = await crypto.subtle.generateKey(
      "ML-KEM-768",
      true,
      ["encapsulateBits", "decapsulateBits"],
    );
    
    const { sharedKey, ciphertext } =
      await crypto.subtle.encapsulateBits(
        "ML-KEM-768",
        keys.publicKey,
      );
    
    const sameSharedKey =
      await crypto.subtle.decapsulateBits(
        "ML-KEM-768",
        keys.privateKey,
        ciphertext,
      );
    

    Esse fluxo ainda não cifra uma mensagem. ML-KEM produz material de chave compartilhado. Protocolos como Hybrid Public Key Encryption, ou HPKE, combinam esse material com uma derivação de chaves e um algoritmo AEAD, como AES-GCM, para formar uma construção de criptografia completa.

    ML-DSA cobre outro caso: gerar um par de chaves, assinar bytes e verificar a assinatura. O modelo de uso é próximo ao de Ed25519 e ECDSA.

    const data = new TextEncoder().encode("hello post-quantum");
    
    const { publicKey, privateKey } =
      await crypto.subtle.generateKey(
        "ML-DSA-44",
        false,
        ["sign", "verify"],
      );
    
    const signature =
      await crypto.subtle.sign("ML-DSA-44", privateKey, data);
    
    const valid =
      await crypto.subtle.verify(
        "ML-DSA-44",
        publicKey,
        signature,
        data,
      );
    

    O que muda para aplicações e bibliotecas

    Sem primitivas nativas, desenvolvedores de Workers precisavam empacotar uma implementação criptográfica separada. Isso aumentava a aplicação e transferia para cada projeto ou biblioteca a responsabilidade de selecionar e manter esse código.

    Com o suporte no runtime, bibliotecas podem delegar as operações ao Web Crypto. A Cloudflare cita a panva/jose para JWTs assinados com ML-DSA e a panva/hpke para construções baseadas em ML-KEM. A integração pode escolher a implementação conforme os algoritmos disponíveis no ambiente.

    Também foi adicionado o helper getPublicKey(), que obtém uma chave pública a partir de uma chave privada carregada:

    const publicKey = await crypto.subtle.getPublicKey(
      privateKey,
      ["verify"],
    );
    

    Para ML-KEM, a permissão associada à chave pública é encapsulateBits, enquanto a chave privada fica responsável pela decapsulação. Isso evita manter as duas chaves separadamente ou escrever lógica específica para cada formato.

    A transição depende dos protocolos

    As novas APIs são componentes de baixo nível, não protocolos prontos. A adoção exige que bibliotecas, serviços e ambientes de execução concordem sobre algoritmos, formatos e construção criptográfica.

    Parte desse trabalho já aparece em outros componentes do ecossistema. O OpenSSH adicionou suporte a mlkem768x25519 em 2024. O IETF mantém um rascunho de HPKE para KEMs pós-quânticos e híbridos, publicou a RFC 9964 para ML-DSA em JOSE e adotou um rascunho de JWE baseado em HPKE pós-quântico e híbrido.

    O suporte nativo em Workers fornece as primitivas necessárias para essas integrações. Conforme explica a publicação técnica, porém, bibliotecas ainda podem precisar de adaptações específicas para o runtime.

    Limitações e onde faz sentido

    A especificação Modern Algorithms in the Web Cryptography API ainda está em evolução. Por isso, o recurso permanece atrás da flag webcrypto_modern_algorithms e precisa ser habilitado explicitamente.

    ML-KEM isoladamente não entrega criptografia de mensagens, e os exemplos de ML-KEM e ML-DSA não constituem protocolos completos. A própria Cloudflare apresenta as APIs como blocos para validar integrações, não como um caminho integral de migração.

    O suporte faz sentido para equipes que precisam experimentar algoritmos pós-quânticos, adaptar bibliotecas ou testar protocolos sobre o Web Crypto sem carregar outra implementação criptográfica. Não é suficiente, por si só, para declarar uma aplicação migrada: interoperabilidade, construção do protocolo e integração específica de cada biblioteca continuam sendo responsabilidades separadas.

    Compartilhar:

    Leia também

    Fontes

    Maxwell Diniz
    Maxwell Diniz

    Fundador da DEVDINIZ

    Software em produção

    51 ferramentas gratuitas, direto no navegador

    Utilitários para CPF, CNPJ, JWT, JSON, regex, cores e mais. Processamento local, sem cadastro e sem conta — a mesma engenharia que sustenta o que escrevemos aqui.