Página inicial da Proton

O que é ChaCha20?

O ChaCha20 ajuda a proteger os seus dados quando você envia mensagens, armazena arquivos ou navega de forma privada usando um aplicativo ou serviço.

Ele é um algoritmo de criptografia moderno projetado para manter as informações confidenciais, mantendo-se rápido e eficiente em uma ampla variedade de dispositivos.

Saiba como o ChaCha20 funciona, por que ele é importante na criptografia moderna e como ele se compara ao AES.

O que é ChaCha20?

O ChaCha20 é uma cifra de chave simétrica de 256 bits altamente segura, leve e de alta velocidade, usada para criptografar e descriptografar dados. Ele foi projetado por Daniel J. Bernstein como uma melhoria de uma cifra anterior chamada Salsa20. O objetivo era criar algo que fosse eficiente e seguro, especialmente em software.

Como o ChaCha20 funciona

O ChaCha20 criptografa dados gerando um fluxo de bytes pseudoaleatórios seguros e combinando esse fluxo com a mensagem original. O resultado é uma saída criptografada que parece aleatória para qualquer pessoa que não tenha a chave secreta.

Como usa a mesma chave para criptografar e descriptografar dados, o ChaCha20 é muito mais rápido que o RSA, um algoritmo assimétrico que usa uma chave pública e uma chave privada. O RSA é útil para troca de chaves e assinaturas, mas o ChaCha20 é melhor para criptografar grandes volumes de tráfego de internet.

Em linhas gerais, o ChaCha20 recebe três entradas: uma chave secreta, um nonce (um número usado uma única vez — um valor exclusivo usado para cada criptografia) e um contador (para ajudar a gerar blocos de saída diferentes). Ele usa esses valores para inicializar um estado interno, que é então misturado repetidamente para gerar um fluxo de bytes pseudoaleatórios seguros conhecido como keystream.

Esse processo de mistura baseia-se em três operações simples — adição, XOR e rotação de bits — aplicadas ao longo de 20 rodadas para embaralhar completamente os dados. O keystream resultante é então combinado com o texto simples para produzir o texto cifrado — os dados criptografados.

Por que o ChaCha20 é importante

O ChaCha20 resolve um problema prático na segurança moderna: como obter uma criptografia forte que seja eficiente e confiável em muitos dispositivos. Ele é muito rápido em software, bom em celulares, dispositivos pequenos e CPUs mais antigas, e baseado em operações simples que os computadores realizam muito bem (adição, XOR, rotação).

Esses recursos o tornam atraente em sistemas como TLS, VPNs(nova janela), SSH e aplicativos de mensagens. Por exemplo, o ChaCha20 é usado pelo WireGuard®(nova janela), um protocolo VPN(nova janela), para fornecer criptografia rápida e segura com forte desempenho, mesmo em dispositivos que não possuem hardware AES especializado.

ChaCha20 vs. AES

Veja como o ChaCha20 se compara ao AES:

ChaCha20 vs. AES

Aspecto

ChaCha20

AES

Tipo de cifra

Cifra de fluxo

Cifra de bloco

Operação básica

Adições/XORs/rotações em palavras de 32 bits

Substituição-permutação em blocos de 128 bits

Tamanhos padrão de chave

256 bits

128, 192, 256 bits

Desempenho em CPUs sem hardware especial

Geralmente muito rápido

Muitas vezes mais lento que o ChaCha20

Desempenho em CPUs com aceleração de hardware

Geralmente perde para o AES com extensões criptográficas AES-NI / ARM

Muitas vezes extremamente rápido

Modo autenticado típico

ChaCha20-Poly1305

AES-GCM

Casos de uso comuns

TLS em dispositivos móveis/incorporados, criptografia apenas em software, WireGuard®

TLS, criptografia de disco, sistemas empresariais, criptografia baseada em hardware

Melhor adequação

Portabilidade, velocidade de software consistente, implementação de software mais segura

Velocidade máxima em hardwares modernos, ampla conformidade/suporte

A criptografia AES é o padrão estabelecido há muito tempo e é extremamente rápida em processadores com suporte integrado de hardware para AES. Por conta disso, ela apresenta um desempenho especialmente bom em muitos desktops, servidores e chips móveis mais novos. No entanto, sem suporte de hardware para AES, o AES executado apenas por software pode ser mais lento e, às vezes, mais difícil de implementar com segurança. Em contrapartida, o ChaCha20 foi projetado para ser muito rápido em softwares comuns porque usa operações simples como adição, XOR e rotação, que funcionam de maneira eficiente em quase qualquer processador.

Se um aplicativo oferecer tanto AES quanto ChaCha20, geralmente você não precisa escolher um manualmente, já que a maioria dos aplicativos modernos seleciona a melhor opção de forma automática com base no seu dispositivo e processador. Em geral, o AES apresenta o melhor desempenho em dispositivos mais novos com suporte integrado para AES, enquanto o ChaCha20 é uma opção mais forte em dispositivos nos quais a criptografia é processada principalmente em software, como em alguns celulares, hardwares de baixo consumo de energia ou CPUs mais antigas.

O ChaCha20 é seguro?

O ChaCha20 é considerado seguro para os padrões modernos quando implementado corretamente e usado com um nonce exclusivo para cada criptografia.

Criptografia forte

O ChaCha20 usa 20 rodadas de operações de adição, rotação e XOR, sendo considerado resistente a ataques práticos conhecidos.

Boa segurança de software

Seu design simples o torna eficiente em software e pode reduzir alguns riscos de canal lateral observados em certas implementações do AES.

Amplamente implantado

O ChaCha20 é compatível com os principais navegadores e usado em conexões modernas de HTTPS/TLS, além de SSH e WireGuard®.

Geralmente combinado com o Poly1305

Ele é frequentemente usado como ChaCha20-Poly1305, o que protege tanto a confidencialidade quanto a integridade da mensagem. O ChaCha20-Poly1305 é uma das principais opções de criptografia simétrica usadas no TLS 1.3.

Proton VPN e ChaCha20

Com o protocolo WireGuard®(nova janela) do Proton VPN, o ChaCha20-Poly1305 ajuda a proteger o túnel VPN para que o seu tráfego de internet continue privado sem sacrificar a velocidade, quer você esteja navegando de forma privada, fazendo streaming de conteúdo ou usando uma rede Wi-Fi pública na rua.

Saiba mais sobre criptografia