Criptografia aplicada — por onde começar
Da cifra de César ao AES-GCM. Foco prático: entender o suficiente pra QUEBRAR implementações erradas e USAR primitivas certas. Matemática só na dose necessária.
pré-requisitos
- ▸Python básico (pwntools, pycryptodome)
- ▸Aritmética modular (mod, gcd, inversa) — nível ensino médio
- ▸Conversão hex / binário / ASCII de cabeça
labs para praticar
- CryptoHack
Melhor plataforma de cripto. 100% grátis, didática perfeita.
- CryptoPals
8 sets, 64 desafios. Quem termina sabe cripto.
- GoatX Academy — Crypto CTF
8 desafios interativos no terminal do navegador.
- id0-rsa.pub
Cripto + matemática aplicada, nível médio/avançado.
trilha passo a passo
- 1
1. Cifras clássicas
César (rotação), Vigenère (chave repetida), substituição. Quebre TODAS com análise de frequência e Kasiski. Útil pra criar intuição.
- 2
2. XOR e one-time pad
Por que XOR de chave fixa quebra (key reuse), por que OTP é teoricamente perfeito mas inviável, e como atacar 'crib drag' quando duas mensagens compartilham chave.
- 3
3. Hashing e quebra
MD5, SHA-1 (deprecados), SHA-2, SHA-3, BLAKE2/3. Diferença entre hash, HMAC, KDF (PBKDF2, bcrypt, scrypt, Argon2). Quebra com hashcat/john + rockyou.
- 4
4. Cripto simétrica
AES em ECB (NUNCA usar), CBC (padding oracle / Vaudenay), CTR (nonce reuse), GCM (correto). ChaCha20-Poly1305 como alternativa moderna. Sempre AEAD em produção.
- 5
5. RSA — onde quebra
Geração (p, q, n, e, d), por que primos pequenos caem (factordb, msieve), Common Modulus Attack (mesmo n, e diferentes), Wiener (d pequeno), Hastad (e=3 sem padding), Bleichenbacher (PKCS#1 v1.5).
- 6
6. Curvas elípticas (ECC)
Por que ECC substitui RSA: chaves menores, mesma segurança. ECDSA, Ed25519, X25519. Ataques: nonce reuse no ECDSA (lattice → recupera chave privada).
- 7
7. TLS, JWT e protocolos reais
Handshake TLS 1.2 vs 1.3, perfect forward secrecy. JWT: alg=none, key confusion (HS256 com chave pública RSA), expiração ausente. JWS vs JWE.
- 8
8. Pós-quântico (visão geral)
Por que Shor quebra RSA/ECC quando QC chegar. Familiarize-se com Kyber (KEM), Dilithium (assinatura). NIST já padronizou. Não precisa virar especialista — só não ficar no escuro.
dicas de quem já passou pela trilha
- ★Nunca implemente cripto. Use libsodium / NaCl / cryptography (py). Implementação amadora = vulnerabilidade na hora.
- ★Padding oracle não morreu — cheque toda API que retorna erro diferente pra padding inválido vs MAC inválido.
- ★Em CTF: se viu hex de 32 chars → MD5; 40 → SHA-1; 64 → SHA-256. Aprenda comprimentos de cabeça.
- ★RSA com n pequeno (< 1024 bits): joga em factordb.com antes de qualquer outra coisa.
- ★ECDSA com nonce reuse vaza chave privada com 2 assinaturas. Aconteceu com PS3 e Sony perdeu o console.
ferramentas essenciais
livros recomendados
- ▸ Serious Cryptography (Aumasson) — leitura obrigatória
- ▸ Cryptography Engineering (Ferguson, Schneier, Kohno)
- ▸ A Graduate Course in Applied Cryptography (Boneh, Shoup) — grátis