0Pricing
Cryptology Academy · Aula

Projeto do Salsa20 e do ChaCha20

Acompanhe o quarter-round do ChaCha20 e sua velocidade em hardware móvel.

Projeto do Salsa20 e do ChaCha20 é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Boas-vindas

ChaCha20 é a cifra de fluxo predominante nos sistemas modernos — usada no TLS 1.3, WireGuard, Signal e muitos outros. Vamos analisar seu design elegante em detalhes.

Origens do ChaCha20

Daniel J. Bernstein projetou o Salsa20 em 2005 e depois o aprimorou para criar o ChaCha20 em 2008. O prefixo 'Cha' indica 8 melhorias adicionais de difusão. Padronizado na RFC 7539 (2015) e na RFC 8439 (2018).

Estado do ChaCha20

ChaCha20 opera sobre uma matriz 4×4 de palavras de 32 bits (512 bits no total): - Palavras 0–3: constantes ('expa', 'nd 3', '2-by', 'te k') - Palavras 4–11: chave de 256 bits (8 palavras) - Palavra 12: contador de blocos de 32 bits - Palavras 13–15: valor único de 96 bits

A rodada de quarto

A operação central do ChaCha20 — a rodada de quarto sobre (a,b,c,d): a+=b; d^=a; d<<<= 16 c+=d; b^=c; b<<<= 12 a+=b; d^=a; d<<<= 8 c+=d; b^=c; b<<<= 7 Adicionar-Rotacionar-XOR (ARX). Não são necessárias caixas S — rápido em todo tipo de hardware.

20 rodadas

ChaCha20 aplica 20 rodadas: rodadas alternadas de colunas e diagonais, com 4 rodadas de quarto cada uma. 8 rodadas = ChaCha8 (rápido), 12 rodadas = ChaCha12 (equilibrado). ChaCha20 é o padrão seguro.

Geração do fluxo de chaves

1. Inicialize o estado a partir da chave + valor único + contador 2. Aplique 20 rodadas de rodadas de quarto 3. Some o estado inicial ao estado rotacionado (impede a reversão) 4. Produza um bloco de 64 bytes do fluxo de chaves 5. Incremente o contador para o próximo bloco

Benefícios de segurança do ARX

Cifras ARX (Adicionar, Rotacionar, XOR) naturalmente operam em tempo constante na maioria das CPUs. A ausência de consultas a tabelas impede canais laterais de temporização de cache. Isso é fundamental para implementações seguras.

Desempenho do ChaCha20

Sem AES-NI: ChaCha20 é aproximadamente 3 vezes mais rápido que AES-CBC. Em celulares (ARM Cortex-A): ChaCha20 é a opção mais rápida. Com AES-NI (x86 moderno): AES-GCM é mais rápido. O TLS 1.3 inclui ambos.

Salsa20 versus ChaCha20

ChaCha20 aprimora o Salsa20 com melhor difusão nas rodadas iniciais — maior resistência à criptoanálise diferencial. A inicialização do estado é diferente. Ambos são seguros; ChaCha20 é o padrão atual.

ChaCha20 em Python

from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305 import os key = ChaCha20Poly1305.generate_key() nonce = os.urandom(12) ct = ChaCha20Poly1305(key).encrypt(nonce, b'hello', None)

XChaCha20: Valor de uso único estendido

ChaCha20 usa um valor de uso único de 96 bits. XChaCha20 estende esse valor para 192 bits usando a função HChaCha20. Valores de uso único maiores permitem uma geração aleatória sem preocupações com colisões. libsodium usa XChaCha20-Poly1305.

Verificação rápida

Por que o design ARX de ChaCha20 elimina canais laterais baseados no tempo de acesso ao cache?

Recapitulação

ChaCha20 é elegante e seguro. Em seguida, veremos sua implementação no TLS 1.3 como o conjunto de cifras AEAD ChaCha20-Poly1305.

Perguntas Frequentes

A aula “Projeto do Salsa20 e do ChaCha20” é grátis?

Sim — o texto completo de “Projeto do Salsa20 e do ChaCha20” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “Projeto do Salsa20 e do ChaCha20”?

Acompanhe o quarter-round do ChaCha20 e sua velocidade em hardware móvel. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Projeto do Salsa20 e do ChaCha20”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Conceitos de cifras de fluxo e PRNG
  2. RC4: projeto, fragilidades e ataques ao WEP
  3. Projeto do Salsa20 e do ChaCha20
  4. AEAD ChaCha20-Poly1305 no TLS 1.3
← Voltar para Cryptology Academy