RC2: Cifrado por bloques simétrico de 64 bits (Rivest, 1987)

RC2: cifrado por bloques simétrico de 64 bits (Rivest, 1987). 18 rondas, clave variable y expansión compleja. Historia, diseño técnico y vulnerabilidades históricas detalladas.

Autor: Leandro Alegsa

En criptografía, el RC2 es un cifrado por bloques de clave simétrica diseñado por Ronald Rivest en 1987. "RC" significa "Rivest Cipher", o alternativamente, "Ron's Code".

Características principales

RC2 opera sobre bloques de 64 bits (en bloque de 64 bits) y admite una clave de longitud variable. El algoritmo realiza un total de 18 rondas organizadas en una estructura tipo redfeistel con funciones de mezcla no lineales y rondas de "maceración" (mashing) que introducen dependencia adicional de la clave. En la práctica, la clave de entrada puede tener longitudes diversas (históricamente se emplearon longitudes efectivas de 40 bits para cumplir regulaciones de exportación), y el algoritmo expande esa clave a un conjunto fijo de subclaves usadas durante las rondas.

Estructura y funcionamiento

El bloque de 64 bits se divide internamente en cuatro palabras de 16 bits (R0, R1, R2, R3). Las rondas realizan operaciones aritméticas y lógicas entre estas palabras y las subclaves: sumas módulo 216, operaciones lógicas (AND y complementos bit a bit) y rotaciones circulares sobre 16 bits. Estas operaciones crean difusión y confusión a lo largo de las rondas sin necesidad de una estructura Simétrica simple. En términos generales, cada ronda de mezcla aplica cuatro transformaciones de mezcla consecutivas sobre las cuatro palabras, incorporando subclaves distintas en cada paso; las rondas de maceración (mashing) mezclan valores de la clave expandida con el estado para aumentar la dependencia de la clave a mitad del cifrado.

Orden de rondas

Las 18 rondas se realizan según la siguiente secuencia intercalada:

  1. realizar 5 rondas de mezcla.
  2. realizar 1 ronda de maceración.
  3. realizar 6 rondas de mezcla.
  4. realizar 1 ronda de maceración.
  5. realizar 5 rondas de mezcla.

Expansión de clave

RC2 incluye un algoritmo de expansión de claves que genera una clave expandida compuesta por 64 palabras de 16 bits (es decir, 128 bytes en total), derivadas de forma compleja de cada bit de la clave de entrada de longitud variable. La expansión emplea una tabla de permutación fija (conocida en la especificación) para distribuir la entropía de la clave original sobre las subclaves; además, el estándar RFC 2268 define un parámetro de "longitud de clave efectiva" que permite limitar la fuerza efectiva de la clave (medida en bits) por motivos de compatibilidad o regulación.

Una ronda de mezcla consiste en cuatro aplicaciones de la transformación de mezcla sobre las palabras de 16 bits del estado; cada una incorpora una de las palabras de la clave expandida (RFC 2268). Las transformaciones combinan sumas modulares, operaciones lógicas y rotaciones circulares en distintas cantidades para cada subronda.

Seguridad y ataques conocidos

RC2 ha sido objeto de análisis criptográfico y se han encontrado debilidades teóricas y prácticas:

  • Un ataque de claves relacionadas (related-key attack) fue descrito por Kelsey y colaboradores en 1997 que afecta a RC2; dicho ataque requiere aproximadamente 2^34 textos planos elegidos en las condiciones adecuadas y muestra que RC2 no ofrece la misma resistencia que cifrados modernos con análisis más sólido.
  • Las variantes de clave muy cortas, en particular las claves de 40 bits utilizadas históricamente para cumplir las regulaciones de exportación de Estados Unidos, son vulnerables a ataques de fuerza bruta y hoy se consideran inseguras.

Por estas razones, RC2 no se recomienda para nuevas aplicaciones; los algoritmos contemporáneos como AES o ChaCha20 ofrecen mayor seguridad y mejor rendimiento en la mayoría de entornos.

Historia y estandarización

El desarrollo de RC2 fue patrocinado por Lotus, que buscaba un cifrado personalizado para incluir en su software Lotus Notes y exportarlo. La NSA evaluó el cifrado y sugirió algunos cambios de diseño que Ronald Rivest incorporó; tras negociaciones, RC2 fue aprobado para exportación en 1989. Junto con RC4, las implementaciones de RC2 con tamaño de clave de 40 bits estuvieron sujetas a las restricciones de exportación de EE. UU., una práctica que dejó obsoletas las longitudes de clave de 40 bits debido a su vulnerabilidad a ataques de fuerza bruta.

Inicialmente, los detalles completos del algoritmo fueron mantenidos en secreto por RSA Security. Sin embargo, el 29 de enero de 1996, el código fuente de RC2 fue publicado anónimamente en Internet (foro Usenet sci.crypt). No quedó claro si el autor de la publicación tenía acceso a las especificaciones originales o si realizó ingeniería inversa para obtenerlas. La especificación formal también ha sido publicada en RFC 2268, que describe el algoritmo y su esquema de expansión de claves.

Uso actual y recomendación

Hoy, RC2 se considera obsoleto para la mayoría de aplicaciones prácticas. Sus limitaciones (bloque de 64 bits, vulnerabilidades teóricas y la historia de claves cortas para exportación) hacen que no sea adecuado para nuevos diseños. Se recomienda migrar a algoritmos modernos y estandarizados como AES (para cifrado por bloques) o ChaCha20 (para cifrado de flujo), según las necesidades de rendimiento y seguridad.

Resumen breve: RC2 fue importante históricamente como un cifrado por bloques de 64 bits y clave variable diseñado por Rivest, pero hoy se evita en favor de alternativas más seguras y auditadas.

La transformación de mezcla de RC2; Una ronda de mezcla consiste en aplicar la transformación de "mezcla" cuatro veces.Zoom
La transformación de mezcla de RC2; Una ronda de mezcla consiste en aplicar la transformación de "mezcla" cuatro veces.

Preguntas y respuestas

P: ¿Qué es el RC2?


R: El RC2 es un cifrado por bloques de clave simétrica diseñado por Ronald Rivest en 1987. Utiliza un tamaño de bloque de 64 bits y 18 rondas de cifrado.

P: ¿Qué significa "RC"?


R: "RC" significa "Cifrado de Rivest", o alternativamente, "Código de Ron".

P: ¿Cuántas rondas se realizan cuando se utiliza RC2?


R: Cuando se utiliza RC2, se realizan 18 rondas - 16 rondas de mezcla intercaladas con dos rondas de machaqueo.

P: ¿Cómo funciona el algoritmo de expansión de claves?


R: El algoritmo de expansión de claves produce una clave expandida que consta de 64 (palabras de 16 bits) en función de cada bit de la clave de entrada de longitud variable suministrada.

P: ¿A qué tipo de ataque es susceptible el RC2?


R: El RC2 es susceptible a un ataque de clave relacionada utilizando 234 ataques de texto plano elegido.

P: ¿Quién patrocinó el desarrollo de RC2?



R: El desarrollo de RC2 fue patrocinado por Lotus, que buscaba un cifrado personalizado para exportarlo como parte de su software Lotus Notes.


Buscar dentro de la enciclopedia
AlegsaOnline.com - 2020 / 2025 - License CC3