miércoles, 10 de julio de 2013

Cifrado de Flujo RC4


El algoritmo RC4 es un algoritmo de cifrado en flujo, utilizado en protocolos de cifrado en comunicaciones como Transport Layer Security (TLS/SSL) y Wired Equivalent privacy (WEP), fue desarrollado por Ronald Rivest en 1987,. El nombre completo del algoritmo es Rivest Cipher 4 y fue mantenido en secreto, pero en septiembre de 1994 se filtro la información del algoritmo y fue publicado en varios sitios web.  

Este algoritmo destaca por su simplicidad y rapidez en software, pero presenta debilidades que le impiden ser una opción para implementar en un sistema: en la clave existen patrones invariantes que se propagan también al estado interno del algoritmo, dando como resultado que los primeros bytes generados por el RC4 sean predecibles.Otra vulnerabilidad permite la recuperación de la clave secreta, cuando ésta se deriva de una concatenación con un vector inicial publico; al recopilar un gran número de mensajes y vectores iniciales la clave queda expuesta.

El RC4 genera un flujo pseudoaleatorio de bits a partir de la clave original, la cual se combina con el mensaje en claro por medio de la operación lógica XOR. El descifrado es exactamente igual, debido a la simetría que presenta la operación binaria XOR. La obtención de la clave presenta dos módulos importantes, que son el corazón del algoritmo: un arreglo de 0016 a FF16 permutado(llamado S), y dos indices de 8 bits(llamados i y j).

Para generar correctamente una clave se necesita un arreglo de 256 bytes correctamente permutados.

Algoritmo Generación de S:
*Se construye el arreglo S de 0016 a FF16 .
*Se parte con parámetros x=0 y y=0 .







Donde K[y] es un byte de la clave original, S[z] es un byte del arreglo y longK es la longitud en bytes de la clave utilizada.


Cifrado y Descifrado

Para la obtención de el criptograma de un mensaje en claro se debe generar la clave a partir del arreglo S permutado, que es un generador de claves pseudoaleatorio manejado por los indices i y j. Estos parámetros se ajustan en i=0 y j=0 con las siguientes operaciones:






El indice del elemento de la clave a cifrar es  Finalmente se obtiene el criptograma aplicando la operación XOR.




Este algoritmo sigue el mismo proceso para descifrar un mensaje, pero la operación XOR se realiza entre la clave generada por el algoritmo y el criptograma.

Bibliografía







1 comentario:

  1. Está algo breve el reporte; me hubiera gustado ver un ejemplo. 6 pts.

    ResponderEliminar