ChaCha20-Poly1305 es un algoritmo de cifrado autenticado con datos asociados (AEAD) que proporciona tanto confidencialidad como integridad y autenticidad para los datos. Se compone de dos primitivas criptográficas: ChaCha20, un cifrado de flujo de la familia Salsa20, y Poly1305, un Message Authentication Code (MAC) de alta velocidad. ChaCha20 opera generando un keystream pseudoaleatorio que se combina con el mensaje en claro mediante una operación XOR. Poly1305, por su parte, calcula una etiqueta de autenticación sobre el texto cifrado y los datos asociados (AAD) para proteger contra manipulaciones. Su diseño lo hace resistente a ataques de temporización y fácil de implementar de forma segura en software, sin depender de instrucciones de hardware específicas.
Este algoritmo ha ganado una adopción significativa en el mundo real, especialmente en entornos donde el rendimiento y la seguridad en software son críticos. Es ampliamente utilizado en protocolos de red como TLS 1.2 y TLS 1.3, donde ofrece una alternativa robusta a AES-GCM, particularmente en dispositivos sin aceleración de hardware AES. Google lo adoptó inicialmente en Chrome para conexiones HTTPS en Android y dispositivos de bajo consumo, y posteriormente lo integró en QUIC. OpenSSH también lo utiliza para proteger las comunicaciones SSH. Además, es una opción preferida en VPNs modernas y aplicaciones de mensajería segura que buscan un equilibrio óptimo entre seguridad y eficiencia en software.
Para un arquitecto de sistemas, ChaCha20-Poly1305 es una consideración estratégica importante en el diseño de sistemas seguros. Su principal valor radica en su excelente rendimiento en software, lo que lo convierte en una opción superior a AES-GCM en plataformas sin aceleración de hardware AES (como muchos dispositivos móviles o servidores ARM sin extensiones criptográficas específicas). Esto permite mantener un alto nivel de seguridad sin incurrir en la latencia o el consumo de CPU que implicaría una implementación de software de AES-GCM. Al elegir ChaCha20-Poly1305, los arquitectos pueden optimizar el rendimiento de la capa de seguridad en entornos heterogéneos o con recursos limitados, simplificar la implementación segura (evitando los desafíos de temporización de AES) y asegurar una fuerte postura criptográfica contra ataques modernos, contribuyendo a la resiliencia y escalabilidad de la infraestructura.