Cifrado/Descifrado Familia RC
Cifrados simétricos RC2/RC4/RC5/RC6 diseñados por Ron Rivest
⚠️ Aviso de seguridad
RC4 tiene vulnerabilidades conocidas y ha sido deprecado de TLS/SSL. Para máxima seguridad, considere usar AES-256. Todos los datos se procesan localmente en su navegador.
Acerca de la familia RC
La familia RC (Rivest Cipher, también "Ron's Code") fue diseñada por Ron Rivest en MIT y RSA Security a lo largo de décadas. RC2 (1987, publicado por RFC 2268 en 1998): cifrado de bloque 64 bits, clave variable 64–128 bits, creado para exportación controlada. RC4 (1987, filtrado a Cypherpunks en 1994): cifra de flujo famosa por la vulnerabilidad WEP y el ataque Fluhrer-Mantin-Shamir.
RC5 (1994, Rivest): cifrado totalmente parametrizado RC5-w/r/b con ancho de palabra, número de rondas y longitud de clave. RC5-32/12/16 es la implementación de referencia. RC6 (1998, Rivest/Gupta/Shamir/Yin): extendió RC5 con multiplicación de enteros y cuatro registros como candidato AES final con bloques de 128 bits.
Comparación de algoritmos
| Algoritmo | Tipo | Longitud de clave | Tamaño de bloque | Seguridad | Estado |
|---|---|---|---|---|---|
| RC2 | Cifrado de bloque | 1-128 bytes | 64 bits | Débil | Deprecado |
| RC4 | Cifrado de flujo | 1-256 bytes | N/A (flujo) | Débil | Deprecado |
| RC5 | Cifrado de bloque | 0-255 bytes | 32/64/128 bits | Bueno | Seguro |
| RC6 | Cifrado de bloque | 16/24/32 bytes | 128 bits | Excelente | Finalista AES |
RC2 (Rivest Cipher 2)
RC2 es un cifrado de bloque de 64 bits diseñado en 1987. Utiliza una clave de longitud variable (1-128 bytes) y tiene un parámetro único de 'bits de clave efectivos' que puede limitar el espacio de búsqueda de claves.
Originalmente diseñado como secreto, RC2 estaba destinado a la compatibilidad de exportación con longitud de clave efectiva de 40 bits. Debido a vulnerabilidades conocidas, solo debe usarse para compatibilidad con sistemas heredados.
RC4 (Rivest Cipher 4)
RC4 es un cifrado de flujo diseñado en 1987. Genera un flujo pseudoaleatorio de bytes (flujo de claves) que se XORea con el texto plano. Conocido por su simplicidad y velocidad, fue ampliamente usado en protocolos SSL/TLS, WEP y WPA.
Debido a las vulnerabilidades descubiertas (especialmente en los primeros bytes del flujo de claves), RC4 ha sido deprecado de los protocolos de seguridad modernos. La variante 'RC4-Drop' descarta los bytes iniciales del flujo de claves para mitigar estos problemas.
RC5 (Rivest Cipher 5)
RC5, publicado en 1994, introdujo un diseño parametrizable con tres variables: tamaño de palabra (w), número de rondas (r) y longitud de clave (b). Esta flexibilidad permite adaptar RC5 a diferentes requisitos de seguridad.
RC5 usa rotaciones dependientes de datos como su principal operación no lineal, haciéndolo simple pero efectivo. Las configuraciones comunes incluyen RC5-32/12/16 (palabras de 32 bits, 12 rondas, clave de 16 bytes).
RC6 (Rivest Cipher 6)
RC6 fue presentado como candidato AES en 1998 y fue uno de los cinco finalistas. Extiende RC5 con multiplicación de enteros para mejor difusión y usa cuatro registros de trabajo en lugar de dos.
Con un tamaño de bloque fijo de 128 bits y soporte para claves de 128/192/256 bits, RC6 proporciona excelente seguridad. Aunque Rijndael fue seleccionado como AES, RC6 permanece como un algoritmo respetado y seguro.
Características principales
- RC2: Cifrado de bloque heredado con longitud de clave variable, solo para compatibilidad
- RC4: Cifrado de flujo extremadamente rápido, ideal para aplicaciones en tiempo real
- RC5: Diseño parametrizable permitiendo compromisos flexibles de seguridad/rendimiento
- RC6: Cifrado de bloque moderno con fuertes garantías de seguridad
- Todos los algoritmos son libres de patentes y están disponibles gratuitamente para cualquier uso
Modos de cifrado (RC5/RC6)
- CBC: CBC para RC2/RC5/RC6 — los bloques de 64 bits de RC2/RC5-32/RC6-32 están expuestos al riesgo Sweet32 (≈ 32 GB bajo la misma clave). RC4 no tiene modo CBC; genera flujo PRGA continuo.
- ECB: ECB para RC2/RC5/RC6 — cada bloque procesado independientemente. Bloques idénticos → cifrados idénticos. Solo para token de bloque único o envoltura de clave.
- CFB: CFB para RC2/RC5/RC6 — la función de bloque cifra el segmento anterior y los n bits superiores se XORan con el texto plano. Modo flujo autosincronizante.
- OFB: OFB para RC2/RC5/RC6 — generación de flujo de clave por re-cifrado iterativo, independiente del texto plano. Sin propagación de errores.
Consideraciones de seguridad
- RC4 NO debe usarse en ninguna aplicación nueva. RFC 7465 (2015) prohíbe formalmente RC4 en TLS. El ataque FMS (2001) recuperaba claves WEP en menos de un minuto. RC4 aquí es exclusivamente para descifrado de datos heredados.
- RC4-Drop (descartar los primeros 768–3072 bytes de PRGA) mitiga pero no elimina las vulnerabilidades de sesgo de RC4. El ataque NOMORE (2015, Black Hat) recuperó cookies TLS RC4 en 75 horas.
- RC5 y RC6 no tienen ataques prácticos de ronda completa, pero sus bloques de 64 bits exponen al riesgo Sweet32 con ≈ 32 GB de datos CBC bajo la misma clave.
- RC2 fue diseñado para clave efectiva de 40 bits (exportación) y debe tratarse como débil. Usar exclusivamente para compatibilidad S/MIME heredada.
Casos de uso
- Forense WEP/WPA: reconstrucción del flujo RC4 por paquete desde IV de 3 bytes y clave de red
- Descifrado S/MIME: archivos de correo cifrados con RC2/40 o RC2/128 bajo RFC 2268
- Investigación RC5: comparación de RC5-32/12/16 vs RC5-64/20/16 para entender el escalado ARX multi-ancho
- Evaluación AES: reproducción de RC6-32/20 para comparación con Rijndael, Serpent, Twofish, MARS
Referencias
Herramientas Relacionadas
Cifrado/Descifrado AES
Cifrar y descifrar texto de forma segura usando el algoritmo AES
Cifrado/Descifrado Blowfish
Cifrado de bloques simétrico rápido diseñado por Bruce Schneier, con longitud de clave variable (32-448 bits)
Cifrado/Descifrado Twofish
Finalista AES, cifrado simétrico con bloques de 128 bits y claves de 128/192/256 bits, diseñado por Bruce Schneier