ENG / ESP

¿Qué son las funciones Hash y para que se utilizan?

Categorías

  • Legal Tech
  • Protección de datos
  • Blockchain
  • Smart Contracts
  • Tecnología

Las funciones Hash (también conocidas como funciones resumen) son funciones que, utilizando un algoritmo matemático, transforman un conjunto de datos en un código alfanumérico con una longitud fija. Da igual la cantidad de datos que se utilice (muchos o pocos), el código resultante tendrá siempre el mismo número de caracteres.

hash

Conjunto de datos

Cuando nos referimos a un conjunto de datos, puede ser cualquier tipo de contenido digital. Ya sean textos, fotografías, video, música… Lo que tendremos que tener en cuenta es el formato de los archivos. Aunque un texto sea exactamente igual en formato .pdf y .docx, sus códigos alfanuméricos o hashes serán diferentes.

Algoritmo matemático y código alfanumérico

El termino Hash proviene del inglés y significa “picadillo”. En consonancia con este significado, el algoritmo matemático “pica”, “trocea” y “mezcla” el conjunto de datos y crea un nuevo código con una longitud indicada. Cuando hablamos de funciones Hash, hacemos referencia a diferentes algoritmos matemáticos de resumen. Por tanto, no existe una sola función de Hash, sino que encontramos una pluralidad de ellas. Entre las funciones más conocidas encontramos las denominadas SHA-2 (Secure Hash Algorithm). SHA-2 se compone de 4 funciones: SHA-224; SHA-256, SHA-384 y SHA_512. Cada una de ellas da un Hash diferente para un mismo conjunto de datos, y la longitud del Hash es de 224, 256, 384 y 512 bits dependiendo de la función elegida.

Por noma general, los Hashes son representados en código alfanumérico hexadecimal. Por tanto, los 256 bits del SHA-256, nos entrega un código alfanumérico de 64 caracteres.

A continuación, mostramos algunos ejemplos Hashes de un conjunto de datos. Para este caso nuestro conjunto de datos será palabras (string) y utilizaremos el nombre de nuestra empresa: Cysae Severla.

SHA-224:
2969250a803387f91dc3188ee7dc3214fed3698f3bcdb76b85515e51

SHA-256:
09431c0f67d8c0b07f278c8340249c76c966d19570de112a92aa13840c8305a8

SHA-384:
d557b24ffdfe7d9cc18de828b86f94ecd64f3be00cd9af0ea357d3364aaffe34ded011774b1de63b06094a70d4501ea1

SHA-512:
beb96da6246eb9567501ef9e142c5e7f9d6a543373c58cf3e1f3051d6de10e754a8045ea831ca7b5798c52f8d80fe782194eb3c10d462795bd66594fab82fb3d

Una de las principales características de las funciones Hash es que cada conjunto de datos al que se le aplica la función nos dará un hash único, por muy pequeña que sea la variación en los datos. Como así podemos ver a continuación:

alstrnode

Ahora introduciremos Cysae Severla pero sin las mayúsculas, obteniendo un código totalmente diferente:

alstrnode

La otra característica principal de los Hashes es la prácticamente imposibilidad de obtener el conjunto de datos a partir del código alfanumérico. Es decir, es una función de solo sentido.

alstrnode

Utilidades del Hash

Las funciones Hash y los códigos alfanuméricos que generan tienen muchas utilidades. En este post no indicaremos todas y cada una de las funcionalidades, pero os indicamos algunas de ellas.

El Hash es muy utilizado en la gestión de los identificadores y contraseñas. Cuando una persona accede a un Saas, el sistema debe comprobar previamente que el usuario y la contraseña introducidas son correctas para poder acceder al servicio. Para que exista un mayor nivel de seguridad, el sistema no guarda la contraseña, sino que guarda el Hash de la contraseña. Y, por tanto, cuando introducimos nuestra contraseña para acceder, el sistema calcula el Hash de la contraseña y lo compara con el Hash guardado en el sistema. Si ambos coinciden, permitirá el acceso. Esta es la razón por la cual los sistemas de internet no pueden devolverte la contraseña olvidada, porque no la tienen. Deberás generar una nueva contraseña, para que se calcule el Hash y el sistema la guarde.

Otra de las utilidades de las funciones Hash es determinar de forma rápida la inalterabilidad de un documento o archivo. Como cada documento genera un Hash único (como una matrícula de coche), si un documento ha sido alterado su Hash será diferente al anterior. Esta misma función permite una trazabilidad de los documentos o archivos. Al tener un identificador único, se podrán identificar cualquier copia del documento o archivo.

Por último, destacar la funcionalidad de las funciones Hash en el entorno blockchain, función que permite el sistema se cerrado de bloques y el estampado de documentos.

Finalmente os dejo este enlace a una página que os permite utilizar las diferentes funciones de SHA-2.

CYSAE