domingo, 1 de agosto de 2010

Qué son las Funciones Hash ?


Un hash es un valor numérico de longitud fija que identifica datos de forma unívoca. Los valores hash se utilizan para comprobar la integridad de los datos que se envían a través de canales no seguros. Puede compararse el valor hash de los datos recibidos con el valor hash de los que se enviaron para determinar si se alteraron los mismos.

Los valores hash también se utilizan en las firmas digitales. Dado que se pueden usar valores hash pequeños para representar cantidades de datos de mayor tamaño, sólo es necesario firmar el hash de un mensaje, en lugar de todos los datos del mismo.

Sin embargo un Hash cumple con las siguientes características:

- Es una cadena de caracteres alfanuméricos en hexadecimal que representan únicamente a un solo documento:

- Ejemplo: 19267ebb60d71af71966c0623daf22e7aa883d52 ; este es un hash que se utiliza en internet para representar, en este caso la localización de un libro en específico, CVD Diamond For Electronic Devices And Sensors Mar 2009 eBook-ELOHiM, haga la prueba, copie el hash en el bucador de su navegador, sin necesidad de otra cosa más le dará las diversas ubicaciones del libro en internet.

- Las funciones hash vistas (MD5, SHA-1, etc.) pueden usarse además para autenticar a dos usuarios.

El Secure Hash Algorithm (SHA) fue desarrollado por el Instituto Nacional de Estándares y Tecnología (NIST) y publicado como un estándar federal para el procesamiento de la información (FIPS 180) en 1993; una versión revisada se publicó como FIPS 180-1 en 1995 y se refiere por lo general como SHA-1. El documento original está titulado; Secure Hash Standard (SHA). SHA se basa en la función hash MD4 y su diseño se acerca a los modelos de MD4. SHA-1 también se especifica en el RFC 3174, que esencialmente duplica el material en FIPS 180-1, pero añade un código en “C” para puesta en práctica.

Las funciones Hash del tipo Secure One-Way (o Hash unidireccionales), son herramientas de uso común tanto criptosistemas como en bloques de cifrado. Son funciones primitivas que pueden ser usadas para conseguir la privacidad, integridad y autenticidad de un sistema. Una función hash (formalmente conocida como una función Pseudo aleatoria) mapea un tamaño arbitrario de entrada de un dato y lo convierte en otro más pequeño, a este proceso normalmente lo conocemos como compresión. En el sentido estricto de la criptografía, las funciones hash poseen dos propiedades muy útiles; primero conviene que sean unidireccionales y deben resistir colisiones.

La unidireccionalidad de las funciones Hash implica que dada la salida presentada por la función, cualquier alteración del texto de entrada no sería trivial con respecto a la salida. Es decir, si retomamos el ejemplo del Hash anterior, (19267ebb60d71af71966c0623daf22e7aa883d52), el cual pertenece al libro antes mencionado, y si se le cambiase al menos un carácter al texto original (como por ejemplo agregarle una coma a cualquier párrafo) la salida sería totalmente diferente y podría cambiar casi todos los símbolos que representaban al documento original, lo que sería equivalente a compararlo con la teoría del caos (El aleteo de una mariposa en el Perú, podría ocasionar inundaciones en la China).

Ser resistente a la colisión implica que dada una salida a partir del hash, la búsqueda de otra entrada que produzca el mismo resultado (llamado un choque) no es trivial, y se necesitarían complejos procesos matemáticos para producirlo. Las funciones Hash se derivan de la aplicación de varios algoritmos, entre ellos el más usado es el MD5.

1 comentario:

Escriba aquí su comentario.. Gracias...