RC4: cifrado de flujo, funcionamiento, historia y vulnerabilidades
RC4 es un cifrado de flujo diseñado por Ron Rivest; fue muy usado por su simplicidad y velocidad, pero hoy se desaconseja por múltiples fallos criptográficos y vulnerabilidades prácticas.
RC4 es un cifrado de flujo simétrico diseñado para generar una secuencia de bytes pseudoaleatoria que se combina (con una operación XOR) con datos en claro para producir datos cifrados. Introducido por Ron Rivest en 1987, su popularidad se debe a la sencillez de su implementación y a su rapidez en software. Sin embargo, con el tiempo se han descubierto sesgos y debilidades que lo hacen inseguro en muchas aplicaciones modernas. Para revisiones técnicas y antecedentes vea fuentes técnicas y análisis adicionales.
Funcionamiento básico
El algoritmo se divide en dos pasos principales: la programación de la clave (KSA, Key-Scheduling Algorithm) y la generación del flujo pseudoaleatorio (PRGA, Pseudo-Random Generation Algorithm). La KSA inicializa un estado interno —habitualmente un arreglo S de 256 bytes— mezclando la clave de longitud variable; después la PRGA actualiza ese estado y extrae bytes del flujo que se XORean con el texto plano para producir el cifrado. La sencillez de estas operaciones (intercambios y sumas mod 256) explica su rapidez, tanto en CPU como en implementaciones sencillas de hardware. Para una descripción del mecanismo y pseudocódigo consulte documentación técnica y ejemplos.
Historia y difusión
RC4 fue un secreto comercial de RSA Security durante años; con el tiempo el código se filtró y en 1994 su diseño se hizo público, lo que permitió su análisis académico y su inclusión en protocolos y productos. Hoy su denominación oficial es «Rivest Cipher 4», aunque con frecuencia aparece como ARCFOUR o ARC4 para evitar cuestiones de marca registrada. Fue adoptado ampliamente en protocolos como SSL/TLS y en estándares para redes inalámbricas, además de implementaciones propietarias; para contextos históricos y normativos ver historia, informes y publicaciones.
Usos y ejemplos
- Aplicaciones de cifrado punto a punto en software donde se necesitaba simplicidad y baja sobrecarga.
- Protocolos de comunicación histórica: implementaciones en versiones antiguas de SSL/TLS y en esquemas como WEP (conocido por sus vulnerabilidades) y algunos modos de VPN.
- Algoritmos de prueba y educación: su estructura sencilla lo convirtió en ejemplo habitual en cursos y artículos divulgativos. Ver implementaciones, casos prácticos y estudios de uso.
Vulnerabilidades y limitaciones
Con el tiempo se identificaron varias fallas serias: sesgos en los bytes iniciales del flujo, sensibilidad ante reutilización de claves y problemas al combinar claves largas con vectores de inicialización (IV) mal manejados. Estas debilidades permitieron ataques prácticos contra sistemas reales (por ejemplo, romper WEP mediante análisis de IVs y reutilización). Las recomendaciones de la comunidad incluyen evitar RC4 en nuevas aplicaciones, no reutilizar el mismo flujo de clave y descartar los primeros bytes del flujo (mitigación limitada). Para análisis de ataques y pruebas de seguridad consulte análisis de seguridad, estudios criptográficos y informes técnicos.
Buenas prácticas y alternativas
Dado el registro de fallos y el estado de la investigación, la elección prudente es optar por cifrados modernos y revisados públicamente: cifrados de flujo y modos de operación de bloques con propiedades de seguridad comprobadas (por ejemplo, AES en modos autenticados) o algoritmos de flujo diseñados más recientemente y sometidos a revisión. Cuando no sea posible migrar inmediatamente, se recomiendan medidas provisionales —no reutilizar claves, gestionar correctamente IVs y evitar confiar únicamente en descartes iniciales— y realizar auditorías periódicas. Para guías de migración y compatibilidad ver recomendaciones, normas y guías prácticas.
Datos y distinciones relevantes
Es importante distinguir entre cifrados de flujo y de bloque: RC4 es un cifrado de flujo, lo que implica que cifra byte a byte y no agrupa bloques, lo que le da flexibilidad pero también exige precauciones distintas sobre sincronización y reutilización de claves. Además, aunque su algoritmo se hizo público y puede implementarse libremente, el nombre «RC4» ha estado sujeto a marca registrada, motivo por el que a veces se encuentra bajo otros nombres técnicos. Para comparativas y materiales complementarios, consulte comparativas, estudios de caso, análisis histórico, documentación, recursos, artículos y bibliografía.
Criptosistemas basados en RC4
- WEP
- WPA
- Cifrado del protocolo BitTorrent
- Cifrado punto a punto de Microsoft
- Secure Sockets Layer (opcional)
- Secure Shell (opcional)
- Cliente de escritorio remoto (RDC sobre RDP)
- Kerberos (opcionalmente)
- Mecanismo SASL Digest-MD5 (opcional)
- Gpcode.AK, un virus informático de principios de junio de 2008 para Microsoft Windows, que toma documentos como rehenes para pedir un rescate ocultándolos con cifrado RC4 y RSA-1024
Cuando un criptosistema está marcado con "(opcionalmente)", RC4 es uno de los varios cifrados que el sistema puede utilizar.
Páginas relacionadas
- Estándar de cifrado avanzado
- Estándar de cifrado de datos (DES)
- DES-X
- eSTREAM - Una evaluación de nuevos cifrados de flujo que está llevando a cabo la UE.
- TEA, Block TEA también conocido como eXtended TEA y Corrected Block TEA - Una familia de cifradores de bloque que, como RC4, están diseñados para ser muy simples de implementar.
- Triple DES (TDES)
Preguntas y respuestas
P: ¿Qué es RC4?
R: RC4 (también conocido como ARC4 o ARCFOUR que significa Supuesto RC4) es un cifrado de flujo de software utilizado en protocolos populares como Secure Sockets Layer (SSL) y WEP.
P: ¿Quién creó RC4?
R: RC4 fue creado por Ron Rivest de RSA Security en 1987.
P: ¿Cómo se hizo público el algoritmo?
R: El algoritmo se hizo público cuando se publicó en la lista de correo Cypherpunks en septiembre de 1994, y después se difundió por muchos sitios web de Internet.
P: ¿RC4 es una marca registrada?
R: Sí, el nombre "RC4" es una marca registrada.
P: ¿Cuáles son las dos razones por las que se ha utilizado ampliamente?
R: Las dos razones principales que han contribuido a su uso en un abanico tan grande de aplicaciones son su velocidad y su sencillez. Los usos de RC4 tanto en software como en hardware son extremadamente fáciles de desarrollar.
P: ¿Cómo funciona el algoritmo de encriptación?
R: El algoritmo de encriptación comienza con una longitud de clave diferente, normalmente entre 40 y 256 bits, utilizando el algoritmo de programación de claves (KSA). Una vez hecho esto, se crea el flujo de bits cifrados utilizando el algoritmo de generación pseudoaleatoria (PRGA).
P: ¿Se considera seguro el RC4 para las nuevas aplicaciones?
R: No, porque existen muchos métodos para atacarlo, por lo que no se recomienda su uso en nuevas aplicaciones.
Artículos relacionados
Autor
AlegsaOnline.com RC4: cifrado de flujo, funcionamiento, historia y vulnerabilidades Leandro Alegsa
URL: https://es.alegsaonline.com/art/81419
Fuentes
- people.csail.mit.edu : Rivest FAQ
- cypherpunks.venona.com : "Thank you Bob Anderson"