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







martes, 9 de julio de 2013

Cifrado Skipjack

El cifrado Skipjack fue desarrollado por la NSA, Nacional Security Agency, esta contenido en los chip Clipper y Capstone y su implementacion solo esta permitida por hardware.

El chip Clipper es un microprocesador desarrollado por el gobierno de los Estados Unidos para se utilizado como dispositivo de cifrado por las compañias de telecomunicaciones dedicadas a la transmision de voz.

Capstone es el nombre de un proyecto a largo plazo desarrollado por el gobierno de los Estados Unidos para desarrollar estándares criptograficos para uso publico y de gobierno.

Skipjack es un cifrado simétrico que usa bloques de 64 bits y una clave de 80 bits, este utilizaba el programa Clipper, pero no tenia el deposito de claves incorporado, este es un algoritmo de alto riesgo, lo que quiere decir que había un elevado riesgo de que este fuera comprometido.

Este es mas lento que Bowfish y algunas propuestas AES, pero aun asi es el doble de rapido que DES en micros de 32 bits. Es rapido cuando se usa en tarjetas inteligentes y eficiente en hardware.

Skipjack es una red no equilibrada de Feistel.

El algoritmo de Feistel se denomina simétrico por rondas, realiza siempre las mismas operaciones cierto numero de veces. Los pasos de la red de Feistel son entre algunos mas:
*Se selecciona una cadena, N, normalmente de 64 o 128 bits, y se divide en dos subcadenas, L y R, de igual longitud
*Se toma una funcion, F y una clave Ki
*Se realizan una serie de operaciones complejas con F y Ki y con L o R
*La cadena obtenida se cambia por la cadena con la que no se han realizado operaciones, y se siguen haciendo las rondas.



La red no equilibrada de Feistel usa una estructura modificada en la cual L y R son de diferente tamaño.

Skipjack tiene un diseño mu simple y fragil ya que a cualquier modificacion que se le haga, hasta la mas minima, y este puede romperse.



Bibliográfica:

Cifrado SkipJack,  Applied Cryptography, B. Schneider   

Feistel Cypher


Estenografía

La esteganografía es la parte de la criptografia en la que se estudian y aplican técnicas que permiten ocultar mensajes u objetos, dentro de otros, llamados portadores, de modo que no se perciba su existencia. 


Programa (Incompleto)

El programa le pregunta al usuario cual es el mensaje que el desea ocultar dentro de la imagen, debido a que el programa esta incompleto solo puede guardar el mensaje que este recibe y no lo puede descifrar.




Ejecución
Las imagenes superiores son la imagenes originales.
El mensaje a ocultar sera: Hola a todos

Imágenes














Conclusion:

La esteganografía puede ser un método bueno para ocultar información a la vista de todos pero si uno no la sabe manejar de la manera adecuada esta puede ser evidente y uno puede recuperar el mensaje.