Encriptação > Glossário > ChaCha20
O que é o ChaCha20?
O ChaCha20 ajuda a proteger os seus dados quando envia mensagens, armazena ficheiros ou navega de forma privada utilizando uma aplicação ou serviço.
Trata-se de um algoritmo de encriptação moderno concebido para manter a informação confidencial, mantendo-se rápido e eficiente numa vasta gama de dispositivos.
Saiba como funciona o ChaCha20, porque é que é importante na criptografia moderna e como se compara com o AES.

O que é o ChaCha20?
O ChaCha20 é uma cifra de chave simétrica de 256 bits de alta velocidade, leve e altamente segura utilizada para encriptar e desencriptar dados. Foi concebido por Daniel J. Bernstein como uma melhoria de uma cifra anterior chamada Salsa20. O objetivo era criar algo que fosse simultaneamente eficiente e seguro, especialmente em software.
Como funciona o ChaCha20
O ChaCha20 encripta dados gerando um fluxo de bytes pseudialeatórios seguros e combinando esse fluxo com a mensagem original. O resultado é uma saída encriptada que parece aleatória para qualquer pessoa sem a chave secreta.
Como utiliza a mesma chave para encriptar e desencriptar dados, o ChaCha20 é muito mais rápido do que o RSA, um algoritmo assimétrico que utiliza uma chave pública e uma chave privada. O RSA é útil para a troca de chaves e assinaturas, mas o ChaCha20 é melhor para encriptar grandes volumes de tráfego de internet.

A um nível geral, o ChaCha20 recebe três entradas: uma chave secreta, um nonce (um número utilizado uma única vez — um valor exclusivo utilizado para cada encriptação) e um contador (para ajudar a gerar diferentes blocos de saída). Utiliza estes valores para inicializar um estado interno, que é depois misturado repetidamente para gerar um fluxo de bytes pseudialeató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 rondas para baralhar minuciosamente os dados. O keystream resultante é então combinado com o texto simples para produzir o texto cifrado — os dados encriptados.
Porque é que o ChaCha20 é importante
O ChaCha20 resolve um problema prático na segurança moderna: como obter uma encriptação forte que seja simultaneamente eficiente e fiável em muitos dispositivos. É muito rápido em software, bom para telemóveis, pequenos dispositivos e CPUs mais antigas, e baseia-se em operações simples que os computadores realizam bem (adição, XOR, rotação).
Estas funcionalidades tornam-no atrativo em sistemas como TLS, VPNs(nova janela), SSH e aplicações de mensagens. Por exemplo, o ChaCha20 é utilizado pelo WireGuard®(nova janela) protocolo VPN(nova janela) para fornecer uma encriptação rápida e segura com um excelente desempenho, mesmo em dispositivos que não dispõem de hardware AES especializado.
ChaCha20 vs. AES
Eis como o ChaCha20 se compara ao AES:
Aspeto | ChaCha20 | AES |
|---|---|---|
Tipo de cifra | Cifra de fluxo | Cifra de bloco |
Operação básica | Somas/XORs/rotações em palavras de 32 bits | Substituição-permutação em blocos de 128 bits |
Tamanhos de chave padrão | 256 bits | 128, 192, 256 bits |
Desempenho em CPUs sem hardware especial | Geralmente muito rápido | Frequentemente mais lento do que o ChaCha20 |
Desempenho em CPUs com aceleração de hardware | Geralmente perde para o AES com extensões criptográficas AES-NI / ARM | Frequentemente extremamente rápido |
Modo autenticado típico | ChaCha20-Poly1305 | AES-GCM |
Casos de utilização comuns | TLS em dispositivos móveis/incorporados, criptografia apenas por software, WireGuard® | TLS, encriptação de disco, sistemas empresariais, encriptação assistida por hardware |
Melhor adequação | Portabilidade, velocidade de software consistente, implementação de software mais segura | Velocidade máxima em hardware moderno, ampla conformidade/suporte |
A encriptação AES é o padrão estabelecido há muito tempo e é extremamente rápida em processadores com suporte de hardware AES integrado. Devido a isso, tem um desempenho especialmente bom em muitos computadores de secretária, servidores e chips móveis mais recentes. No entanto, sem o suporte de hardware AES, o AES apenas por software pode ser mais lento e, por vezes, mais difícil de implementar de forma segura. Em contrapartida, o ChaCha20 foi concebido para ser muito rápido em software comum, porque utiliza operações simples como a adição, o XOR e a rotação, que funcionam de forma eficiente em quase todos os processadores.
Se uma aplicação oferecer tanto o AES como o ChaCha20, normalmente não precisa de escolher um manualmente, uma vez que a maioria das aplicações modernas seleciona a melhor opção automaticamente com base no seu dispositivo e processador. Geralmente, o AES tem um melhor desempenho em dispositivos mais recentes com suporte AES integrado, enquanto o ChaCha20 é uma escolha mais robusta em dispositivos onde a encriptação é processada principalmente em software, tais como alguns telemóveis, hardware de baixo consumo ou CPUs mais antigas.
O ChaCha20 é seguro?
O ChaCha20 é considerado seguro para os padrões modernos quando implementado corretamente e utilizado com um nonce exclusivo para cada encriptação.
Encriptação forte
O ChaCha20 utiliza 20 rondas de operações de adição-rotação-XOR e é considerado resistente a ataques práticos conhecidos.
Boa segurança de software
O seu design simples torna-o eficiente em software e pode reduzir alguns riscos de canal lateral observados em certas implementações de AES.
Amplamente implementado
O ChaCha20 é suportado pelos principais navegadores e utilizado em ligações HTTPS/TLS modernas, SSH e WireGuard®.
Geralmente emparelhado com o Poly1305
É frequentemente utilizado como ChaCha20-Poly1305, o que protege tanto a confidencialidade como a integridade das mensagens. O ChaCha20-Poly1305 é uma das principais opções de encriptação simétrica utilizadas 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 permaneça privado sem sacrificar a velocidade, quer esteja a navegar de forma privada, a transmitir conteúdos em streaming ou a utilizar Wi-Fi público em viagem.



