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:
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.



