Saltar para o conteúdo
00 Criptografia

XChaCha20-Poly1305

RFC 8439 — cifra autenticada com nonce de 192 bits.

01 Overview

Porquê uma cifra simétrica para tudo.

01

Cifras simétricas são rápidas

A cifragem simétrica autenticada corre a gigabytes por segundo num CPU moderno, ordens de grandeza mais rápida do que operações de chave pública. Usar primitivas simétricas para dados reais é a única escolha prática à escala.

02

O impacto quântico é limitado

O algoritmo de Grover dá aos computadores quânticos uma aceleração de raiz quadrada contra cifras simétricas. Uma chave de 256 bits mantém 128 bits de segurança efetiva contra um atacante quântico — muito além de qualquer capacidade plausível de força bruta.

03

XChaCha20 é uma cifra de fluxo moderna

ChaCha20 é uma cifra de fluxo desenhada por Daniel J. Bernstein em 2008, escolhida pela sua simplicidade, desempenho e resistência a ataques de canal lateral. É amplamente usada: TLS 1.3, WireGuard, OpenSSH.

02 Details

Como o XChaCha20-Poly1305 funciona na UltimaOS.

Cargas úteis envelopadas na UltimaOS — mensagens de chat, correio, ficheiros, notas, tarefas, documentos e folhas de cálculo — são cifradas com XChaCha20-Poly1305 usando uma chave simétrica de 256 bits derivada da sessão ML-KEM-768. Eventos de calendário e histórico de conversas de IA estão fora desse envelope hoje.

01

Chaves de sessão de 256 bits

Cada conversa, partilha de ficheiros ou chamada usa uma nova chave simétrica de 256 bits, derivada do encapsulamento ML-KEM-768. Não há chave simétrica de longo prazo no servidor.

02

Nonces aleatórios de 192 bits

O nonce de 192 bits (24 bytes) do XChaCha20 é suficientemente grande para que nonces aleatórios possam ser usados com segurança — a probabilidade de colisão permanece negligenciável mesmo após 2^64 mensagens com a mesma chave.

03

Autenticação Poly1305

Poly1305 calcula um autenticador de 16 bytes sobre o texto cifrado e quaisquer dados associados. Alterar o texto cifrado ou os cabeçalhos invalida a etiqueta, e o cliente recetor recusa-se a decifrar.

04

Transmissão de ficheiros

Os ficheiros são divididos em blocos, cada um com o seu próprio nonce e etiqueta Poly1305. Os blocos podem ser verificados e decifrados em qualquer ordem, permitindo a transferência em fluxo sem esperar pelo ficheiro completo.

03 Key points

Considerações práticas.

  1. 01

    A aceleração por hardware está em todo o lado

    CPUs modernos da Intel, AMD e ARM incluem todos AES-NI ou instruções vetoriais equivalentes. ChaCha20 é a cifra escolhida para sistemas sem AES por hardware (dispositivos móveis) ou para resistência a canais laterais.

  2. 02

    Sem reutilização de nonce

    A geração de nonces usa um contador por mensagem combinado com o prefixo aleatório do nonce. Com nonces de 192 bits, a reutilização é estatisticamente impossível mesmo após milhares de milhões de mensagens por sessão.

  3. 03

    Implementação em tempo constante

    As implementações de referência do ChaCha20 são de tempo constante, eliminando a fuga de material de chave por canais laterais através de análise de tempo ou de cache.

  4. 04

    Auditorias de bibliotecas

    As primitivas criptográficas vêm de @noble — implementações auditadas, amplamente usadas, em TypeScript puro, revistas pela comunidade criptográfica — a correr no cliente que pode inspecionar. Qualquer pessoa é livre de auditar o nosso uso delas.

04b References

Standards and references.

05 Frequently asked

Perguntas sobre XChaCha20-Poly1305.

O que é XChaCha20-Poly1305?

Short answer

XChaCha20-Poly1305 é uma cifra de autenticação com dados associados (AEAD). Combina a cifra de fluxo XChaCha20 (variante de nonce de 24 bytes do ChaCha20) com o MAC Poly1305 para autenticação. Está especificada na RFC 8439. (RFC 8439)

Porquê usar XChaCha20 em vez de AES-256-GCM?

Short answer

Ambas são excelentes cifras. XChaCha20 tem a vantagem prática de implementações de software em tempo constante sem exigir instruções AES por hardware, tornando-a mais robusta contra ataques de canal lateral em dispositivos móveis. O nonce de 192 bits também torna seguras as construções com nonces aleatórios.

Qual é o tamanho efetivo da chave contra computadores quânticos?

Short answer

O algoritmo de Grover fornece uma aceleração quadrática contra cifras simétricas. Uma chave de 256 bits mantém 128 bits de segurança quântica efetiva, o que está muito além de qualquer capacidade plausível de força bruta — incluindo por computadores quânticos.

Qual é a diferença entre ChaCha20 e XChaCha20?

Short answer

XChaCha20 usa um nonce de 192 bits (24 bytes) em vez do nonce de 96 bits (12 bytes) do ChaCha20. Os bits extras do nonce são derivados executando ChaCha20 com uma chave derivada. O nonce mais longo permite a geração segura de nonces aleatórios sem preocupações de esgotamento.

O que é Poly1305?

Short answer

Poly1305 é uma função hash universal rápida desenhada por Daniel J. Bernstein. Em construções AEAD como XChaCha20-Poly1305, Poly1305 calcula um autenticador de 16 bytes sobre o texto cifrado que prova que o texto cifrado não foi adulterado.

O XChaCha20-Poly1305 é usado fora da UltimaOS?

Short answer

Sim. TLS 1.3 (RFC 8446) suporta ChaCha20-Poly1305 como suite de cifras. A VPN WireGuard usa ChaCha20-Poly1305 exclusivamente. OpenSSH usa ChaCha20-Poly1305 desde a versão 6.5.

E se ocorrer uma colisão Poly1305?

Short answer

Poly1305 é um hash universal; a sua saída é infalsificável sob pressupostos criptográficos padrão. Mesmo que ocorresse uma colisão (probabilidade ~2^-128), não permitiria falsificação sem quebrar o próprio Poly1305, o que implicaria quebrar o AES.

Grátis para sempre

Gratuito para indivíduos e famílias. Para sempre.

Sem anúncios, sem mineração de dados, sem relógio de teste. Contas individuais e familiares são gratuitas — permanentemente. Organizações pagam por lugar, e é isso que financia.

Solicite a sua conta Somente por convite enquanto escalamos