0Pricing
Cryptology Academy · Aula

AEAD ChaCha20-Poly1305 no TLS 1.3

Veja o ChaCha20 implantado como uma cifra AEAD no TLS moderno.

AEAD ChaCha20-Poly1305 no TLS 1.3 é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 4 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-Poly1305 combina a cifra de fluxo ChaCha20 com o MAC Poly1305 para criar um conjunto de cifras AEAD seguro, usado em TLS 1.3, WireGuard e aplicativos móveis.

Visão geral do MAC Poly1305

Poly1305 é um MAC de uso único projetado por Bernstein. Ele autentica uma mensagem usando a avaliação de polinômios sobre o primo 2^130-5. De uso único: cada utilização exige uma chave nova de 32 bytes.

Segurança do Poly1305

Poly1305 oferece segurança de 128 bits se a chave nunca for reutilizada. A chave do MAC é derivada novamente para cada mensagem a partir do fluxo de chaves ChaCha20. A combinação é comprovadamente segura.

Construção do ChaCha20-Poly1305

1. Gere um fluxo de chaves de 64 bytes a partir do bloco 0 de ChaCha20 2. Os primeiros 32 bytes = chave do Poly1305 3. Os 32 bytes restantes são descartados 4. Criptografe o texto simples com os blocos 1,2,3,... de ChaCha20 5. Calcule o MAC Poly1305 sobre AAD + texto cifrado

Estrutura da RFC 8439

Formato da saída: texto cifrado || etiqueta (16 bytes) Entrada do MAC: AAD || preenchimento1 || texto cifrado || preenchimento2 || comprimento(AAD) || comprimento(texto cifrado) Preenchimento: complete com zeros até o alinhamento de 16 bytes. Os comprimentos são codificados como inteiros de 64 bits com os bytes menos significativos primeiro.

Conjuntos de cifras do TLS 1.3

Conjuntos de cifras obrigatórios do TLS 1.3: - TLS_AES_256_GCM_SHA384 - TLS_AES_128_GCM_SHA256 - TLS_CHACHA20_POLY1305_SHA256 CHACHA20_POLY1305 é preferido para clientes sem aceleração de hardware para AES.

WireGuard usa ChaCha20-Poly1305

WireGuard usa exclusivamente ChaCha20Poly1305 para toda a criptografia dos túneis. Não há negociação de cifras — apenas um algoritmo bem analisado. Essa simplicidade reduz drasticamente a superfície de ataque.

secretbox do libsodium

crypto_secretbox_easy() do libsodium usa XSalsa20-Poly1305 (variante com valor de uso único estendido): ciphertext = crypto_secretbox_easy(message, nonce, key) API de alto nível: funciona corretamente sem exigir escolhas de parâmetros.

Desempenho em dispositivos móveis

Dispositivos Android e iOS frequentemente não têm AES-NI. A análise do Google de 2014 mostrou que ChaCha20-Poly1305 era 3 vezes mais rápido que AES-GCM em ARM. Por isso, o Google tornou seu uso obrigatório no Android e no Chrome.

Implementação em Python

from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305 import os key = ChaCha20Poly1305.generate_key() nonce = os.urandom(12) aad = b'header_data' cipher = ChaCha20Poly1305(key) ct = cipher.encrypt(nonce, b'plaintext', aad) pt = cipher.decrypt(nonce, ct, aad)

Comparação: AES-GCM versus ChaCha20-Poly1305

AES-GCM: mais rápido com AES-NI, valor de uso único de 96 bits, falsificação da etiqueta GCM se o valor de uso único for reutilizado. ChaCha20-Poly1305: mais rápido sem hardware dedicado, valor de uso único de 96 bits, chave do Poly1305 nova para cada mensagem. Ambos são excelentes. Utilize AES-GCM em servidores e ChaCha20-Poly1305 em dispositivos móveis.

Verificação rápida

No ChaCha20-Poly1305, como a chave do Poly1305 é gerada?

Recapitulação

ChaCha20-Poly1305 é a opção AEAD otimizada para dispositivos móveis. Em seguida, estudaremos a troca de chaves Diffie-Hellman — como duas partes estabelecem um segredo compartilhado por um canal inseguro.

Perguntas Frequentes

A aula “AEAD ChaCha20-Poly1305 no TLS 1.3” é grátis?

Sim — o texto completo de “AEAD ChaCha20-Poly1305 no TLS 1.3” é 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 “AEAD ChaCha20-Poly1305 no TLS 1.3”?

Veja o ChaCha20 implantado como uma cifra AEAD no TLS moderno. 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 4 de 4.

Quanto tempo leva a aula “AEAD ChaCha20-Poly1305 no TLS 1.3”?

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