← Voltar ao Material de Estudo
Intermediário · Aula 9

Criptografia: Conceitos Essenciais

⏱️ 25-30 minutos · 📚 Trilha Intermediária

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