Criptografia: Conceitos Essenciais
Criptografia é a base técnica por trás de praticamente toda proteção de dados moderna: HTTPS, apps de mensagem, senhas armazenadas, assinaturas digitais. Você não precisa saber implementar um algoritmo criptográfico — mas entender os conceitos certos evita decisões perigosas (como "inventar" seu próprio esquema de proteção).
🎯 O que você vai aprender
- A diferença entre criptografia simétrica e assimétrica
- O que é hashing e por que não é a mesma coisa que criptografia
- Como HTTPS combina os dois tipos de criptografia
- Assinaturas digitais e certificados
Criptografia simétrica
Usa a mesma chave para criptografar e descriptografar. É rápida e eficiente para grandes volumes de dados (ex: criptografar um disco inteiro), mas tem um problema logístico: como as duas partes trocam a chave secreta de forma segura antes de se comunicar? Exemplo de algoritmo amplamente usado: AES (Advanced Encryption Standard).
Criptografia assimétrica (chave pública)
Usa um par de chaves matematicamente relacionadas: uma pública (pode ser compartilhada com qualquer um) e uma privada (mantida em segredo). O que é criptografado com a chave pública só pode ser descriptografado com a chave privada correspondente, e vice-versa. Isso resolve o problema de troca de chaves da criptografia simétrica, mas é computacionalmente mais pesada. Exemplo de algoritmo: RSA.
Na prática, sistemas modernos combinam os dois: usam criptografia assimétrica só para negociar com segurança uma chave simétrica temporária, e depois usam essa chave simétrica (mais rápida) para o resto da comunicação. É exatamente assim que o HTTPS funciona.
Hashing: não é criptografia (e não deveria ser confundido com ela)
Um hash transforma qualquer entrada em uma saída de tamanho fixo, de forma que:
- É praticamente impossível reverter o hash de volta para a entrada original (é uma via de mão única — diferente de criptografia, que é feita para ser revertida com a chave certa).
- Qualquer mudança mínima na entrada gera um hash completamente diferente.
- A mesma entrada sempre gera o mesmo hash.
É por isso que senhas são armazenadas como hash, não criptografadas: o serviço nunca precisa "reverter" para ver sua senha original, só precisa gerar o hash do que você digitou no login e comparar com o hash salvo. Algoritmos modernos de hash de senha (como bcrypt, scrypt, Argon2) são propositalmente lentos, para dificultar tentativas de força bruta em massa.
Assinaturas digitais e certificados
Uma assinatura digital usa criptografia assimétrica ao contrário: você "assina" algo com sua chave privada, e qualquer pessoa pode verificar a assinatura com sua chave pública — provando que a mensagem veio realmente de você e não foi alterada no caminho.
Certificados digitais (usados no HTTPS) são como uma "carteira de identidade" que vincula uma chave pública a uma entidade (ex: um site), emitida e assinada por uma Autoridade Certificadora (CA) confiável. É por isso que seu navegador confia no certificado do seu banco: ele foi validado por uma CA reconhecida.
💡 Exemplo prático
Ao acessar um site HTTPS, seu navegador usa a chave pública do certificado do site (criptografia assimétrica) para negociar de forma segura uma chave simétrica temporária. A partir daí, toda a navegação usa essa chave simétrica — rápida o suficiente para não travar o carregamento da página, mas ainda assim protegida.
⚠️ Erro comum
"Criptografar" senhas em vez de fazer hash delas. Se um banco de dados de senhas criptografadas (reversíveis) vaza junto com a chave (o que acontece com frequência em invasões reais), todas as senhas ficam expostas em texto puro. Hash correto e com salt evita exatamente esse cenário.
✅ Pontos-chave
- Simétrica: uma chave, rápida, mas com desafio de troca segura de chave.
- Assimétrica: par de chaves pública/privada, resolve a troca, mas é mais lenta.
- Hashing é unidirecional — usado para verificar, não para recuperar dados originais.
- HTTPS combina os dois tipos de criptografia; certificados vinculam chave pública a identidade.
🔗 Para se aprofundar
- Criptografia — Wikipédia
- Função hash criptográfica — Wikipédia
- TryHackMesalas práticas de criptografia aplicada