Página principal de Proton

Encriptación > Glosario > ChaCha20

¿Qué es ChaCha20?

ChaCha20 ayuda a proteger sus datos cuando envía mensajes, almacena archivos o navega de forma privada utilizando una aplicación o servicio.

Es un algoritmo de encriptación moderno diseñado para mantener la información confidencial a la vez que es rápido y eficiente en una amplia gama de dispositivos.

Aprenda cómo funciona ChaCha20, por qué es importante en la criptografía moderna y cómo se compara con AES.

¿Qué es ChaCha20?

ChaCha20 es un cifrado de clave simétrica de 256 bits ligero, de alta velocidad y altamente seguro utilizado para cifrar y descifrar datos. Fue diseñado por Daniel J. Bernstein como una mejora de un cifrado anterior llamado Salsa20. El objetivo era crear algo que fuera tanto eficiente como seguro, especialmente en software.

Cómo funciona ChaCha20

ChaCha20 cifra los datos generando un flujo de bytes pseudoaleatorios seguros y combinando ese flujo con el mensaje original. El resultado es una salida cifrada que parece aleatoria para cualquiera que no tenga la clave secreta.

Debido a que utiliza la misma clave para cifrar y descifrar datos, ChaCha20 es mucho más rápido que RSA, un algoritmo asimétrico que utiliza una clave pública y una clave privada. RSA es útil para el intercambio de claves y las firmas, pero ChaCha20 es mejor para cifrar grandes volúmenes de tráfico de internet.

A grandes rasgos, ChaCha20 requiere tres entradas: una clave secreta, un nonce (un número de un solo uso, es decir, un valor único utilizado para cada encriptación) y un contador (para ayudar a generar diferentes bloques de salida). Utiliza estos valores para inicializar un estado interno, que luego se mezcla repetidamente para generar un flujo de bytes pseudoaleatorios seguros conocido como flujo de claves.

Ese proceso de mezcla se basa en tres operaciones simples —suma, XOR y rotación de bits— aplicadas a lo largo de 20 rondas para mezclar por completo los datos. El flujo de claves resultante se combina luego con el texto plano para producir el texto cifrado: los datos cifrados.

Por qué es importante ChaCha20

ChaCha20 resuelve un problema práctico en la seguridad moderna: cómo obtener una encriptación sólida que sea tanto eficiente como confiable en muchos dispositivos. Es muy rápido en software, bueno en teléfonos, dispositivos pequeños y CPU más antiguas, y se basa en operaciones simples que las computadoras realizan bien (suma, XOR, rotación).

Estas funciones lo hacen atractivo en sistemas como TLS, VPN(nueva ventana), SSH y aplicaciones de mensajería. Por ejemplo, el protocolo VPN(nueva ventana) WireGuard®(nueva ventana) utiliza ChaCha20 para proporcionar una encriptación rápida y segura con un sólido rendimiento, incluso en dispositivos que carecen de hardware AES especializado.

ChaCha20 vs. AES

Así se compara ChaCha20 con AES:

ChaCha20 vs. AES

Aspecto

ChaCha20

AES

Tipo de cifrado

Cifrado de flujo

Cifrado de bloque

Operación básica

Sumas/XOR/rotaciones en palabras de 32 bits

Sustitución-permutación en bloques de 128 bits

Tamaños de clave estándar

256 bits

128, 192, 256 bits

Rendimiento en CPU sin hardware especial

Por lo general, muy rápido

A menudo más lento que ChaCha20

Rendimiento en CPU con aceleración por hardware

Por lo general, pierde frente a AES con extensiones criptográficas AES-NI / ARM

A menudo extremadamente rápido

Modo autenticado típico

ChaCha20-Poly1305

AES-GCM

Casos de uso comunes

TLS en móviles/incrustados, criptografía solo por software, WireGuard®

TLS, encriptación de disco, sistemas empresariales, encriptación respaldada por hardware

Mejor opción

Portabilidad, velocidad constante de software, implementación de software más segura

Velocidad máxima en hardware moderno, amplio cumplimiento/soporte

La encriptación AES es el estándar establecido desde hace mucho tiempo y es extremadamente rápida en procesadores con soporte de hardware AES integrado. Debido a eso, funciona especialmente bien en muchas computadoras de escritorio, servidores y chips móviles más nuevos. Sin embargo, sin el soporte de hardware AES, el AES solo por software puede ser más lento y, a veces, más difícil de implementar de forma segura. Por el contrario, ChaCha20 está diseñado para ser muy rápido en software común porque utiliza operaciones simples como suma, XOR y rotación, que funcionan de manera eficiente en casi cualquier procesador.

Si una aplicación ofrece tanto AES como ChaCha20, por lo general no necesita elegir uno manualmente, ya que la mayoría de las aplicaciones modernas seleccionan la mejor opción automáticamente según su dispositivo y procesador. En general, AES funciona mejor en dispositivos más nuevos con soporte AES integrado, mientras que ChaCha20 es una opción más sólida en dispositivos donde la encriptación se realiza principalmente en software, como algunos teléfonos, hardware de bajo consumo o CPU más antiguas.

¿Es seguro ChaCha20?

ChaCha20 se considera seguro según los estándares modernos cuando se implementa correctamente y se utiliza con un nonce único para cada encriptación.

Cifrado fuerte

ChaCha20 utiliza 20 rondas de operaciones de suma-rotación-XOR y se considera resistente a los ataques prácticos conocidos.

Buena seguridad de software

Su diseño simple lo hace eficiente en software y puede reducir algunos riesgos de canal lateral observados en ciertas implementaciones de AES.

Ampliamente desplegado

ChaCha20 cuenta con el soporte de los principales navegadores y se utiliza en conexiones modernas HTTPS/TLS, SSH y WireGuard®.

Por lo general, se combina con Poly1305

A menudo se utiliza como ChaCha20-Poly1305, lo que protege tanto la confidencialidad como la integridad del mensaje. ChaCha20-Poly1305 es una de las principales opciones de encriptación simétrica utilizadas en TLS 1.3.

Proton VPN y ChaCha20

Con el protocolo WireGuard®(nueva ventana) de Proton VPN, ChaCha20-Poly1305 ayuda a proteger el túnel VPN para que su tráfico de internet permanezca privado sin sacrificar la velocidad, ya sea que esté navegando de forma privada, transmitiendo contenido en streaming o utilizando WiFi público sobre la marcha.

Más información sobre el cifrado