Bancada

Simuladores de criptografia

Oito máquinas que você opera. Nada aqui é foto de coisa nenhuma, é a coisa mesmo, rodando o algoritmo de verdade no seu navegador.

01

Enigma

Três rotores que andam uma casa a cada tecla, com a fiação original e o duplo passo do rotor do meio. Digita o mesmo texto com os rotores de volta em AAA e a mensagem volta.

Scherbius patenteou a máquina em 1918 pra vender a banco, e acabou virando o coração da comunicação militar alemã na Segunda Guerra. Cada rotor é um alfabeto embaralhado; eles andam a cada tecla, então a mesma letra digitada duas vezes seguidas sai diferente das duas vezes.

O que quebrou a Enigma não foi força bruta, foi um defeito de projeto: o refletor garante que nenhuma letra jamais vire ela mesma. Isso parece detalhe, mas foi o fio que Bletchley Park puxou pra derrubar o resto, com Turing e as máquinas Bomba do outro lado.

Uma curiosidade que quase toda simulação da internet erra: o rotor do meio às vezes anda duas vezes seguidas, o chamado duplo passo. Aqui ele está implementado, junto com a fiação original dos rotores I, II e III e do refletor B.

Digita alguma coisa, anota o que saiu, clica em voltar os rotores e digita o que saiu. A mensagem original reaparece. Essa reciprocidade é o que permitia o operador do outro lado ler sem fazer nada diferente.

Rotores

AI
AII
HIII

Sai da máquina

JIEMETM

ABCDEFGHIJKLMNOPQRSTUVWXYZ
rotores em AAH
02

Quebrador de César

Cola um texto cifrado com César. Ele conta quantas vezes cada letra aparece, desenha as barras e acha o deslocamento sozinho, comparando com a frequência das letras no português de verdade.

A ideia é do século IX, do árabe Al-Kindi: em qualquer idioma, algumas letras aparecem muito mais que outras. Em português, A e E juntas são mais de um quarto de todo texto. Cifra que só troca cada letra por outra fixa não esconde essa assinatura, só a desloca.

O que roda aqui é qui-quadrado. Pra cada um dos 26 deslocamentos possíveis, ele compara a frequência do texto com a frequência real do português e escolhe o que erra menos. Não é tentativa e erro, é estatística, e por isso é instantâneo.

É por isso que César, Vigenère e as outras estão marcadas como inseguras na prateleira. Elas não caem por falta de esforço de quem inventou, caem porque a linguagem humana tem padrão demais.

Cola qualquer texto cifrado com César no campo. Quanto mais longo, mais certeira fica a estatística: abaixo de umas doze letras ele avisa que não dá pra concluir nada.

Frequência das letras

abcdefghijklmnopqrstuvwxyz

Deslocamento encontrado: 3
A mensagem secreta esta escondida neste texto cifrado com cesar

03

Avalanche do hash

Os 256 bits do hash desenhados como quadrados. Muda uma letra e cerca de metade vira, marcados em vermelho. É por isso que hash consegue provar que um arquivo chegou inteiro.

Cada quadradinho é um bit do resultado. Preto é um, claro é zero. Muda uma vírgula do texto e cerca de metade deles vira, sem nenhum padrão que ligue a mudança de entrada à mudança de saída. Isso chama efeito avalanche, e é exigência de projeto, não acaso.

É essa propriedade que faz hash servir pra provar integridade. Se uma alteração minúscula gerasse um resultado parecido, dava pra ir chegando perto do arquivo original por aproximação. Como não gera, a única forma de bater a impressão é ter exatamente o mesmo arquivo.

Quando duas entradas diferentes dão a mesma saída, isso chama colisão, e significa que o algoritmo morreu. Foi o que aconteceu com o SHA-1 em 2017, quando o Google publicou dois PDFs diferentes com a mesma impressão digital.

Digita uma frase, olha o desenho, e depois troca uma letra só. Compara os dois. O contador embaixo diz quantos dos 256 bits mudaram.

Muda uma letra só e olha quantos quadrados viram.

256 bits do hash

Agora muda uma letra ali em cima.

Hash em hexadecimal

04

O cofre lacrado

Uma mensagem de verdade, lacrada com AES-256-GCM na hora que esta página carregou. A senha não está escrita em lugar nenhum do código, só a pista está.

Essa mensagem foi criptografada com AES-256-GCM no instante em que a página carregou, com sal aleatório e chave derivada por PBKDF2. Não existe comparação de senha em lugar nenhum do código: quem decide se abre é o próprio algoritmo conseguindo ou não autenticar o conteúdo.

Isso quer dizer que abrir o código fonte não adianta. Você vai achar o texto criptografado e a pista, nunca a senha, porque ela não está escrita em lugar nenhum. É a mesma garantia que o site inteiro oferece, só que aqui dá pra testar em trinta segundos.

A ideia veio de CTF, aquelas competições de segurança onde o desafio é achar uma informação escondida. Um cofre desses num portfólio faz a pessoa parar, procurar e voltar, que é bem mais do que um site normal consegue.

A pista aponta pro ano do disco de Alberti, que está escrito na seção do disco lá na home. Erra de propósito primeiro, pra ver o lacre tremer sem abrir.

Lacrado com AES-256-GCM. Precisa da senha.

Pista: o ano em que Alberti desenhou o primeiro disco de cifra. Está escrito na seção do disco, lá na home.

05

Combinar uma chave sem nunca enviar a chave.

Duas pessoas que nunca se falaram antes conseguem chegar no mesmo número secreto trocando mensagens na frente de todo mundo. Quem estiver escutando vê os dois números que passaram e mesmo assim não consegue calcular o resultado.

Cada uma escolhe um número e guarda pra si. Depois cada uma faz uma conta com o número público, e manda o resultado dessa conta pra outra. Aí cada uma refaz a conta usando o que recebeu e o próprio segredo, e as duas caem exatamente no mesmo valor.

A graça é que a conta é fácil de fazer num sentido e absurdamente cara de desfazer. Quem intercepta tem os dois números públicos e continua sem os segredos, que é o que faltaria pra chegar no valor final.

Aqui os números são minúsculos pra caber na tela. Na vida real são centenas de dígitos, e é isso que separa "difícil" de "impossível na prática". É essa conta que roda toda vez que você abre um site em HTTPS.

Mexe nos dois seletores e repara: os números que passam pelo meio mudam, mas o valor final continua igual dos dois lados.

todo mundo sabe: 5 e 23

Ana

manda8

chega em 2

8→←19

quem escuta vê só isso

Bruno

manda19

chega em 2

os dois chegaram no mesmo número, e ele nunca passou pelo meio

06

Por que o GCM ganhou.

AES é o mesmo nos dois casos. O que muda é o modo, que é a regra de como o AES é aplicado ao arquivo inteiro. E essa escolha decide se alguém consegue alterar o seu arquivo cifrado sem você perceber.

No CBC o arquivo é embaralhado e pronto. Ninguém lê sem a chave, mas também ninguém garante que aquilo chegou inteiro. Alguém no caminho pode virar um bit e o resultado vai abrir do mesmo jeito, com o conteúdo alterado.

No GCM, além de embaralhar, o AES calcula um carimbo em cima do que foi cifrado. Na hora de abrir, o carimbo é conferido primeiro. Bateu, abre. Não bateu, recusa e não entrega nada, nem uma parte.

É por isso que o site inteiro usa GCM e o CBC só aparece aqui, como demonstração. Confidencialidade sem integridade dá uma falsa sensação de segurança: o arquivo continua secreto e ao mesmo tempo continua adulterável.

Arrasta pra escolher qual byte do arquivo cifrado vai ser mexido, e compara os dois lados.

a mensagem originaltransferir 100 reais para a conta 4417

AES-CBC

saiu ilegível

aceitou calado e entregou outra coisa

AES-GCM

percebeu e recusou

07

Gira o anel você mesmo.

Esse é o disco do Alberti. Arrasta o anel de dentro, ou usa as setas. A posição em que você deixar vira a chave, e o texto aqui embaixo é convertido na hora com ela. Volta o anel pro mesmo lugar e a mensagem volta.

Alberti desenhou isso em 1467 e mudou a criptografia de vez. Antes dele, uma cifra trocava cada letra por outra fixa, e a análise de frequência derrubava tudo. Com dois anéis que giram, o mesmo A pode virar letras diferentes ao longo da mensagem.

A posição em que você deixa o anel é a chave. Quem receber precisa saber essa posição pra girar até o mesmo lugar e ler. É a primeira aparição da ideia de chave separada do método, três séculos antes de alguém escrever isso como princípio.

O AES faz a mesma coisa que este disco, só que com 256 bits no lugar de 26 posições, e trocando a tabela a cada bloco em vez de a cada letra.

Arrasta o anel de dentro ou usa as setas. O texto embaixo converte na hora. Volta pro mesmo deslocamento e a mensagem original reaparece.

ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ
A → HDeslocamento: 7

No disco

hahxbl hv hthuoljly

08

Quatro mil anos

De um escriba trocando hieróglifos até os padrões pós-quânticos. Arrasta pro lado.

São quatro mil anos em dezesseis paradas, de um escriba egípcio trocando hieróglifos de propósito até os padrões pós-quânticos publicados em 2024. Arrasta pro lado com o mouse ou com o dedo.

Lendo de ponta a ponta aparece um padrão incômodo: toda cifra considerada impossível na época dela acabou caindo. Vigenère aguentou três séculos e caiu. A Enigma era orgulho nacional e caiu. O SHA-1 sustentou a web por vinte anos e caiu.

A outra coisa que a linha mostra é a virada de 1883, quando Kerckhoffs escreveu que a segurança tem que estar na chave e não no segredo do método. É por isso que este site publica exatamente como cada coisa funciona: se esconder o algoritmo fosse necessário, o algoritmo já seria ruim.

Cada marco tem um lacre de cera numerado. Os quatro últimos são os que mais importam pra hoje: RSA, AES, a queda do SHA-1 e o pós-quântico.

11900 a.C.

Um escriba egípcio troca hieróglifos de propósito num túmulo. O primeiro registro que existe.

2600 a.C.

Atbash. Escribas hebreus invertem o alfabeto, e a cifra aparece no Livro de Jeremias.

3150 a.C.

Políbio monta o quadrado de cinco por cinco pra mandar mensagem com tochas.

450 a.C.

César desloca três casas pra escrever às legiões.

51467

Alberti desenha o disco de cifra. Nasce a troca de alfabeto no meio da mensagem.

61553

Bellaso publica a cifra que o mundo acabaria chamando de Vigenère.

71854

Playfair leva ao governo britânico a primeira cifra que trabalha com pares de letras.

81863

Kasiski publica como quebrar Vigenère. Três séculos de fama caem.

91918

Scherbius patenteia a Enigma.

101941

Bletchley Park lê o tráfego alemão. Turing e a Bomba.

111977

DES vira padrão federal americano.

121977

RSA. Pela primeira vez dá pra trocar segredo sem combinar chave antes.

131991

Zimmermann solta o PGP e a criptografia forte vaza pras pessoas comuns.

142001

Rijndael vence o concurso e vira AES, que é o que este site usa.

152017

Google produz dois arquivos com o mesmo SHA-1. O algoritmo se aposenta.

162024

NIST publica os primeiros padrões pós-quânticos.

arrasta pro lado