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
📝 Exercícios de Fixação
- Básico: Por que a criptografia simétrica é considerada "rápida" comparada à assimétrica?
- Básico: Cite o tamanho de chave mínimo e máximo suportado pelo AES.
- Intermediário: Por que o modo ECB nunca deve ser usado para cifrar imagens ou dados estruturados?
- Intermediário: O que é um IV (Vetor de Inicialização) e por que ele precisa ser diferente a cada cifragem?
- 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.
- Crie um arquivo
segredo.txtcom uma mensagem qualquer. - Cifre-o com AES-256 usando uma senha forte.
- Tente abrir o arquivo
.encgerado em um editor de texto comum — confirme que é ilegível. - Decifre o arquivo e confirme que o conteúdo original volta intacto.