#!/intro
Com o avanço inevitável da computação quântica, os algoritmos criptográficos atualmente utilizados tornam-se progressivamente inseguros (veja também A ameaça quântica: o fim da criptografia clássica). Para enfrentar este desafio, o NIST (Instituto Nacional de Padrões e Tecnologia dos Estados Unidos) selecionou três algoritmos baseados em diferentes paradigmas matemáticos, capazes de resistir a este novo tipo de ameaça.
O novos algoritmos pós-quânticos, ML-KEM, ML-DSA e SLH-DSA, foram concebidos não apenas para resistir a ataques com recurso a computadores quânticos, mas também para assegurar eficiência computacional, escalabilidade, compatibilidade com sistemas existentes, resistência a ataques clássicos e viabilidade de implementação em ambientes com recursos limitados.
> ML-KEM
O Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM), baseado no CRYSTALS-Kyber, é um algoritmo de troca de chaves assimétrico que assenta no problema Learning With Errors para módulos (Module-LWE).
O algoritmo implementa um mecanismo de encapsulamento de chave simétrica, permitindo o estabelecimento de um segredo partilhado entre duas partes sem necessidade de troca prévia de informação sensível.
No processo de encapsulamento, o remetente utiliza a chave pública do destinatário para gerar um segredo partilhado.
o encapsulamento da chave simétrica ocorre através da multiplicação da chave pública por um vetor secreto aleatório, acrescido de ruído. Este processo é irreversível na ausência da chave privada, devido à natureza do erro introduzido.
O seu desempenho é elevado podendo atingir milhares de operações por segundo mesmo em processadores ARM.
As três variantes aprovadas têm os seguintes parâmetros:
| Configuração | Segurança | Chave pública/privada (bytes) | Texto cifrado (bytes) |
|---|---|---|---|
| ML-KEM-512 | Categoria 1 | 800 / 1632 | 768 |
| ML-KEM-768 | Categoria 3 | 1184 / 2400 | 1088 |
| ML-KEM-1024 | Categoria 5 | 1568 / 3168 | 1568 |
A seleção da configuração mais adequada depende do compromisso entre o nível de segurança pretendido, o desempenho necessário e os recursos de largura de banda disponíveis.
Nos testes de desempenho realizados, o ML-KEM demonstrou velocidades de encapsulamento e decapsulamento significativamente superiores às do RSA, especialmente para níveis de segurança equivalentes. Esta eficiência torna-o particularmente adequado para aplicações modernas, incluindo comunicações seguras em dispositivos móveis, terminais IoT e sistemas com exigências elevadas de escalabilidade.
> ML-DSA
O Module-Lattice-Based Digital Signature Algorithm (ML-DSA) é um esquema de assinatura digital que deriva do CRYSTALS-Dilithium, também baseado no problema Module-LWE.
A principal característica distintiva do ML-DSA está na capacidade de criação de assinaturas estatisticamente indistinguíveis de ruído aleatório. Para alcançar esta propriedade, o ML-DSA recorre a um mecanismo de rejeição de amostras criteriosamente calibrado, de modo a garantir que a distribuição das assinaturas não expõe componentes da chave privada. O esquema utiliza ainda funções de dispersão criptográfica determinísticas e evita o uso de operações de vírgula flutuante, reforçando assim a sua resistência a ataques práticos, incluindo ataques por canal lateral.
O ML-DSA define três configurações:
| Configuração | Segurança | Chave pública / privada (bytes) | Assinatura (bytes) |
|---|---|---|---|
| ML-DSA-44 | Categoria 2 | 1312 / 2560 | 2420 |
| ML-DSA-65 | Categoria 3 | 1952 / 4032 | 3309 |
| ML-DSA-87 | Categoria 5 | 2592 / 4896 | 4627 |
O ML-DSA é adequado para ambientes com restrições de desempenho, oferecendo assinaturas compactas e verificação eficiente. A utilização de uma única semente de 256 bits para gerar a chave privada contribui para uma gestão de chaves mais simples e eficiente, o que é particularmente vantajoso em dispositivos com capacidade de armazenamento limitada. Esta abordagem reduz o espaço necessário para armazenar ou transmitir chaves privadas, mantendo simultaneamente a robustez criptográfica exigida para resistir a ataques.
> SLH-DSA
O Stateless Hash-Based Digital Signature Algorithm (SLH-DSA) é um algoritmo de assinatura digital construído sobre o esquema SPHINCS+, que utiliza apenas funções de dispersão criptográfica, ou hashing, resistentes a colisões. Ao contrário de esquemas baseados em estruturas algébricas, a sua segurança decorre de suposições mais elementares, como a resistência de funções SHA-2 e SHAKE.
Trata-se de um algoritmo stateless, o que significa que não requer o registo de chaves previamente utilizadas, eliminando uma classe inteira de falhas associadas à gestão de estado. O SLH-DSA oferece verificações extremamente robustas, mas resulta em assinaturas muito longas, que variam de acordo com o nível de segurança e otimização. Em todas as variantes, o tamanho da chave pública é fixo em 32 bytes e o da chave privada em 64 bytes. Estes valores são independentes do nível de segurança, função de dispersão ou modo de otimização.
Configurações típicas:
| Variante | Segurança | Otimização | Hash | Assinatura (bytes) |
|---|---|---|---|---|
| SLH-DSA-SHA2-128s | Categoria 1 | Tamanho | SHA-2 | 7856 |
| SLH-DSA-SHAKE-128s | Categoria 1 | Tamanho | SHAKE | 7856 |
| SLH-DSA-SHA2-128f | Categoria 1 | Desempenho | SHA-2 | 17088 |
| SLH-DSA-SHAKE-128f | Categoria 1 | Desempenho | SHAKE | 17088 |
| SLH-DSA-SHA2-192s | Categoria 3 | Tamanho | SHA-2 | 16224 |
| SLH-DSA-SHAKE-192s | Categoria 3 | Tamanho | SHAKE | 16224 |
| SLH-DSA-SHA2-192f | Categoria 3 | Desempenho | SHA-2 | 35664 |
| SLH-DSA-SHAKE-192f | Categoria 3 | Desempenho | SHAKE | 35664 |
| SLH-DSA-SHA2-256s | Categoria 5 | Tamanho | SHA-2 | 29792 |
| SLH-DSA-SHAKE-256s | Categoria 5 | Tamanho | SHAKE | 29792 |
| SLH-DSA-SHA2-256f | Categoria 5 | Desempenho | SHA-2 | 49856 |
| SLH-DSA-SHAKE-256f | Categoria 5 | Desempenho | SHAKE | 49856 |
As configurações diferem consoante o objetivo da implementação, podendo privilegiar a redução do tamanho das assinaturas ou a eficiência computacional. As variantes terminadas em “s” são orientadas para o tamanho, enquanto as “f” priorizam o desempenho. Cada variante está, por sua vez, associada a uma categoria de segurança, que representa o nível de robustez esperado contra ataques com recursos convencionais.
Quanto à função de dispersão, as variantes utilizam o SHA-2 ou SHAKE, dependendo da configuração. Ambas as funções oferecem resistência criptográfica equivalente; a escolha entre SHA-2 e SHAKE depende sobretudo de requisitos de compatibilidade, desempenho e disponibilidade de suporte.
SLH-DSA-SHA2-128s é uma configuração compacta de Categoria 1 com assinatura de 7856 bytes, ao passo que SLH-DSA-SHAKE-256f, de Categoria 5 e orientada para o desempenho, apresenta um tamanho de assinatura de 49856 bytes.
Apesar do tamanho elevado das assinaturas, a simplicidade da implementação e a ausência de operações complexas tornam o SLH-DSA uma opção de confiança para aplicações de longo prazo e infraestruturas críticas.
> categorias
A definição de categorias de segurança pelo NIST permite quantificar, de forma padronizada, a robustez de algoritmos criptográficos face a adversários com recursos clássicos (veja também Níveis de segurança em criptografia: conceitos e aplicações). Cada categoria estabelece um nível de esforço computacional mínimo necessário para quebrar o sistema, tomando como referência equivalentes simétricos. Esta classificação foi adotada no processo de avaliação dos algoritmos pós-quânticos, para permitir comparar dimensões de chaves, assinaturas e desempenho com base numa métrica comum de resistência criptográfica.
Categorias de segurança:
| Categoria | Segurança (bits) | Equivalente simétrico | Exemplo típico (clássico) |
|---|---|---|---|
| 1 | 128 | AES-128 | ECC P-256, RSA-3072 |
| 2 | 192 | — | — |
| 3 | ~192 | AES-192 | ECC P-384, RSA-7680 |
| 4 | 212 | — | — |
| 5 | ~256 | AES-256 | ECC P-521, RSA-15360 |
As categorias 1, 3 e 5 são as mais relevantes, pois correspondem a níveis de segurança com equivalentes simétricos bem definidos, como AES-128, AES-192 e AES-256. As categorias 2 e 4 têm utilidade marginal e surgem sobretudo em avaliações intermédias ou casos teóricos.
A correspondência entre categorias e algoritmos clássicos baseia-se nas recomendações do NIST SP 800-57, considerando o esforço computacional estimado para comprometer a segurança com recursos convencionais.
> comparação
A transição para estes novos algoritmos implica mudanças significativas, nomeadamente no que respeita à eficiência e aos requisitos de armazenamento. As assinaturas digitais convencionais, como RSA e ECDSA, caracterizam-se por tamanhos bastante reduzidos quando comparadas com os algoritmos PQC. A tabela seguinte ilustra a diferença nos tamanhos das assinaturas, agrupando os algoritmos por tipo e categoria de segurança.
| Algoritmo | Tipo | Segurança | Assinatura (bytes) |
|---|---|---|---|
| RSA-2048 | Convencional | ≈ Categoria 1 | 256 |
| ECDSA P-256 | Convencional | ≈ Categoria 1 | 64 |
| ML-DSA-44 | Pós-quântico | Categoria 2 | 2420 |
| ML-DSA-65 | Pós-quântico | Categoria 3 | 3309 |
| ML-DSA-87 | Pós-quântico | Categoria 5 | 4627 |
| SLH-DSA-SHA2-128s | Pós-quântico | Categoria 1 | 7856 |
| SLH-DSA-SHAKE-128f | Pós-quântico | Categoria 1 | 17088 |
| SLH-DSA-SHAKE-192s | Pós-quântico | Categoria 3 | 16224 |
| SLH-DSA-SHA2-192f | Pós-quântico | Categoria 3 | 35664 |
| SLH-DSA-SHAKE-256s | Pós-quântico | Categoria 5 | 29792 |
| SLH-DSA-SHA2-256f | Pós-quântico | Categoria 5 | 49856 |
> conclusão
Cada um dos três algoritmos padronizados pelo NIST oferece um compromisso distinto entre segurança, desempenho e aplicabilidade. O ML-KEM é uma escolha prática e eficiente para a troca de chaves; o ML-DSA fornece assinaturas robustas com excelente desempenho de verificação; e o SLH-DSA, apesar do seu tamanho, destaca-se pela sua solidez conceptual e independência de estruturas matemáticas complexas.
A diversidade de abordagens matemáticas destes algoritmos é uma salvaguarda adicional contra falhas inesperadas. A sua adoção constitui um passo essencial para a preparação das infraestruturas digitais perante a inevitável ascensão da computação quântica.
> referencias
NIST - Post-Quantum Cryptography Standardization
Projeto do NIST dedicado à normalização de algoritmos resistentes à computação quântica.
FIPS 203 - ML-KEM (CRYSTALS-Dilithium)
Especificação oficial do mecanismo de encapsulamento de chaves ML-KEM.
FIPS 204 - ML-DSA (CRYSTALS-KYBER)
Especificação oficial do mecanismo de assinatura digital ML-DSA.
FIPS 205 - SLH-DSA (SPHINCS+)
Especificação oficial do mecanismo de assinatura SLH-DSA.
> status: finished
> exit 0