Saltar al contenido

¿Que es una Función Hash Criptográfica?

Función hash criptográfica

Ocultar la información de ojos malintencionados has sido una práctica tan antigua como el lenguaje en sí. Dentro de este ámbito existe la criptología. Esta es una disciplina encargada de proveer técnicas para proporcionar seguridad a la información. Es decir, la criptología estudia cómo cifrar y descifrar mensajes para de esta manera ocultarlos a simple vista. Una de las ramas de la criptología es la criptografía.

Esta última se encarga del cifrado o descifrado del lenguaje para ciertos mensajes. De esta manera los mensajes solo pueden ser leídos por la persona que posea la clave de descifrado. Existen muchos mecanismos para cifrar un mensaje. Dentro de la criptografía se emplea diversas funciones con este fin. Dentro de las funciones criptográficas tenemos la función hash. Si quieres conocer un poco más sobre qué es una función hash criptográfica, te invito a que continúes leyendo. Ya comenzamos.

Tabla de contenidos


Función hash

Una función hash (del inglés hash function) es una función utilizada para transformar un elemento de entrada, en otro elemento de salida. Una función has recibe normalmente cadenas de entrada. Estas cadenas son convertidas en otras cadenas en la salida.

La peculiaridad de esta función es que las cadenas de salida tienen una longitud fija. Esta longitud es independiente de la longitud de la cadena de entrada. La función hash se representa, matemáticamente, como:

Representación matemática de la función hash.
Representación matemática de la función hash.

Podemos apreciar, que la función realiza una proyección del conjunto U sobre el conjunto M. El conjunto M pude referirse a un conjunto de números entero. Y como M debe tener una longitud fija como conjunto salida de la función hash, se pueden colocar ceros a la izquierda, hasta alcanzar la longitud definida de la salida.

En resumen, la salida de una función hash debe ser una representación compacta de la, o las cadenas de entrada. El conjunto de entrada puede estar formado por una cantidad elevada de elementos. Por su parte, el conjunto de salida se define como un conjunto de símbolos acotados.

Función hash criptográfica

Las funciones hash son empleadas en criptografía. Una función hash criptográfica actúa en principio de forma parecida a una función hash. Las funciones hash criptográficas deben cifrar una entrada de datos en una salida de menor longitud que la original. De esta manera comprimen la entrada haciéndolas más fáciles de calcular.

Las funciones hash criptográficas tienen ciertas características que las hacen idóneas para utilizarlas en el ámbito de la criptografía y elevar la seguridad. Estas propiedades incrementan las fortalezas de la encriptación ante ataques de software maliciosos con la intención de quebrar la seguridad.

Características y Propiedades

Como ya explicábamos estas funciones implementan ciertas propiedades que son muy útiles en criptografía. En primer lugar, la función has criptográfica debe ser fácil de calcular. Es decir, dad una entrada x, debe obtenerse una salida h(x) con un bajo grado de complejidad de cálculo.

La otra característica necesaria es que, una vez obtenida la salida y, sea muy difícil calcular la entrada. También que la función evite las colisiones. Esto significa que, dada dos valores de entrada diferentes, la salida de la función sean dos resultados iguales.

Dada la variedad de aplicaciones para la criptografía, definir las características de las funciones criptográficas hash utilizadas es bastante complejo. Esto se debe a que cada aplicación tiene sus propios requerimientos, en función del uso que se le vaya a dar.

No obstante, todas las funciones hash criptográficas implementadas deben ser deterministas y de bajo coste computacional. Por otro lado, en común deben ser uniformes y al mismo tiempo presente un efecto avalancha. Este último significa que cualquier cambio en el valor de entrada, por minúsculo que sea, debe generar grandes cambios en el valor de salida. De esta manera es poco probable predecir un valor de salida a partir de un para entrada salida.

Efecto avalancha de función hash criptográfica.
Efecto avalancha: pequeños cambios en la entrada generan grandes cambios en el valor hash

Como ya explicábamos, la función hash criptográfica empleada debe estar en función del objetivo a perseguir. Es común utilizarlas para dos objetivos principalmente. Por un lado, está las funciones dedicadas a verificar la integridad, nombradas códigos de detección de modificaciones. Otras tienen como objetivo principal validar la autenticación del origen del mensaje emitido. Estas últimas se llaman códigos de autenticación de mensajes.  

Los nombres indicados no son totalmente acordes al significado de la función. Porque en general estas no son códigos y las dos permiten la autenticación de mensajes. No obstantes, son términos aceptados para referirse a ellas.

Función hash criptográfica de detección de modificaciones

Estas funciones se llaman Códigos de detección de modificaciones (del inglés Modification Detection Codes, MDC). El objetivo fundamental de esta función es la de comprobar si el contenido de un mensaje está alterado. Su uso está indicado para comprobar la integridad de la información.

Para su funcionamiento, antes de enviarse el mensaje se calcula el valor de salida al aplicar la función hash criptográfica. Este valor es enviado al destinatario del mensaje, el cual puede calcular el valor hash del mensaje que recibe y compararlo con el valor que le fue enviado. Si ambos valores coinciden, es que el mensaje no se ha modificado. Por otro lado, si los valores hash obtenidos no coinciden, pues hay una modificación en el mensaje original.

La principal característica que deben tener estas funciones es la resistencia a colisiones (CRHF). Esto significa que debe ser muy difícil encontrar dos pares distintos de valores de entrada que generen el mismo valor de salida.

Función hash criptográfica para autenticación de mensajes

Estas funciones son conocidas como Códigos de Autenticación de Mensajes (del inglés Message Authentication Codes, MAC). Su funcionamiento está dirigido a validar que un mensaje se autentico y que además no tenga modificaciones respecto al mensaje original.

Estas funciones hash son funciones con claves. De esta manera se mantiene en secreto la identidad de quien desea autenticarse, así como del que comprueba la autenticación. Las principales características de esta función es que tengan altos grados de compresión de la entrada para obtener salidas más pequeñas. También deben tener resistencia a la computación de nuevos valores hash.

Algoritmos de hash seguro SHA

El algoritmo de hash seguro SHA (siglas en inglés de Secure Hash Algorithm), engloba un conjunto de funciones hash criptográficas. Este algoritmo ha sido definido por el Instituto Nacional de Estándares y Tecnología (NIST) y declarado como un estándar federal de procesamiento de información en Estados Unidos de América.

Este algoritmo posee un alto grado de no reflexividad. Esto significa que es prácticamente imposible, dado un valor de salida, hallar un valor de entrada que devuelva el mismo valor de salida. También es resistente a colisiones dada el elevado número de combinaciones posibles.

El algoritmo SHA permite la creación de cadenas diferentes que pueden ser usadas para rastrear los cambios en la seguridad de diferentes archivos. Esta capacidad es de gran uso en la creación de cuentas asociadas a calves de acceso que solo un usuario en específico debe conocer. También se emplean en la creación de las cadenas de bloques en ciertas criptomonedas como el bitcoin.


Artículos relacionados que te podrían resultar interesantes:


Artículos que te podrían resultar interesantes:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.