Pular para o conteúdo
ecdsa.com

RSA-2048 vs RSA-4096: tamanho, velocidade e prazo de 2030

O RSA-4096 é mais forte contra ataques clássicos e custa seis vezes mais para assinar. Diante do prazo que realmente importa, o dos computadores quânticos, ele quase não traz vantagem.
Itens comparadosRSA

RSA-2048 vs RSA-4096 é a dúvida mais comum sobre tamanho de chave em PKI. O RSA-2048 é o mínimo permitido para certificados de confiança pública e fica no nível de segurança de 112 bits do NIST; o RSA-4096 fica bem acima de 128 bits. O custo da chave maior aparece no tempo de assinatura, no tempo de geração de chaves e em cada assinatura transmitida pela rede, então a resposta certa depende de quantas vezes uma chave assina e de por quanto tempo ela precisa continuar confiável.

Visão geral

RSA-2048RSA-3072RSA-4096
Segurança clássica (SP 800-57 Parte 1)112 bits128 bitsAcima de 128 bits (sem linha na tabela; 7680 bits = 192)
NIST IR 8547 (rascunho)Descontinuado depois de 2030, proibido depois de 2035Proibido depois de 2035Proibido depois de 2035
Tamanho da assinatura256 bytes384 bytes512 bytes
Chave pública, SPKI DER294 bytes422 bytes550 bytes
Assinaturas por segundo (OpenSSL 3.6.5)cerca de 3.000cerca de 1.045cerca de 470
Verificações por segundocerca de 114.000cerca de 54.000cerca de 31.500
Geração de chavescerca de 26 ms em médiacerca de 100 mscerca de 250–280 ms, muito variável
Mínimo do CA/Browser ForumAtendeAtendeAtende

Valores medidos com openssl speed rsa2048 rsa3072 rsa4096 em um núcleo de um Apple M4 Max.

Margem de segurança

A segurança do RSA vem da dificuldade de fatorar o módulo com o crivo geral de campo numérico, cujo custo cresce de forma subexponencial com o tamanho da chave; é por isso que as chaves RSA precisam crescer muito mais rápido que as chaves de curva elíptica. O NIST SP 800-57 Parte 1 equipara o RSA de 2048 bits à segurança de 112 bits, 3072 bits a 128 e 7680 a 192; a tabela não tem linha para 4096 bits, que fica entre 128 e 192. O maior número do desafio de fatoração RSA já fatorado publicamente tem 829 bits (RSA-250, 2020), longe de 2048.

O prazo que mais importa é o quântico. O algoritmo de Shor fatora os três tamanhos em tempo polinomial em um computador quântico grande e tolerante a falhas, e dobrar a chave praticamente dobra o número de qubits e aumenta o tempo de execução de forma modesta; isso não muda o resultado. A estimativa de Craig Gidney, de 2025, situou o RSA-2048 em menos de uma semana com menos de um milhão de qubits ruidosos. Por isso, o NIST IR 8547 (um rascunho público inicial) propõe a mesma data final, 2035, para todos os tamanhos de RSA, com o RSA-2048 também descontinuado depois de 2030 por causa do nível clássico de 112 bits. O RSA-4096 amplia sua margem clássica; ele não amplia seu prazo pós-quântico.

Desempenho

As operações com a chave privada crescem aproximadamente com o cubo do tamanho do módulo, e as operações com a chave pública, com o quadrado:

OpenSSL 3.6.5 em um núcleo de um Apple M4 Max
openssl speed -seconds 2 rsa2048 rsa3072 rsa4096
Saída (trecho)
                   sign    verify    encrypt   decrypt   sign/s verify/s  encr./s  decr./s
rsa  2048 bits 0.000334s 0.000009s 0.000009s 0.000339s   2994.9 114178.1 108513.6   2950.3
rsa  3072 bits 0.000957s 0.000019s 0.000019s 0.000965s   1044.7  53948.7  52312.0   1036.7
rsa  4096 bits 0.002117s 0.000032s 0.000032s 0.002121s    472.4  31522.3  30870.7    471.6

Para um servidor TLS que assina uma vez a cada handshake completo, passar de 2048 para 4096 multiplica esse custo por cerca de seis. Para uma CA raiz que assina algumas intermediárias por década, o custo é irrelevante. A geração de chaves também fica muito mais lenta, porque precisa procurar dois primos grandes: cerca de 26 ms em média para 2048 bits nesta máquina, contra um quarto de segundo para 4096, com uma cauda longa, o que importa em dispositivos pequenos e em testes que geram chaves repetidamente.

A verificação continua barata em qualquer tamanho porque o expoente público é pequeno (65537), e é por isso que o RSA mantém seu lugar em cadeias de certificados verificadas bilhões de vezes.

Limites de hardware e de protocolo

Os limites de tamanho vêm mais do ambiente ao redor do que do próprio RSA:

  • Cartões inteligentes e tokens: muitos cartões PIV e tokens de segurança mais antigos aceitam apenas RSA-2048; dispositivos mais novos acrescentam 3072 e 4096. Confira antes de comprar hardware.
  • HSMs e KMS na nuvem: os três tamanhos são padrão (o AWS KMS oferece RSA_2048, RSA_3072 e RSA_4096), mas os preços por operação e os limites de vazão deixam o 4096 visivelmente mais caro em grande volume.
  • DNS: uma chave DKIM de 4096 bits tem 736 caracteres em base64 e precisa ser dividida em várias strings TXT; alguns provedores de DNS e resolvedores antigos lidam mal com registros longos. Zonas DNSSEC com RSA-4096 produzem respostas grandes, que podem exigir TCP.
  • Cadeias de certificados: cada certificado RSA-4096 acrescenta cerca de 512 bytes de assinatura e 550 bytes de chave, contra algumas centenas de bytes no ECDSA, o que pesa para clientes com recursos limitados.

Quando escolher cada um

  • Novos certificados de servidor TLS: ECDSA P-256 em primeiro lugar; se precisar ser RSA, o RSA-2048 ainda é aceito por todos os clientes e CAs, mas o RSA-3072 dá margem além de 2030.
  • CAs raiz e CAs intermediárias de vida longa: RSA-4096 (ou ECDSA P-384); o custo de assinatura é desprezível e as vidas úteis são longas. A ISRG Root X1 do Let’s Encrypt é RSA-4096, enquanto as intermediárias RSA dele são RSA-2048.
  • Assinatura de JWT (RS256): RSA-2048 é comum e permitido (a RFC 7518 exige pelo menos 2048), RSA-3072 para chaves novas; considere usar ES256 em vez disso.
  • Chaves SSH: prefira Ed25519; se for RSA, pelo menos 3072.
  • Chaves de assinatura de código e de documentos: RSA-3072 ou 4096, de acordo com o que a CA oferece e com a vida útil esperada da assinatura, além de carimbos do tempo.
  • Hardware com recursos limitados: o que ele aceitar, geralmente RSA-2048, com um plano de substituição documentado.

Notas de migração

Mudar o tamanho da chave RSA significa gerar um novo par de chaves e, no caso de certificados, obter um novo certificado.

  1. Faça o inventário das chaves por tamanho: certificados (openssl x509 -noout -text), JWKS (comprimento de n), chaves SSH (ssh-keygen -l), registros DKIM e handles de chave do HSM. Chaves RSA-2048 com vida útil além de 2030 são as primeiras a serem rotacionadas.
  2. Gere as chaves novas diretamente onde elas vão ficar: openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072, ou o equivalente do HSM; evite exportar chaves para mudar o tamanho delas.
  3. Mantenha as chaves antigas e novas em paralelo: publique as duas no JWKS com valores de kid distintos, adicione o novo seletor DKIM antes da troca e sirva as duas chaves de host SSH durante a transição.
  4. Teste os consumidores com a chave maior: buffers de tamanho fixo, limites de registros DNS e pilhas TLS embarcadas são as falhas habituais.
  5. Aproveite a rotação para repensar o algoritmo: se todos os consumidores aceitam ECDSA ou EdDSA, abandonar o RSA por completo costuma ser o melhor investimento, e as assinaturas pós-quânticas vão exigir mais uma rotação antes de 2035.

Referências

Todas as comparações