00 Cryptography

XChaCha20-Poly1305

RFC 8439 — cifrado autenticado con un nonce de 192 bits.

01 Overview

¿Por qué un cifrado simétrico para todo?

01

Cifras simétricas son rápidas

Cifrado simétrica autenticada se ejecuta en gigabytes por segundo en una CPU moderna, órdenes de magnitud más rápido que operaciones de clave pública. Utilizar primitivos simétricos para datos reales es la única opción práctica a escala.

02

El impacto cuántico es limitado

El algoritmo de Grover da a los ordenadores cuánticos una velocidad cuadrada contra los cifrados simétricos. Una llave de 256 bits conserva una seguridad efectiva de 128 bits contra un atacante cuántico, mucho más allá de cualquier capacidad plausible de fuerza bruta.

03

XChaCha20 es un cifer de corriente moderno

ChaCha20 es un cifrado de flujo diseñado por Daniel J. Bernstein en 2008, seleccionado por su simplicidad, rendimiento y resistencia a ataques de canal lateral. Es ampliamente utilizado: TLS 1.3, WireGuard, OpenSSH.

02 Details

Cómo funciona XChaCha20-Poly1305 en UltimaOS.

Las cargas de pago desarrolladas en UltimaOS — mensajes de chat, correo, archivos, notas, tareas, documentos y hojas de cálculo— se cifran con XChaCha20-Poly1305 utilizando una clave simétrica de 256 bits derivada de la sesión ML-KEM-768. Los eventos del calendario y la historia de la conversación AI están fuera de ese sobre hoy.

01

256-bit claves de sesión

Cada conversación, participación de archivos o llamada utiliza una clave simétrica de 256 bits fresca, derivada de la encapsulación ML-KEM-768. No hay llave simétrica a largo plazo en el servidor.

02

Nociones aleatorias de 192 bits

El nonce de 192 bits de XChaCha20 (24 bytes) es lo suficientemente grande como para que los noces aleatorios puedan usarse con seguridad; la probabilidad de colisión sigue siendo insignificante incluso después de 2^64 mensajes con la misma clave.

03

autenticación Poly1305

Poly1305 computes a 16-byte autator over the ciphertext and any associated data. Tampering con el ciphertext o encabezados invalida la etiqueta, y el cliente receptor se niega a descifrar.

04

Flujo de archivos

Los archivos se dividen en pedazos, cada uno con su propia nonce y la etiqueta Poly1305. Los trozos se pueden verificar y descifrar en cualquier orden, permitiendo la descarga de streaming sin esperar el archivo completo.

03 Key points

Consideraciones prácticas.

  1. 01

    La aceleración del hardware está en todas partes

    Las CPU modernas de Intel, AMD y ARM incluyen instrucciones vectoriales AES-NI o equivalentes. ChaCha20 es el cifrado elegido para sistemas sin hardware AES (dispositivos móviles) o para la resistencia del canal lateral.

  2. 02

    No hay reutilización

    Nonce generation uses a per-message counter combined with the random nonce prefix. Con nociones de 192 bits, la reutilización es estadísticamente imposible incluso después de miles de millones de mensajes por sesión.

  3. 03

    Ejecución constante

    Las implementaciones de referencia de ChaCha20 son de tiempo constante, eliminando la fuga del canal lateral del material clave a través del análisis de tiempo o caché.

  4. 04

    Auditorías de la biblioteca

    Los primitivos criptográficos provienen de @noble — auditados, ampliamente utilizados, implementaciones de tipo puro revisados por la comunidad criptográfica — corriendo en el cliente que puede inspeccionar. Cualquiera es libre de auditar nuestro uso de ellos.

04b References

Standards and references.

05 Frequently asked

Preguntas sobre XChaCha20-Poly1305.

¿Qué es XChaCha20-Poly1305?

Short answer

XChaCha20-Poly1305 es un cifrado autenticado con datos asociados (AEAD) cifrado. Combina el cipher de flujo XCha20 (24 byte nonce variante de ChaCha20) con el Poly1305 MAC para autenticación. Se especifica en RFC 8439. (RFC 8439)

¿Por qué utilizar XChaCha20 en lugar de AES-256-GCM?

Short answer

Ambos son excelentes cifrados. XChaCha20 tiene la ventaja práctica de las implementaciones de software de tiempo constante sin requerir instrucciones de hardware AES, lo que lo hace más robusto contra ataques de canal lateral a dispositivos móviles. El nonce de 192 bits también hace que las construcciones aleatorias sean seguras.

¿Cuál es el tamaño clave eficaz contra las computadoras cuánticas?

Short answer

El algoritmo de Grover proporciona una velocidad cuadrática contra los valores simétricos. Una clave de 256 bits conserva una seguridad cuántica efectiva de 128 bits, que está mucho más allá de cualquier capacidad plausible de fuerza bruta, incluso mediante computadoras cuánticas.

¿Cuál es la diferencia entre ChaCha20 y XCha20?

Short answer

XChaCha20 utiliza un nonce de 192 bits (24 bytes) en lugar del nonce de 96 bits de ChaCha20 (12 bytes). Los bits extra nonce se derivan ejecutando ChaCha20 con una clave derivada. El nonce más largo permite una generación segura al azar sin preocupaciones de agotamiento.

¿Qué es Poly1305?

Short answer

Poly1305 es una función de hash universal rápida diseñada por Daniel J. Bernstein. En construcciones de AEAD como XChaCha20-Poly1305, Poly1305 compute un autenticador de 16 bytes sobre el cifertext que demuestra que el ciphertext no fue manipulado.

¿Es XChaCha20-Poly1305 usado fuera de UltimaOS?

Short answer

Sí. TLS 1.3 (RFC 8446) admite ChaCha20-Poly1305 como una suite de cifrado. WireGuard VPN utiliza ChaCha20-Poly1305 exclusivamente. OpenSSH ha utilizado ChaCha20-Poly1305 desde la versión 6.5.

¿Y si ocurre una colisión Poly1305?

Short answer

Poly1305 es un hash universal; su salida es imperdonable bajo hipótesis criptográficas estándar. Incluso si se produjo una colisión (probabilidad ~2^-128), no permitiría la falsificación sin romper el propio Poly1305, lo que implicaría romper AES.

Libre para siempre

Libre para individuos y familias. Para siempre.

Sin anuncios, sin minería de datos, sin reloj de prueba. Las cuentas individuales y familiares son libres, permanentemente. Las organizaciones pagan por asiento, y eso es lo que lo financia.

Solicitar su cuenta Únicamente mientras escalamos