CyberGlossary

Criptografia

ChaCha20

Definição

Cifra de fluxo moderna desenhada por Daniel J. Bernstein, com chave de 256 bits e nonce de 96 bits, largamente implementada com o Poly1305 no AEAD ChaCha20-Poly1305.

O ChaCha20 é uma cifra de fluxo com 20 rondas desenhada por Daniel J. Bernstein em 2008 como evolução do Salsa20. Produz um fluxo de chave a partir de uma chave de 256 bits, um nonce de 96 bits e um contador de bloco de 32 bits, usando operações simples de soma, rotação e XOR sobre palavras de 32 bits, o que o torna rápido e em tempo constante em CPUs sem aceleração AES (móveis, embebidos). Em conjunto com o MAC Poly1305 forma o AEAD ChaCha20-Poly1305, normalizado no RFC 8439, uma das duas suítes obrigatórias do TLS 1.3 (a par do AES-GCM). É amplamente utilizado em TLS, QUIC, WireGuard, OpenSSH, protocolo Signal e na criptografia do kernel Linux. Após mais de uma década de criptanálise, não se conhece nenhum ataque à versão completa de 20 rondas.

Exemplos

  • O TLS 1.3 e o QUIC utilizam TLS_CHACHA20_POLY1305_SHA256 em dispositivos móveis.
  • O WireGuard cifra todos os seus pacotes de dados com ChaCha20-Poly1305.

Termos relacionados