Pular para conteúdo

Aula 04 – Criptografia Simétrica (AES e DES) 🔑

Nesta aula vamos mergulhar na criptografia simétrica: rápida, eficiente, e ainda hoje o padrão para cifrar grandes volumes de dados — de arquivos em disco a conexões HTTPS.


🔄 Como Funciona a Criptografia Simétrica

Na criptografia simétrica, a mesma chave é usada para cifrar e decifrar. É como um cadeado comum: quem tem a chave, abre e fecha.

graph LR
    A["Texto Claro"] -- "Cifra com Chave K" --> B["Texto Cifrado"]
    B -- "Decifra com a MESMA Chave K" --> C["Texto Claro"]

O Grande Desafio

Se as duas partes precisam da mesma chave, como transmitir essa chave com segurança sem que um invasor a intercepte? Esse é o "problema da distribuição de chaves" — resolvido pela criptografia assimétrica (Aula 05).


📜 DES: o Padrão Histórico

O DES (Data Encryption Standard) foi o padrão dominante entre 1977 e os anos 2000. Usa chaves de apenas 56 bits — hoje consideradas inseguras, quebráveis por força bruta em horas com hardware moderno.

Não use DES em produção

DES é hoje considerado criptograficamente quebrado. Ele existe no currículo só para contexto histórico. Seu sucessor, o 3DES (Triple DES), também está sendo aposentado em favor do AES.


🛡️ AES: o Padrão Atual

O AES (Advanced Encryption Standard) substituiu o DES em 2001 e é hoje o algoritmo simétrico mais usado no mundo — usado por governos, bancos, VPNs e no próprio HTTPS.

Característica AES
Tamanhos de chave 128, 192 ou 256 bits
Tipo de cifra Cifra de bloco (processa blocos de 128 bits por vez)
Status Considerado seguro até hoje (2026), sem quebra prática conhecida

🧱 Modos de Operação

Como o AES cifra blocos fixos de 128 bits, precisamos de um modo de operação para cifrar mensagens maiores que um bloco:

Modo Descrição Recomendação
ECB Cifra cada bloco de forma independente ❌ Nunca use — padrões repetidos vazam informação
CBC Cada bloco é combinado com o anterior antes de cifrar ✅ Comum, precisa de IV aleatório
GCM CBC + autenticação de integridade embutida ✅ Recomendado — o padrão do HTTPS moderno
graph TD
    A["ECB: mesmo bloco de entrada = mesmo bloco de saida"] -->|Padrao visivel| B["Vaza estrutura da imagem/dado"]
    C["CBC/GCM: cada bloco depende do anterior"] -->|Sem padrao| D["Saida parece aleatoria"]

💻 Cifrando com AES na Prática

$ # Cifrando um arquivo com AES-256 via OpenSSL $ openssl enc -aes-256-cbc -salt -in segredo.txt -out segredo.enc -pass pass:minhaChaveForte $ $ # Decifrando de volta $ openssl enc -d -aes-256-cbc -in segredo.enc -out segredo_decifrado.txt -pass pass:minhaChaveForte $ cat segredo_decifrado.txt

📝 Exercícios de Fixação

  1. Básico: Por que a criptografia simétrica é considerada "rápida" comparada à assimétrica?
  2. Básico: Cite o tamanho de chave mínimo e máximo suportado pelo AES.
  3. Intermediário: Por que o modo ECB nunca deve ser usado para cifrar imagens ou dados estruturados?
  4. Intermediário: O que é um IV (Vetor de Inicialização) e por que ele precisa ser diferente a cada cifragem?
  5. Desafio: Pesquise por que o modo GCM é considerado superior ao CBC puro em aplicações modernas.

🚀 Mini-Projeto: Cofre de Arquivos

Objetivo: Cifrar e decifrar um arquivo de texto usando AES via linha de comando (OpenSSL) ou uma biblioteca da sua linguagem preferida.

  1. Crie um arquivo segredo.txt com uma mensagem qualquer.
  2. Cifre-o com AES-256 usando uma senha forte.
  3. Tente abrir o arquivo .enc gerado em um editor de texto comum — confirme que é ilegível.
  4. Decifre o arquivo e confirme que o conteúdo original volta intacto.

Ir para Aula 05