RC5

RC5
Información sobre la plantilla
RC5.png


RC5 es un algoritmo de cifrado en bloques desarrollado por Ron Rivest, de hecho es lo que indican las siglas que dan nombre al algoritmo y en cuanto al número 5 corresponde a una secuencia de algoritmos de cifrado simétrico desarrollados todos por Rivest y que fueron evolucionando (RC2, RC4 y RC5) donde RC5 se dio a conocer en 1995. Este algoritmo salió en sustitución del esquema RC4, el cual había sido publicado anónimamente en Internet. El candidato para AES, RC6, estaba basado en RC5.

Descripción

A diferencia de muchos esquemas, RC5 tiene tamaño variable de bloques (32, 64 o 128 bits), con tamaño de clave (entre 0 y 2040 bits) y número de vueltas (entre 0 y 255). La combinación sugerida originalmente era: bloques de 64 bits, claves de 128 bits y 12 vueltas. Una característica importante de RC5 es el uso de rotaciones dependientes de los datos; uno de los objetivos de RC5 era promover el estudio y evaluación de dichas operaciones como primitivas de criptografía. RC5 también contiene algunas unidades de sumas modulares y de Puertas O-exclusivo (XOR). La estructura general del algoritmo es una red tipo Feistel. Las rutinas de cifrado y descifrado pueden ser especificadas en pocas líneas de código, pero la programación de claves es más complicada. La simplicidad del algoritmo junto con la novedad de las rotaciones dependientes de los datos han hecho de RC5 un objeto de estudio atractivo para los criptoanalistas.

Características

  • Adecuado para ser implementado en hardware o software: utiliza computación básica y operaciones que comúnmente se encuentran en microprocesadores.
  • Rápido: Las operaciones básicas se trabajan en plabras completas simultánemente.
  • Adaptable a procesadores de diferentes tamaños de palabra: uno de los parámetros que utiliza es el tamaño de la palabra w(16,32 o 64 bits), de manera que para diferentes longitudes de palabra produce diferentes algoritmos y como cifra en bloques de dos palabras el cifrado es con mensajes en claro de 32,64 o 128 bits.
  • Número variable de iteraciones: el número de vueltas r(0,1,2,...255) es otro de los parámetros que considera RC5 y permite negociar o acordar entre la velocidad y alta seguridad.
  • Clave de longitud variable: un parámetro más que considera el algoritmo es la clave k (en octetos que van desde 1 hasta 255), y que da también la oportunidad de moverse entre alta velocidad y alta seguridad.
  • Sencillo: su estructura permite que sea fácilmente implementado y de igual manera da la oportunidad de evaluar y determinar la con facilidad la robustez del algoritmo.
  • Bajo consumo de memoria: sus requerimientos de mínimo espacio de memoria hacen que sean un algoritmo apropiado para su uso en tarjetas inteligentes o dispositivos similares en cuanto a la disponibilidad del espacio.
  • Alta seguridad: en general proporciona alta seguridad la cual puede oscilar dependiendo de la selección de parámetros, de manera que eligiendo los adecuados, la seguridad será sumamente elevada.
  • Rotaciones con dependencia de datos: se incorporan rotaciones circulares de bits las cuales dependen de los datos introducidos, esto hace que RC5 sea más robusto aún, por consiguiente, que sea prácticamente irrompible para cualquier criptoanalista.

Modos de Operación

RC5 hace uso de tres parámetros diferentes para operar así que, para determinar de manera específica lo seleccionado, el algoritmo se designa como RC5-w/r/b; por ejemplo, RC5-32/12/16 se trata de un RC5 que cifra mensajes de 64 bits, en 12 rondas y con una clave de 16 bytes (128 bits). Para elevar la efectividad de RC5 en las implementaciones, RFC2040 define cuatro modos diferentes de operación los cuales son:

  • RC5-cifrador en bloque: Este algoritmo de cifrado considera entradas de tamaño fijo (2w) y genera un criptograma de igual longitud mediante un proceso de transformación que depende de la clave k. Esto se hace utilizando la modalidad ECB que consiste en trabajar bloques de 64 bits de mensaje en claro (Mcla) y cifrar cada uso de manera independiente utilizando siempre la misma clave.
  • RC5-CBC: este modo de cifrado se basa en la modalidad CBC la cual representa una seguridad más elevada en comparación con la que usa ECB, ya que aquí aun cuando se repitan bloques de Mclael criptograma correspondiente es diferente en cada ocasión.
  • RC5-CBC-relleno: Utiliza la modalidad CBC con una variante, el algoritmo considera el uso de Mclade longitud variable por lo que el criptograma correspondiente será de la misma longitud. Lo que hace esta modalidad es procesar información (Mcla/Cripto) en múltiplos de un bloque sencillo RC5 por lo que si se requiere, éste se rellena. Por ejemplo, si el faltante es de cuatro bytes, estos tienen la misma estructura e indican dicha cantidad.
  • RC5-CTS: Se trata de un cifrado que se apoya en CBC y que es muy similar a CBC-relleno, ya que puede manejar bloques de información de cualquier tamaño y para poder operar requiere procesar bits en múltiplos de bytes por lo que realiza un relleno. La diferencia consiste en que cuando el criptograma correspondiente debe ser almacenado en la misma localidad de memoria (en sustitución) que ocupa el Mcla, resulta que el criptograma es de mayor longitud (debido al relleno) por lo que ahora es necesario sustraer el excedente.

Enlaces internos

Enlaces externos