🚀 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:

  • A vira D
  • B vira E
  • C vira F
// 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}`);   // VRV

5. 🛠️ 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:

  1. Você quer salvar arquivos de backup no seu próprio computador de forma segura (só você precisa abrir).
  2. 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)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 03 Seguranca) e clique em Commit to main.
  2. 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:

  1. Simétrica (É mais rápida e você não precisa compartilhar a chave com ninguém).
  2. Assimétrica (Você usa a chave pública do servidor para trancar a mensagem e só ele poderá abrir com a chave privada dele).

Capitulo Anterior | Proximo Capitulo