Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

02 - Criptografia Assimétrica (RSA, ECC, Diffie-Hellman)

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Criptografia Assimétrica (RSA, ECC, Diffie-Hellman)

A criptografia assimétrica revolucionou a segurança digital ao resolver o problema fundamental da distribuição de chaves que limitava a criptografia simétrica. Em vez de uma chave compartilhada, utiliza um par de chaves matematicamente relacionadas: uma pública (que pode ser livremente divulgada) e uma privada (mantida em segredo absoluto pelo dono). O que é cifrado com uma só pode ser decifrado com a outra.

Abaixo, detalham-se os principais algoritmos assimétricos, suas bases matemáticas, tamanhos de chave, casos de uso e o comparativo RSA vs ECC.

1. Características Gerais

Atributo Valor
Número de chaves por entidade 2 (par pública/privada)
Velocidade relativa Lenta (100-1000x mais lenta que simétrica)
Tamanho típico de chave 2048-4096 bits (RSA) / 256-521 bits (ECC)
Base matemática Fatoração, log discreto, curvas elípticas
Aplicações TLS, SSH, PGP, assinaturas, certificados X.509, IPSec
RFC de referência RFC 8017 (PKCS#1 RSA), RFC 7748 (Curve25519/Curve448), RFC 6090 (ECC básica)

2. RSA (Rivest-Shamir-Adleman)

O RSA foi o primeiro algoritmo de criptografia assimétrica publicado, em 1977 por Ron Rivest, Adi Shamir e Leonard Adleman do MIT. (Pesquisas recentes revelaram que James Ellis, Clifford Cocks e Malcolm Williamson do GCH britânico haviam descoberto o mesmo método em 1973, mantido classificado até 1997.)

Base Matemática

A segurança do RSA baseia-se na dificuldade de fatorar o produto de dois números primos grandes. O par de chaves é gerado a partir de:

  • Dois primos grandes p e q (geralmente de ~1024 bits cada para RSA-2048).
  • n = p × q (módulo público).
  • Função totiente de Euler: φ(n) = (p-1)(q-1).
  • Expoente público e (usualmente 65537 = 216+1).
  • Expoente privado d tal que d × e ≡ 1 (mod φ(n)).
Operação Fórmula
Cifragem c = m^e mod n
Decifragem m = c^d mod n
Assinatura s = m^d mod n
Verificação m = s^e mod n

Tamanhos de Chave e Status

Tamanho Status NIST SP 800-57 Uso recomendado até
1024 bits Obsoleto Proibido desde 2013
2048 bits Aceitável 2030
3072 bits Recomendado 2031+
4096 bits Conservador >2031

3. ECC (Elliptic Curve Cryptography)

A ECC é uma família de algoritmos assimétricos baseados em curvas elípticas sobre corpos finitos. A segurança apóia-se na dificuldade do Problema do Logaritmo Discreto sobre Curvas Elípticas (ECDLP), que é significativamente mais difícil que o log discreto clássico, permitindo chaves equivalentemente seguras com tamanho muito menor.

Curvas Padronizadas

Curva Padrão Uso Típico
P-256 (secp256r1) NIST FIPS 186-4 TLS, certificados X.509, ECDSA
P-384 (secp384r1) NIST FIPS 186-4 Nível de segurança 192 bits
P-521 (secp521r1) NIST FIPS 186-4 Nível de segurança 256 bits
Curve25519 RFC 7748 Ed25519, X25519, WireGuard, Signal
Curve448 RFC 7748 Nível de segurança 224 bits
secp256k1 SECG Bitcoin, Ethereum

Vantagens do ECC

  • Chaves menores com segurança equivalente a RSA — economia em banda, armazenamento e CPU.
  • Operações mais rápidas que RSA em nível equivalente de segurança.
  • Curvas modernas (Curve25519, Ed25519) foram projetadas para evitar falhas de implementação (resistência a canais laterais, não-cofactor issues).

4. RSA vs ECC: Tamanhos de Chave Equivalentes

Segurança (bits) RSA ECC Fator de redução
80 1024 160 ~6x
112 2048 224 ~9x
128 3072 256 ~12x
192 7680 384 ~20x
256 15360 521 ~30x

Uma chave ECC-256 bits oferece segurança equivalente a um RSA-3072 bits, ocupando apenas ~8% do tamanho. Em sistemas embarcados, IoT e mobile, ECC é a escolha dominante.

5. Diffie-Hellman (DH) e ECDH

O protocolo Diffie-Hellman, publicado em 1976 por Whitfield Diffie e Martin Hellman (com contribuição de Ralph Merkle), foi a primeira proposta prática de troca de chaves segura sobre canal inseguro. Permite que duas partes, sem conhecimento prévio uma da outra, estabeleçam uma chave secreta compartilhada usando um canal público.

Funcionamento Clássico (DH)

  1. Acordo público: primo p e gerador g.
  2. Alice escolhe a secreto, envia A = g^a mod p.
  3. Bob escolhe b secreto, envia B = g^b mod p.
  4. Ambos computam K = B^a = A^b = g^(ab) mod p.
  5. Um atacante observa A, B, p, g, mas não consegue derivar K sem resolver o log discreto.

Variações Modernas

Variante Base RFC Uso Típico
DH Log discreto em Z_p* RFC 2631 IPSec histórico
DHE DH Efêmero (chaves temporárias) RFC 7919 TLS 1.2 forward secrecy
ECDH Curvas elípticas RFC 6090 SSH, Wi-Fi WPA3 (SAE)
ECDHE ECDH Efêmero RFC 8422 TLS 1.3 (obrigatório)
X25519 Curve25519 RFC 7748 TLS 1.3, WireGuard, Signal
X448 Curve448 RFC 7748 Nível alto (224 bits)

Forward Secrecy (Sigilo Futuro)

A propriedade de Forward Secrecy (ou PFS — Perfect Forward Secrecy) garante que, mesmo que a chave privada de longo prazo do servidor seja comprometida no futuro, as sessões anteriores gravadas permanecem seguras. Isso exige chaves efêmeras (DHE/ECDHE) em cada sessão, descartadas após o uso. TLS 1.3 tornou ECDHE obrigatório.

6. DSA e Ed25519 (Assinaturas Digitais)

DSA (Digital Signature Algorithm)

Padronizado pelo NIST em FIPS 186 (1994), o DSA é baseado em log discreto em Z_p*. Historicamente usado em certificados, hoje é obsoleto em favor do ECDSA e Ed25519.

ECDSA (Elliptic Curve DSA)

Variante de DSA sobre curvas elípticas, padronizado em FIPS 186-4. Muito usado em TLS, mas vulnerável a falhas de implementação: se o nonce k for reutilizado ou previsível, a chave privada pode ser recuperada (ataque que comprometeu a PS3 da Sony em 2010).

Ed25519

Sistema de assinatura baseado na curva Curve25519, usando o esquema EdDSA (RFC 8032). Vantagens:

  • Determinístico (não requer fonte aleatória de alta qualidade — elimina o risco de Sony PS3).
  • Rápido — verificação em ~100 µs, geração em ~50 µs.
  • Compacto — assinaturas de 64 bytes, chaves públicas de 32 bytes.
  • Resistente a canais laterais — projeção em coordenadas twisted Edwards.

Adotado por: SSH (padrão em OpenSSH 6.5+), WireGuard, OpenBSD, FreeBSD, Signal, age encryption.

7. Tabela Comparativa: Algoritmos Assimétricos

Algoritmo Ano Tipo Tamanho típico Operação Principal RFC
RSA 1977 Cifra + Assinatura 2048-4096 bits Fatoração RFC 8017
DH 1976 Troca de chaves 2048 bits Log discreto em Z_p RFC 2631
DSA 1994 Assinatura 2048 bits Log discreto em Z_p FIPS 186
ECDH 1985 Troca de chaves 256 bits (P-256) ECDLP RFC 6090
ECDSA 1985 Assinatura 256 bits (P-256) ECDLP FIPS 186-4
Ed25519 2011 Assinatura 256 bits ECDLP (twisted Edwards) RFC 8032
X25519 2015 Troca de chaves 256 bits ECDLP (Curve25519) RFC 7748

8. Casos de Uso Modernos

Protocolo Assimétrico Usado Função
TLS 1.3 X25519 / P-256 (ECDHE) + RSA-PSS / ECDSA / Ed25519 Troca de chaves + assinatura do certificado
SSH RSA-2048+, ECDSA-P256, Ed25519 Autenticação de servidor e usuário
WireGuard X25519 (Noise Protocol) Troca de chaves efêmera
Signal X25519 + XEdDSA Double Ratchet
Bitcoin secp256k1 (ECDSA) Assinatura de transações
PGP/OpenPGP RSA, ECC Cifragem + assinatura de e-mails
WPA3 (SAE) X25519 (RFC 7748) Dragonfly key exchange

9. Boas Práticas

  • Migrar para ECC (P-256 ou Curve25519) sempre que possível — economia de banda e CPU.
  • Preferir Ed25519 para assinaturas em sistemas novos (determinística, segura e rápida).
  • Usar ECDHE efêmero em TLS — obrigatório para forward secrecy.
  • Desabilitar RSA key exchange (sem DHE/ECDHE) em TLS — não oferece PFS.
  • Tamanho mínimo RSA: 2048 bits (idealmente 3072 para vida útil >5 anos).
  • Proteger chave privada com passphrase + HSM/KMS em ambientes críticos.
  • Rotação periódica de chaves (política de 1-2 anos para chaves raiz).

10. Conclusão

A criptografia assimétrica é o pilar que viabilizou a Internet segura como a conhecemos — sem ela, não haveria HTTPS, PKI, SSH, VPNs escaláveis nem criptomoedas. O RSA, embora ainda dominante em legado, está sendo progressivamente substituído por ECC (em especial Curve25519/Ed25519) por seu melhor equilíbrio entre segurança e desempenho. Diffie-Hellman e suas variantes efêmeras (DHE/ECDHE) garantem forward secrecy, propriedade hoje considerada obrigatória em TLS 1.3. A escolha entre RSA e ECC depende do ecossistema: RSA mantém compatibilidade ampla; ECC oferece eficiência superior em dispositivos com restrições. Em ambos os casos, a implementação correta é tão crítica quanto o algoritmo em si — falhas como nonce reutilizado ou geração de números aleatórios fraca comprometem qualquer esquema.