🚀 Capítulo 03: Princípios de Criptografia (Tema: O Jogo da Imitação)
NOTE
Este capítulo utiliza a temática de O Jogo da Imitação (Alan Turing) para explicar a Criptografia. Esconda suas mensagens atrás de códigos matemáticos para que o inimigo não consiga decifrá-las!
1. 🎯 Objetivo da Aula
Compreender os conceitos básicos de Criptografia, diferenciando Criptografia Simétrica de Assimétrica, e entender o papel das chaves públicas e privadas.
2. 🏢 O Cenário Prático (Seu Desafio)
Na Segunda Guerra Mundial, os alemães usavam a máquina Enigma para embaralhar suas mensagens de rádio.
- Qualquer um podia capturar as ondas de rádio e ouvir a mensagem, mas ela parecia apenas um monte de letras sem sentido (Texto Cifrado).
- Para ler a mensagem, você precisava saber a configuração exata da máquina naquele dia (A Chave).
- Alan Turing construiu o primeiro computador do mundo (Christopher) para tentar descobrir essa chave!
No desenvolvimento de software, nós usamos a criptografia para proteger os dados dos usuários (como senhas e números de cartão) contra hackers que capturem o tráfego da rede. Seu desafio é entender como trancar as mensagens!
🧠 Fundamentos: A Teoria Traduzida
Criptografia é a arte de escrever em código para que apenas o destinatário pretendido consiga ler.
🔑 1. Criptografia Simétrica (Chave Única):
- Como funciona: Usa a mesma chave para cifrar (trancar) e para decifrar (abrir) a mensagem.
- Analogia: Um baú com um cadeado comum. Quem tiver a cópia da chave física pode trancar e abrir.
- Problema: Como enviar a chave para a outra pessoa sem que o inimigo a intercepte no caminho?
- Algoritmo famoso: AES.
🔐 2. Criptografia Assimétrica (Chave Dupla):
- Como funciona: Usa um par de chaves matemáticas diferentes: uma Chave Pública e uma Chave Privada.
- Chave Pública: Você distribui para todo mundo. Ela serve apenas para trancar a mensagem.
- Chave Privada: Você guarda a sete chaves com você. Ela serve apenas para abrir o que foi trancado com a sua chave pública.
- Analogia: Uma caixa de correio na rua. Qualquer um pode colocar uma carta pela fenda (Chave Pública), mas só o carteiro tem a chave para abrir a portinha e pegar as cartas (Chave Privada).
- Algoritmo famoso: RSA.
4. 📖 Exemplo Guiado: A Cifra de César (JS)
O exemplo mais simples de criptografia simétrica da história é a Cifra de César (usada por Júlio César). Ela apenas desloca as letras do alfabeto um número fixo de vezes.
Se a chave for 3:
AviraDBviraECviraF
// Exemplo simples de Cifra de César
function cifrar(texto, chave) {
let resultado = "";
for (let i = 0; i < texto.length; i++) {
let codigo = texto.charCodeAt(i);
resultado += String.fromCharCode(codigo + chave);
}
return resultado;
}
const mensagemOriginal = "SOS";
const chaveSegreta = 3;
const mensagemCifrada = cifrar(mensagemOriginal, chaveSegreta);
console.log(`Original: ${mensagemOriginal}`); // SOS
console.log(`Cifrada: ${mensagemCifrada}`); // VRV5. 🛠️ Prática Obrigatória 1: Simétrica ou Assimétrica?
Diga qual tipo de criptografia (Simétrica ou Assimétrica) é mais adequado para cada situação:
- Você quer salvar arquivos de backup no seu próprio computador de forma segura (só você precisa abrir).
- Você quer enviar uma mensagem segura para um servidor na internet que você nunca viu antes e não tem como combinar uma chave secreta antes.
6. 🛠️ Prática Obrigatória 2: O Segredo da Chave Privada
Na criptografia assimétrica, o que acontece se você perder a sua Chave Privada? E o que acontece se o hacker conseguir roubar a sua Chave Privada?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 03 Seguranca) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
mod_12_desenvolvimento_seguro/
├── capitulos/
│ ├── capitulo_03_criptografia.md
│ └── codigos/
│ └── cap03/
│ └── cifra_cesar.js💡 Checkpoint de Lógica
A criptografia assimétrica é mais lenta que a simétrica. Por isso, na internet (como no protocolo HTTPS), usamos a criptografia assimétrica apenas para combinar uma chave simétrica rápida, e depois usamos essa chave rápida para o resto da conversa!
10. 🔥 Desafio de Fixação
Pesquise o que significa a sigla HTTPS e qual a diferença dele para o HTTP comum.
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Simétrica (É mais rápida e você não precisa compartilhar a chave com ninguém).
- Assimétrica (Você usa a chave pública do servidor para trancar a mensagem e só ele poderá abrir com a chave privada dele).