Algoritmos de criptografia
Entenda como funcionam os algoritmos que você pode testar no Nota Segura - BR, e quais deles protegem um segredo de verdade.
Criptografia
Protege o texto com uma chave. Só quem tem a chave certa consegue ler.
Hash
Gera uma impressão digital do texto. Não existe caminho de volta.
Codificação
Só muda o formato do texto. Qualquer pessoa consegue desfazer.
Criptografia, hash e codificação
Muita coisa parece embaralhada sem estar protegida. Para saber se um segredo está seguro, é preciso separar três ideias: criptografia, hash e codificação. As três transformam um texto, mas só a criptografia esconde o conteúdo de quem não tem a chave.
A criptografia usa uma chave para transformar o texto em algo ilegível, e a chave certa faz o caminho de volta. Na criptografia simétrica, como o AES, a mesma chave cifra e decifra. Na criptografia assimétrica, como o RSA, existem duas chaves: a chave pública cifra e só a chave privada decifra. Um hash, como o SHA-256, não tem chave nem caminho de volta: ele gera uma impressão digital que confirma se um texto mudou. Uma codificação, como o Base64, só muda o formato dos dados para transportá-los, e qualquer pessoa desfaz.
Outros algoritmos não escondem o texto, mas resolvem problemas vizinhos. Um código de autenticação, como o HMAC, prova que a mensagem veio de quem tem a chave secreta e que não mudou. Uma assinatura digital, como o ECDSA ou o Ed25519, faz o mesmo com duas chaves: só a chave privada assina, e qualquer pessoa confere com a chave pública. A troca de chaves, como o ECDH, permite que duas pessoas combinem uma chave secreta pela internet sem enviá-la. E a derivação de chave, como o PBKDF2, transforma uma senha em uma chave forte.
As cifras clássicas, como a de César e a de Vigenère, foram a criptografia de outras épocas. O ROT13 e a cifra Atbash nem usam chave: qualquer pessoa desfaz. Nas outras, a matemática e os computadores de hoje descobrem a chave com facilidade. A exceção é a cifra de Vernam: com uma chave aleatória, do tamanho do texto e usada uma única vez, ela não pode ser quebrada. As demais servem para aprender, não para proteger.
O Nota Segura - BR protege cada nota com o AES-256-GCM, um padrão moderno que também protege o HTTPS. Abaixo, cada algoritmo tem uma página com o funcionamento, um exemplo, os usos e os cuidados, e você pode testá-lo no próprio navegador.
Os algoritmos
Criptografia
AES-256-GCM
SeguroCriptografia simétrica
Padrão moderno de criptografia simétrica: a mesma chave cifra e decifra. O modo GCM também detecta se o texto cifrado foi alterado. É o algoritmo que o Nota Segura - BR usa para proteger as notas.
ChaCha20-Poly1305
SeguroCriptografia simétrica
Cifra moderna de fluxo com autenticação, criada para ser rápida mesmo sem aceleração de hardware. Como o AES-GCM, detecta se o texto cifrado foi alterado. É usada no TLS 1.3, no WireGuard e no SSH.
AES-256-CBC
SeguroCriptografia simétrica
Usa o mesmo AES, mas encadeia os blocos com um vetor de inicialização (IV). Ainda é seguro quando bem usado, mas sozinho não detecta alterações no texto cifrado.
AES-256-CTR
SeguroCriptografia simétrica
Transforma o AES em uma cifra de fluxo: cifra um contador e combina o resultado com o texto. O resultado tem o mesmo tamanho do texto, mas o modo não detecta alterações.
RSA-OAEP
SeguroCriptografia assimétrica
Criptografia assimétrica: a chave pública cifra e só a chave privada decifra. É usada para proteger chaves curtas, como uma chave AES, e só cifra textos curtos. Para assinar dados, o RSA usa outro preenchimento, o PSS.
Hash
SHA-256
Não é criptografiaHash
Gera uma impressão digital de tamanho fixo do texto. O mesmo texto sempre gera o mesmo hash, mas não é possível voltar ao texto original.
SHA-512
Não é criptografiaHash
Hash da mesma família do SHA-256, com resultado de 512 bits. É usado em assinaturas Ed25519 e em hashes de senhas do Linux. Como todo hash, não pode ser desfeito.
SHA-1
InseguroHash
Hash de 160 bits muito usado no passado. Em 2017, pesquisadores criaram dois arquivos diferentes com o mesmo SHA-1, e ele deixou de ser seguro.
MD5
InseguroHash
Hash de 128 bits dos anos 1990. Hoje é fácil criar dois textos com o mesmo MD5, então ele não serve para segurança, só para detectar erros de cópia.
Autenticação e assinatura
HMAC-SHA-256
SeguroAutenticação de mensagem
Combina uma chave secreta com o SHA-256 para gerar um código de autenticação. Quem tem a chave confere se a mensagem veio de quem também tem a chave e se não mudou.
ECDSA
SeguroAssinatura digital
Assinatura digital com curvas elípticas: a chave privada assina e a chave pública confere. É usada em certificados HTTPS, em passkeys e no Bitcoin.
Ed25519
SeguroAssinatura digital
Assinatura digital moderna em curvas de Edwards, rápida e com chaves de 32 bytes. Não depende de um número aleatório a cada assinatura, o que evita um erro comum do ECDSA.
RSA-PSS
SeguroAssinatura digital
Assinatura digital com RSA e um preenchimento aleatório. É o formato que o TLS 1.3 exige para assinaturas RSA.
Troca e derivação de chaves
ECDH
SeguroTroca de chaves
Troca de chaves Diffie-Hellman com curvas elípticas. Ana e Beto trocam apenas chaves públicas e chegam ao mesmo segredo, que vira uma chave AES.
PBKDF2
SeguroDerivação de chave
Transforma uma senha em uma chave, repetindo o HMAC centenas de milhares de vezes com um sal. Isso torna cada tentativa de adivinhar a senha mais lenta.
Codificação
Base64
Não é criptografiaCodificação
Transforma bytes em letras e números para transporte. Não usa chave: qualquer pessoa desfaz a codificação, então não protege nada.
Hexadecimal
Não é criptografiaCodificação
Escreve cada byte com dois símbolos de 0 a 9 e de a até f. É muito usado para mostrar hashes e chaves. Não usa chave, então não protege nada.
Cifras clássicas
Cifra de César
InseguroCifra clássica
Desloca cada letra um número fixo de posições no alfabeto. Usada na Roma antiga, é quebrada em segundos testando os 25 deslocamentos.
ROT13
InseguroCifra clássica
É a Cifra de César com deslocamento 13. Como o alfabeto tem 26 letras, aplicar o ROT13 duas vezes devolve o texto original.
Cifra Atbash
InseguroCifra clássica
Troca a primeira letra do alfabeto pela última, a segunda pela penúltima, e assim por diante. Vem do alfabeto hebraico e não tem chave.
Cifra de Vigenère
InseguroCifra clássica
Usa uma palavra-chave para deslocar cada letra de forma diferente. Resistiu por séculos, mas hoje é quebrada facilmente com análise de frequência.
Cifra de Playfair
InseguroCifra clássica
Cifra pares de letras com uma grade de 5 por 5 montada a partir de uma palavra-chave. Foi usada por militares britânicos, mas cai com a análise de frequência dos pares.
Cerca de trilho
InseguroCifra clássica
Não troca nenhuma letra: escreve o texto em zigue-zague em alguns trilhos e lê trilho por trilho. É uma cifra de transposição, fácil de quebrar testando poucos números de trilhos.
Máquina Enigma
InseguroCifra clássica
Máquina alemã da Segunda Guerra Mundial, com rotores que mudam a substituição a cada letra. Foi quebrada por matemáticos poloneses e britânicos, entre eles Alan Turing.
Cifra de Vernam
SeguroCifra clássica
Combina o texto com uma chave aleatória do mesmo tamanho, usada uma única vez. Bem usada, é impossível de quebrar, mas é difícil entregar uma chave tão grande ao destinatário.
Guias e comparações
Quer comparar algoritmos ou saber o que fazer na prática? Os guias explicam qual algoritmo escolher e como proteger senhas e mensagens.