Función Hash

Los hash o funciones de resumen son algoritmos que consiguen crear a partir de una entrada (ya sea un texto, una contraseña o un archivo, por ejemplo) una salida alfanumérica de longitud normalmente fija que representa un resumen de toda la información que se le ha dado (es decir, a partir de los datos de la entrada crea una cadena que solo puede volverse a crear con esos mismos datos).

Estas funciones no tienen el mismo propósito que la criptografía simétrica y asimétrica, tiene varios cometidos, entre ellos está asegurar que no se ha modificado un archivo en una transmisión, hacer ilegible una contraseña o firmar digitalmente un documento.
Características de los hash

En definitiva las funciones hash se encargan de representar de forma compacta un archivo o conjunto de datos que normalmente es de mayor tamaño que el hash independientemente del propósito de su uso.

Este sistema de criptografía usa algoritmos que aseguran que con la respuesta (o hash) nunca se podrá saber cuales han sido los datos insertados, lo que indica que es una función unidireccional. Sabiendo que se puede generar cualquier resumen a partir de cualquier dato nos podemos preguntar si se podrían repetir estos resúmenes (hash) y la respuesta es que teóricamente si, podría haber colisiones, ya que no es fácil tener una función hash perfecta (que consiga que no se repita la respuesta), pero esto no supone un problema, ya que si se consiguieran (con un buen algoritmo) dos hash iguales los contenidos serían totalmente distintos.

Ejemplos y formas de uso

Las funciones hash son muy usadas, una de las utilidades que tiene es proteger la confidencialidad de una contraseña, ya que podría estar en texto plano y ser accesible por cualquiera y aún así no poder ser capaces de deducirla. En este caso, para saber si una contraseña que está guardada, por ejemplo, en una base de datos es igual a la que hemos introducido no se descifra el hash (ya que debería de ser imposible hacerlo) sino que se aplicará la misma función de resumen a la contraseña que especificamos y se comparará el resultado con el que tenemos guardado (como se hace con las contraseñas de los sistemas Linux).

Asegurar la integridad de la información
Otro uso que tiene esta función es la de garantizar la integridad de los datos y es algo que habréis visto muchas veces, por ejemplo en algunas web que proporcionan descargas de archivos grandes, por ejemplos software, dando junto a su vez el resumen del archivo y la función usada.
Por poner un ejemplo en la página de descarga de Virtual Box podemos encontrar esta página con todos los resúmenes de las descargas disponibles con los que podemos comprobar que el archivo se ha descargado correctamente y que nadie ha modificado su contenido durante la transmisión.
Para poner en práctica este uso cogeré esta imagen de HTML5 y le aplicaré una función de resumen con el algoritmo MD5.

En conclusión una función Hash es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud. Se pueden crear hash para contraseñas y archivos multimedia, utilizan las funciones criptográficas hash para detectar malware. Por otra parte, las funciones criptográficas hash se utilizan también para asegurar la “integridad de los mensajes”. En pocas palabras, para estar seguros  de que algunas comunicaciones o archivos no fueron alterados de alguna forma, se pueden examinar los hash creados antes y después de la transmisión de los datos. Si los dos hash son idénticos, significa que no ha habido ninguna alteración.
Bibliografía
         Facultad de Ingeniería, UNAM. (Abril de 2016). Esquemas de Seguridad Informatica. Obtenido de Laboratorio de Redes y Seguriad: http://redyseguridad.fi-p.unam.mx/proyectos/seguridad/Amenazas.php                                                                Leon, C. (16 de mayo de 2015). Slideshare. Obtenido de Slideshare: https://es.slideshare.net/jeanleonpsm/mecanismos-de-seguridad-informtica
    UNAM. (20 de 10 de 2017). Facultad de Ingeniería. Obtenido de http://redyseguridad.fi-p.unam.mx/proyectos/criptografia/criptografia/index.php/2-tecnicas-clasicas-de-cifrado/23-numero-de-claves/233-sistemas-de-dos-claves-cifradores-asimetricos

        Wordpress,Seguridad Informática. (21 de 10 de 2017). Seguridad Informática. Obtenido de https://seguinfo.wordpress.com/2007/09/14/%C2%BFque-es-rsa/

Comentarios

Entradas populares de este blog

Socket Datagrama

Arquitectura Cliente-Servidor

Sistemas Distribuidos