Guia Avançado de Criptografia: AES, RSA, ECC e Criptografia Pós-Quântica

Este guia completo explora conceitos avançados de criptografia, algoritmos e protocolos usados em sistemas modernos de comunicação segura. Ideal para desenvolvedores e profissionais de segurança.

Nota: Este guia pressupõe familiaridade com conceitos básicos de criptografia. Para iniciantes, comece com nosso Dicas de Segurança para Iniciantes.

Algoritmos de Criptografia Simétrica

AES (Advanced Encryption Standard)

O padrão ouro para criptografia simétrica, adotado pelo governo dos EUA em 2001.

Características Principais

  • Tamanhos de chave: 128, 192 ou 256 bits
  • Tamanho do bloco: 128 bits
  • Rodadas: 10, 12 ou 14 dependendo do tamanho da chave
  • Performance: Altamente otimizado, aceleração por hardware disponível

Modos Comuns

  • GCM (Galois/Counter Mode): Criptografia autenticada, recomendado para a maioria dos casos de uso
  • CBC (Cipher Block Chaining): Modo tradicional, requer MAC separado
  • CTR (Counter): Paralelizável, usado em alguns protocolos

ChaCha20

Cifra de fluxo moderna projetada por Daniel J. Bernstein, cada vez mais popular como alternativa ao AES.

Vantagens

  • Mais rápido que AES em dispositivos sem aceleração por hardware
  • Implementação em tempo constante (resistente a ataques de temporização)
  • Design simples, mais fácil de implementar com segurança
  • Usado com Poly1305 para criptografia autenticada

Criptografia Assimétrica

RSA (Rivest-Shamir-Adleman)

Amplamente usado para troca de chaves e assinaturas digitais.

Considerações Importantes

  • Tamanho mínimo da chave: 2048 bits (4096 bits recomendado para segurança de longo prazo)
  • Performance: Computacionalmente caro comparado à criptografia simétrica
  • Esquemas de padding: Use OAEP para criptografia, PSS para assinaturas
  • Ameaça quântica: Vulnerável a computadores quânticos (algoritmo de Shor)

Elliptic Curve Cryptography (ECC)

Alternativa mais eficiente ao RSA com segurança equivalente em tamanhos de chave menores.

Curvas Populares

  • Curve25519: Projetada para troca de chaves ECDH, amplamente adotada
  • Ed25519: Para assinaturas digitais, usada em SSH, GPG
  • P-256 (secp256r1): Padrão NIST, amplamente suportado
  • P-384, P-521: Níveis de segurança mais altos

Vantagens Sobre o RSA

  • ECC de 256 bits ≈ segurança RSA de 3072 bits
  • Computação mais rápida
  • Chaves e assinaturas menores
  • Menores requisitos de largura de banda e armazenamento

Protocolos de Troca de Chaves

Diffie-Hellman (DH)

Permite que duas partes estabeleçam um segredo compartilhado em um canal inseguro.

Variantes

  • DH Clássico: Implementação original
  • ECDH: Versão de Curva Elíptica (mais eficiente)
  • X25519: ECDH moderno usando Curve25519

Perfect Forward Secrecy (PFS)

Garante que comunicações passadas permaneçam seguras mesmo se as chaves de longo prazo forem comprometidas.

Implementação

  • Gerar pares de chaves efêmeras para cada sessão
  • Destruir chaves de sessão após o uso
  • Usado em TLS 1.3, Signal Protocol, etc.

Funções Hash

Família SHA-2

  • SHA-256: Saída de 256 bits, amplamente usado
  • SHA-384, SHA-512: Níveis de segurança mais altos
  • Aplicações: Assinaturas digitais, validação de certificados, hash de senhas (com técnicas adequadas)

SHA-3 (Keccak)

  • Construção diferente do SHA-2 (função esponja)
  • Resistente a ataques de extensão de comprimento
  • Adequado para aplicações que requerem altas margens de segurança

BLAKE2/BLAKE3

  • Mais rápido que SHA-2 e SHA-3
  • Criptograficamente seguro
  • BLAKE3: Altamente paralelizável, excelente para grandes volumes de dados

Key Derivation Functions (KDFs)

PBKDF2 (Password-Based Key Derivation Function 2)

  • Propósito: Derivar chaves criptográficas de senhas
  • Iterações: Mínimo de 100.000 (recomendação OWASP)
  • Caso de uso: Armazenamento de senhas, derivação de chaves

Argon2

Vencedor da Password Hashing Competition (2015), recomendado para novas aplicações.

Variantes

  • Argon2id: Híbrido (recomendado para a maioria dos casos de uso)
  • Argon2i: Otimizado contra ataques de canal lateral
  • Argon2d: Máxima resistência a ataques de GPU

scrypt

  • Função com uso intensivo de memória (resistente a ataques de hardware)
  • Usado por Litecoin, Tarsnap
  • Bom equilíbrio entre segurança e compatibilidade

Message Authentication Codes (MACs)

HMAC (Hash-based MAC)

  • Combina função hash com chave secreta
  • Fornece autenticação e integridade
  • Comum: HMAC-SHA256, HMAC-SHA512

Poly1305

  • Autenticador de uso único
  • Usado com ChaCha20 para criptografia autenticada
  • Rápido e em tempo constante

Criptografia Autenticada

Por Que É Importante

A criptografia sozinha não garante integridade. Um atacante pode modificar o texto cifrado sem detecção. A criptografia autenticada resolve isso.

AEAD (Authenticated Encryption with Associated Data)

  • AES-GCM: Mais amplamente suportado
  • ChaCha20-Poly1305: Melhor em dispositivos móveis
  • AES-CCM: Usado em alguns protocolos sem fio

Assinaturas Digitais

Assinaturas RSA

  • Padding: Use PSS (Probabilistic Signature Scheme)
  • Função hash: SHA-256 ou superior
  • Tamanho da chave: Mínimo de 2048 bits

ECDSA (Elliptic Curve Digital Signature Algorithm)

  • Assinaturas menores que RSA
  • Requer geração cuidadosa de nonce (RNG fraco = chave comprometida)
  • Variante determinística (RFC 6979) recomendada

Ed25519

  • Determinístico (não requer RNG)
  • Geração e verificação rápida de assinatura
  • Assinaturas pequenas (64 bytes)
  • Resistente a ataques de canal lateral

Protocolos Modernos

Signal Protocol

Protocolo de criptografia ponta a ponta de última geração usado pelo Signal, WhatsApp, Facebook Messenger.

Características Principais

  • Double Ratchet: Atualiza continuamente as chaves
  • Perfect Forward Secrecy: Mensagens passadas permanecem seguras
  • Post-Compromise Security: Recupera-se de comprometimento de chave
  • Assíncrono: Funciona mesmo quando o destinatário está offline

TLS 1.3

Versão mais recente do protocolo Transport Layer Security.

Melhorias

  • Removidos algoritmos fracos e conjuntos de cifras
  • Sempre fornece sigilo futuro
  • Handshake mais rápido (1-RTT, opção 0-RTT)
  • Server Hello criptografado

Noise Protocol Framework

Framework de protocolo criptográfico moderno para construir sistemas de comunicação seguros.

Aplicações

  • WireGuard VPN
  • Lightning Network
  • Mensagens I2P

Criptografia Pós-Quântica

A Ameaça

Computadores quânticos podem quebrar RSA e ECC usando o algoritmo de Shor. Algoritmos simétricos são menos afetados, mas requerem chaves maiores.

Candidatos Pós-Quânticos do NIST

  • Kyber: Encapsulamento de chave baseado em reticulado
  • Dilithium: Assinaturas digitais baseadas em reticulado
  • SPHINCS+: Assinaturas baseadas em hash

Estratégia de Transição

  • Abordagem híbrida: Combinar algoritmos clássicos e pós-quânticos
  • Aumentar tamanhos de chave simétrica para 256 bits
  • Monitorar processo de padronização do NIST
  • Planejar agilidade de algoritmo

Melhores Práticas de Implementação

Não Crie Sua Própria Criptografia

Use bibliotecas estabelecidas e revisadas por pares:

  • libsodium: Alto nível, fácil de usar
  • OpenSSL: Abrangente, amplamente suportado
  • BoringSSL: Fork do OpenSSL do Google
  • Ring: Biblioteca de criptografia Rust

Gerenciamento de Chaves

  • Use módulos de segurança de hardware (HSMs) para chaves críticas
  • Implemente políticas de rotação de chaves
  • Nunca codifique chaves diretamente no código-fonte
  • Use derivação de chaves para múltiplos propósitos
  • Exclua chaves da memória com segurança após o uso

Geração Segura de Números Aleatórios

  • Use RNG criptograficamente seguro (CSPRNG)
  • Nunca use funções rand() padrão
  • RNGs do sistema operacional: /dev/urandom (Linux), CryptGenRandom (Windows)
  • Específicos da linguagem: crypto.randomBytes (Node.js), módulo secrets (Python)

Prevenção de Ataques de Temporização

  • Use comparação em tempo constante para segredos
  • Evite ramificação baseada em dados secretos
  • Esteja ciente de ataques de temporização de cache
  • Use bibliotecas projetadas com resistência a ataques de temporização

Testes e Validação

Auditorias de Segurança

  • Testes de penetração regulares
  • Revisões de código por especialistas em segurança
  • Auditorias de segurança de terceiros
  • Programas de recompensa por bugs

Conformidade

  • FIPS 140-2/3: Padrão do governo dos EUA
  • Common Criteria: Certificação de segurança internacional
  • PCI DSS: Requisitos da indústria de cartões de pagamento

Recursos para Aprendizado Adicional

Livros

  • "Cryptography Engineering" de Ferguson, Schneier e Kohno
  • "Serious Cryptography" de Jean-Philippe Aumasson
  • "Applied Cryptography" de Bruce Schneier

Recursos Online

  • Cryptopals Crypto Challenges
  • Cursos de Criptografia de Stanford (Coursera)
  • IACR ePrint Archive
  • Crypto Stack Exchange
Veja a criptografia em ação: SecretNote usa criptografia AES-256-GCM com derivação de chave segura para proteger suas mensagens. Experimente agora!