Algoritmo RC5

Anuncio
ALGORITMO RC5
Contreras Murillo Daniel.
Flores Flores Armando.
Pablo Erika Celina.
Reséndiz Jiménez Omar.
RC5



Es un sistema de cifrado el cual fue diseñado por
Ronald Rivest en 1994
Este algoritmo salió en sustitución del esquema RC4,
el cual había sido publicado anónimamente en
Internet.
RC5 es un algoritmo que opera por bloques.
Descripción.






Tamaño variable de bloques: 32, 64 o 128 bits.
Palabra clave entre 0 y 2040 bits.
vueltas entre 0 y 255.
bloques de 64 bits (2 palabras de 32 bits), en 12
rondas o vueltas y con una clave de 128 bits (16
bytes).
RC5 hace uso de rotaciones dependientes.
En su estructura contiene algunas operaciones como
sumas modulares y operaciones XOR.
Características.




Adecuado para ser implementado en hardware y
software. Utiliza computación básica y operaciones
que podemos encontrar en un microprocesador.
Adaptable a procesadores de diferentes tamaños
de palabra; puede utilizar tamaño de palabra de
16, 32 y 64 bits.
Bajo consumo de memoria; uso en tarjetas
inteligentes o dispositivos donde la disponibilidad
de espacio sea un factor.
Proporciona alta seguridad.
Planificación de claves.

Utiliza la clave secreta del usuario para expandir
un arreglo S de claves, que contiene 2(r + 1)
palabras aleatorias determinada por la clave
original.
Definición de las constantes.




Las dos constantes basadas en números irracionales
trascendentes: Pw = 0dd((e-2)2w) con la base de los
logaritmos naturales e = 2.71828182…, y Qw =
0dd((ϕ - 1)2w) basada en el número áureo, ϕ=
1.61180339.
P16 = B7E1
P32 = B7E15163
P64 = B7E151628AED2A6B
9E3779B97F4A7C15
Q16 = 9E37
Q32 = 9E3779B9
Q64 =

Se realizan los siguientes pasos.
La clave original se convierte de bytes a palabras.
Esto se consigue al tomar la clave K [0...b-1] y
colocarla en el arreglo L [0…]. La operación se
realiza de manera natural utilizando bytes de la
clave para llenar cada palabra sucesiva en L, del
byte menos significativo al más significativo; los
bytes faltantes para completar L se rellenan con
ceros.

Se obtiene un patrón de bits pseudoaleatorios para
iniciar S, utilizando una progresión aritmética con
período 2w determinada por las constantes Pw y Qw.



S [0] Pw.
S [i] S [i-1] + Qw, variando i desde 1 hasta 2r + 1.

Mezclado de la clave secreta. En este paso se
mezcla la clave del usuario, utilizando los arreglos S
y L. el pseudocódigo siguiente establece el proceso
de mezcla:
Cifrado del mensaje en claro




Se combina cada bloque con una clave: A
A
+ S[ 0] y B
B + S [1]. Esta es la transformación
inicial.
Para cada ronda i desde 1 hasta r se aplican las
siguientes operaciones:
A
((A B) << B) + S [2 *i]
B
((B A) <<A) + S [2*i +1]
Descifrado del mensaje.

Se realiza invirtiendo el cifrado y también las
operaciones de suma y XOR; esto es, se deberá de
realizar una resta y XOR. Además de que las
rotaciones dependientes de los datos cambian, es
decir esta vez irán a la derecha.
Modos de Operación
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-cifrador en bloque
Modos de Operación

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
Mcla el criptograma correspondiente es diferente
en cada ocasión.
RC5-CBC
Modos de Operación


RC5-CBC-relleno:utiliza la modalidad CBC con una variante, el
algoritmo considera el uso de Mcla de 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.
Descargar