miércoles, 14 de octubre de 2009

MD5.- Definición y Aplicaciones

INTRODUCCION A MD5

Hoy en día la mayoría de las páginas web utilizan bases de datos para poder desarrollar portales dinámicos y así hacerlos más atractivos a la vez que útiles. Pero esta información que se guarda en la base de datos tiene que tener algún tipo de protección. Es por ello que algunos campos se guardan encriptados en la base de datos, principalmente cuando una página requiere el nombre de usuario y contraseña, esta última se encripta y se guarda en la Base de datos.


MD5


En criptografía, MD5 (Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado. El código MD5 fue diseñado por Ronald Rivest en 1991.

El algoritmo MD5 es una función de cifrado tipo hash que acepta una cadena de texto como entrada, y devuelve un número de 128 bits. Las ventajas de este tipo de algoritmos son la imposibilidad (computacional) de reconstruir la cadena original a partir del resultado, y también la imposibilidad de encontrar dos cadenas de texto que generen el mismo resultado.


Esto nos permite usar el algoritmo para transmitir contraseñas a través de un medio inseguro. Simplemente se cifra la contraseña, y se envía de forma cifrada. En el punto de destino, para comprobar si el password es correcto, se cifra de la misma manera y se comparan las formas cifradas.


CODIFICACION Y ALGORITMO DE MD5


La codificación del MD5 funciona d ela siguiente manera; su codificación de 128 bits es representada típicamente como un número de 32 dígitos hexadecimal.

Un ejemplo a continuación de una codificación de MD5:

En MD5 ("esto si es una prueba de MD5")

Ahora vemos su Hash de salida= e99008846853ff3b725c27315e469fbc



Pero veamos lo complejo que puede llegar a ser, con tan solo cambiar una letra del mesaje original arroja un Hash de salida muy diferente;

En MD5 ("esto no es una prueba de MD5")

Ahora vemos su Hash de salida= dd21d99a468f3bb52a136ef5beef5034



El simple hecho de codificar un espacio vacío tambien os da como resultado un Hash de salida complejo al igual que los antes vistos;

En MD5 (" ")

Ahora vemos su Hash de salida= d41d8cd98f00b204e9800998ecf8427e



Si en nuestra página web tenemos un sistema de usuarios y queremos proteger las contraseñas para prevenir posibles vulnerabiliddes en nuestro servidor, es una medida eficaz encriptar las contraseñas, como se hace con el MD5, de manera que si alguien puede acceder a ellas no pueda ver la contraseña.


APLICACIONES


Los resúmenes MD5 se utilizan extensamente en el mundo del software para proporcionar la seguridad de que un archivo descargado de Internet no se ha alterado.


Un usuario puede tener la confianza suficiente de que el archivo es igual que el publicado por los desarrolladores comparando una suma MD5 publicada con la suma de comprobación del archivo descargado. La comprobación de un archivo descargado contra su suma MD5 no detecta solamente los archivos alterados de una manera maliciosa, también reconoce una descarga corrupta o incompleta. Esto protege al usuario contra los 'Caballos de Troya' o 'Troyanos' y virus que algún otro usuario malicioso pudiera incluir en el software.


Para comprobar la integridad de un archivo descargado de Internet se puede utilizar una herramienta MD5 para comparar la suma MD5 de dicho archivo con un archivo MD5SUM con el resumen MD5 del primer archivo.


El MD5 también se puede usar para comprobar que los correos electrónicos no han sido alterados usando claves públicas y privadas.


ALGORITMO MD5


Se comienza suponiendo que se tiene un mensaje de b bits de longitud, escritos m0, m1,...m(b-1).

El algoritmo tiene cinco pasos.


1. Adición de bits de relleno.

El mensaje es rellenado con n bits, de tal manera que le falte a su longitud 64 bits para ser múltiplo de 512. El primer de los nbits es 1 y el resto son 0.


2. Adición de la longitud.

La nueva longitud es una representación de 64 bits y es añadida en forma de dos palabras de 32 bits, en primer lugar se muestran los bits menos significativos. Si la longitud del mensaje es mayor que 264, se usan los 64 bits menos significativos.


3. Inicializar lcuatro bufferes, A,B,C y D, que son registros de 32 bits.

Inicializados con los sigs. valores
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10


4. Procesar el mensaje en bloques de 16 bits (se tendra una entrada y salida de 32 bits).

F(X,Y,Z) = (X AND Y) OR ((NOT(X)) AND Z)
G(X,Y,Z) = (X AND Z) OR (Y AND (NOT(Z))
H(X,Y,Z) = X XOR Y XOR Z
I(X,Y,Z) = Y XOR (X OR (NOT(Z)))

Se usa una tabla de 64 elementos T[1 ... 64] construida con la función seno, siendo Ti la parte entera de 294967296 * abs(sen(i)) (i en radianes).


5. Salida.

Mensaje producido por A, B, C, D, empezando con los bits menos significativos de A y terminando con los más significativos de D. Independientemente de la longitud del mensaje, su tamaño será de 128 bits.


CONCLUSION


Como conclusión de este tema se puede decir que las redes se convierten en un lugar donde el público cada ves tiene más acceso, lo cual nos lleva a tratar de protegernos o proteger nuestra información una ves estando navegando en la red; las personas que acceden a estas redes pueden llegar a ser, en alunos casos, malintencionadas, esto que quiere decir, que pueden tratar de obtener información personal o simplemente ingresar a tus cuentas en la red o hasta tu mismo equipo.

Lo que hace el algoritmo MD5 en relación a lo anterior es mostrar lascontraseña de manera codificada, y cuando quieres ingresar a alguna cuenta compara tu contraseña con la que esta en la base de datos. De esta manera cualquier persona malintencionada que quiera obtener alguna contraseña solo podra ver un grupo de caracteres y ninguna lógica para decifrarla ya que el MD5 es un algoritmo de un solo sentido, es imposible decodificarlo.

5 comentarios:

  1. Que buena presentación gracias amigo!

    ResponderEliminar
  2. No puedo creer que no haya un solo comentario en tantos años! donde puedo conocer mas detalles de su funcionamiento para programar en .net?

    ResponderEliminar
  3. MLB Over Under Picks 온라인카지노 온라인카지노 leovegas leovegas 605google soccer prediction - thtopbet.com

    ResponderEliminar
  4. Borgata Hotel Casino & Spa, Atlantic City, NJ
    Borgata 거제 출장마사지 Hotel Casino 광양 출장마사지 & Spa offers the best in entertainment, dining, shopping, luxury hotel experiences and 보령 출장샵 more. Book your stay today! More. Year Built: 용인 출장마사지 1980. 진주 출장마사지

    ResponderEliminar