Hashing

Que es Hashing?

Hashing es el proceso de tomar cualquier entrada y transformarla en una cadena de longitud fija. Este producto que se obtiene es llamado el valor hash / mensaje. En términos informales, un hash es una especie de firma o identificación de algunos de los datos de flujo que representa el valor de los datos. Se trata de una transformación de una forma.

Una Analogía

Supóngase existen 2 personas - Alice y Bob. Ambos son estudiantes de la escuela secundaria trabajando en un problema de matemáticas y se les dará crédito adicional por la respuesta. Ahora Alice resuelve el problema primero, pero no quiere mostrarle la solución a Bob. Así que ella hashe la solución. Cuando Bob llega a la solución días después de la fecha límite, el quiere comprobar que Alice no esta jugando, y al mismo tiempo no quiere mostrarle su solución también. Así que el hashe su respuesta utilizando la misma función hash, y compara los valores hash para comprobar si tienen la misma respuesta.

Diferencia entre hash y cifrado

Cifrado transforma el texto cifrado en texto plano, y descifrado invierte el proceso y permite que el texto original se devuelva.

Hashing Encryption

Hashing por el contrario, es una operación de una forma en la que los datos se convierten en un compendio de mensajes. No hay descodificación de mensajes hashed.

Hashing

Confirmando la integridad de un archivo

Cuando se descarga un archivo desde Internet para uso muy importante, ¿cómo saber que el archivo es confiable? Si lo descarga de nuevo y comparara los bits en ambas ocasiones y resultaron ser iguales, entonces muy bien. Pero que pasa si los resultados son diferentes? Entonces, ¿cómo se sabe que el archivo es el correcto? Hay una posibilidad de que ambos puedan haber sido manipulados! Hashing ofrece una solución para evitar este accidente. El portal de los archivos deberían proporcionar los valores hash de los distintos archivos. Al descargar, puede hash el archivo y compararlo con el valor de hash existentes en el sitio… y viola! Usted sabe si su archivo es auténtico o no.

Hashing Contraseñas

Password Hashing

Imagínese si la autenticación de los sistemas informáticos almacenara todas sus contraseñas en texto plano! ¿Qué pasa si un hacker logra entrar en el sistema? Los resultados de un ataque de ese tipo serían catastróficos. Aquí es donde hashing salva el día. Las contraseñas son hashed por el sistema y lo guardan en el almacén de contraseñas. Cuando un usuario escribe su contraseña, hashes, lo que se teclea en los controles y con el resumen de valor almacenado en la tienda. Sólo si hay una concordancia exacta, al usuario se le proporciona acceso a su cuenta de correo electrónico. De esta forma, si un hacker logra entrar al sistema, él ganaría nada, aparte de un conjunto de alfabetos y números con los que no pueden hacer nada.

Hashing

Función de Hash

Las funciones de hash en realidad se ocupan de la transformación. Existen diversas funciones hash en el uso común hoy en día. MD-4, MD-5, SHA-1, etc, para nombrar algunos. Veamos qué hay en el nivel básico de trabajo de unos pocos.

MD-4

Se trata de un algoritmo de hashing que se traduce en un mensaje de 128 bits. Diseñado por Ronald Rivest, este algoritmo es utilizado para firmar digitalmente los documentos y los archivos de gran tamaño tienen que ser seguramente comprimidos antes de cifrar con una clave secreta, en virtud de un sistema criptográfico de clave pública.

Ejemplo:

Input: HashThat

Output: 74cbd3dc6167b9c74f99f6f086b45af0

Incluso con el cambio de un carácter, el valor se cambia.

Input: HashThan

Output: 0181a03f364ff52567aa5ddf6a0e2aff

MD-5 es una extensión de MD-4, para el que se declara infeasible desde un punto de vista computacional que dos diferentes aportaciones tienen el mismo valor hash. Resistencia a colisiones se han desarrollado métodos para evitar tal situación, puesto que los efectos de tal situación serían catastróficos!

Hashing Mistake

SHA

Este algoritmo de hashing diseñado por la NSA (Agencia Nacional de Seguridad), resulta en un mensaje de 160-bits. Es principalmente incorporado para la utilización junto con el DSS (Digital Signature Standard). Es diferente de MD-4 en el sentido de que tiene una expansión adicional de la operación, pero una nueva ronda. Este cambio fue realizado fundamentalmente para dar cabida a DSS de tamaño de los bloques de manera eficaz. Hay varias versiones - SHA1, SHA-2 etc Usando SHA-1,

Input: HashThat

Output: 61677d1964f3bd2a5a0c82aab85aec6511771e97

Referencias

An Illustrated guide to cryptographic hashes, Steve Friedl
http://www.unixwiz.net/techtips/iguide-crypto-hashes.html
Hashing Algorithms
http://www.networksorcery.com/enp/data/hashing.htm
MD-4, Wikipedia article
http://en.wikipedia.org/wiki/MD4
gtools – free DNS, SEO and hash tools
http://gtools.org/tool/md4-hash-generator/
SHA1 Secure Hash Algorithm - Version 1.0
http://www.w3.org/PICS/DSig/SHA1_1_0.html
Image source:
http://www.unixwiz.net/techtips/iguide-crypto-hashes.html
Published with permission from Steve Friedl
http://www.unixwiz.net/