Función hash

Apariencia mover a la barra lateral ocultar Una función de hash en funcionamiento.

Una función resumen,​ en inglés hash function,​ también conocida con los híbridos función hash o función de hash, convierte uno o varios elementos de entrada a una función en otro elemento. También se las conoce como función extracto, del inglés digest function, función de extractado y por el híbrido función digest.

Una función hash H es una función computable mediante un algoritmo tal que:

H : U → M {\displaystyle H:U\rightarrow M}

x → h ( x ) {\displaystyle x\rightarrow h(x)}

La función hash tiene como entrada un conjunto de elementos, que suelen ser cadenas, y los convierte en un rango de salida finito, normalmente cadenas de longitud fija. Es decir, la función actúa como una proyección del conjunto U sobre el conjunto M.

Hay que tener en cuenta que M puede ser un conjunto definido de enteros. En este caso, podemos considerar que la longitud es fija si el conjunto es un rango de números de enteros, ya que podemos considerar que la longitud fija es la del número con mayor cantidad de cifras. Cabe destacar que es posible convertir todos los números a una cantidad específica de cifras simplemente anteponiendo ceros.

Normalmente el conjunto U tiene un número elevado de elementos y M es un conjunto de cadenas con un número acotado de símbolos. La idea básica de un valor hash es que sirva como una representación compacta de la cadena de la entrada. Por esta razón, se dice que estas funciones permiten resumir datos del conjunto dominio.

Orígenes del término

El término hash proviene, aparentemente, de la analogía con el significado estándar (en inglés) de dicha palabra en el mundo real: picar y mezclar. Donald Knuth cree que H. P. Luhn, empleado de IBM, fue el primero en utilizar el concepto en un memorándum fechado en enero de 1953. Su utilización masiva no fue hasta después de 10 años.

Terminología asociada

Al conjunto U se le llama dominio de la función hash. A un elemento de U se le llama preimagen o, dependiendo del contexto, clave o mensaje.

Al conjunto M se le llama imagen de la función hash. A un elemento de M se le llama valor resumen, código hash o simplemente hash.

Se dice que se produce una colisión cuando dos entradas distintas de la función resumen producen la misma salida. De la definición de función resumen podemos decir que U, el dominio de la función, puede tener infinitos elementos. Sin embargo M, el rango de la función, tiene un número finito de elementos debido a que el tamaño de sus cadenas es fijo. Por tanto la posibilidad de existencia de colisiones es intrínseca a la definición de función hash. Una buena función resumen es una que tiene pocas colisiones en el conjunto esperado de entrada. Es decir, se desea que la probabilidad de colisión sea muy baja.

Parámetros adicionales

La definición formal dada, a veces se generaliza para poder aprovechar las funciones hash en otros ámbitos. Para ello a la función resumen se le añaden nuevos parámetros de forma que el valor hash no es solo función del contenido en sí, sino además de otros nuevos factores.

Para hallar valores resumen de ficheros a veces se usan, además del contenido en sí, diversos parámetros como el nombre del archivo, su longitud, hora de creación, etc.

Otras veces se añaden parámetros que permiten configurar el comportamiento de la función. Por ejemplo, la función resumen puede recibir como parámetro una función de generación de valores pseudoaleatorios que es usada dentro del algoritmo de la función hash.

Otros ejemplos de parámetros son el uso de valores sal, el uso de claves secretas, el uso de parámetros que especifican el rango de la función (funciones hash de rango variable), el uso de parámetros que especifican el nivel de seguridad que se quiere en el valor resumen de salida (funciones hash dinámicas), etc.

Funciones resumen con clave

Una función resumen con clave HK (en inglés keyed hash function) es una función resumen H que tiene un parámetro secreto K que pertenece al conjunto posible de claves K {\displaystyle {\mathcal {K}}} y en la que para una entrada x, hK(x) es el valor resumen de x. Al resto de funciones resumen se dice que son sin clave (en inglés unkeyed hash function).

Propiedades

La calidad de una función resumen viene definida con base en la satisfacción de ciertas propiedades deseables en el contexto en el que se va a usar.

Bajo costo

Calcular el valor hash necesita poco costo (computacional, de memoria, etc.).

Compresión

Una función hash comprime datos si puede mapear un dominio con datos de longitud muy grande a datos con longitud más pequeña

Uniforme

Se dice que una función resumen es uniforme cuando para una clave elegida aleatoriamente es igualmente probable tener un valor resumen determinado, independientemente de cualquier otro elemento.

Para una función hash H uniforme del tipo H:{0,1}m→{0,1}n, es decir:

podemos decir que a cada resumen le corresponde 2m-n mensajes y que la probabilidad de que dos mensajes den como resultado la misma salida es 2-n

Para algoritmos de búsqueda, si todas las entradas son igualmente probables, se busca esta propiedad para minimizar el número de colisiones ya que cuantas más colisiones haya, será mayor el tiempo de ejecución de las búsquedas.

De rango variable

En algunas funciones resumen el rango de valores resumen puede ser diferente a lo largo del tiempo. Ejemplo: funciones hash usadas para tablas resumen que necesitan expandirse. En estos casos a la función hash se le debe pasar un parámetro que le permita saber en qué rango se mueve la ejecución para hallar el valor resumen.

Inyectividad y función hash perfecta

Se dice que la función resumen es inyectiva cuando cada dato de entrada se mapea a un valor resumen diferente. En este caso se dice que la función resumen es perfecta. Para que se dé, es necesario que la cardinalidad del conjunto dominio sea inferior o igual a la cardinalidad del conjunto imagen. Normalmente, sólo se dan funciones hash perfectas cuando las entradas están preestablecidas. Ejemplo: mapear los días del año en números del 1 al 366 según el orden de aparición.

Formalización:

k 1 ≠ k 2 {\displaystyle k1\neq k2} implica h ( k 1 ) ≠ h ( k 2 ) {\displaystyle h(k1)\neq h(k2)}

Cuando no se cumple la propiedad de inyectividad se dice que hay colisiones. Hay una colisión cuando k 1 ≠ k 2 {\displaystyle k1\neq k2} y h ( k 1 ) = h ( k 2 ) {\displaystyle h(k1)=h(k2)} .

Determinista

Una función hash se dice que es determinista cuando dada una cadena de entrada siempre devuelve el mismo valor hash. Es decir, el valor hash es el resultado de aplicar un algoritmo que opera solo sobre la cadena de entrada. Ejemplos de funciones hash no deterministas son aquellas funciones hash que dependen de parámetros externos, tales como generadores de números pseudoaleatorios o la fecha. Tampoco son deterministas aquellas funciones hash que dependen de la dirección de memoria en la que está almacenada la cadena de entrada. Esa dirección es accidental y no se considera un cambio de la cadena entrada en sí. De hecho puede cambiar dinámicamente durante la propia ejecución del algoritmo de la función hash.

Propiedades para analizar la resistencia frente a colisiones

El estudio de este tipo de propiedades es muy útil en el campo de la criptografía para los llamados 'códigos de detección de modificaciones'.

Resistencia a la primera preimagen

​ Se dice que una función resumen tiene resistencia a la primera preimagen o simplemente que tiene resistencia a preimagen (del inglés preimage-resistant) si, dado un valor hash y, es computacionalmente intratable encontrar x tal que h(x)=y.

Resistencia a la segunda preimagen

​ Se dice que una función resumen tiene resistencia a la segunda preimagen (en inglés second preimage-resistant) si dado un mensaje x, es computacionalmente intratable encontrar un x', x ≠ x ′ {\displaystyle x\neq x'} , tal que h(x)=h(x').

Resistencia a colisiones (CRHF)

​ Se dice que una función hash tiene resistencia a colisiones o que es resistente a colisiones o CRHF (del inglés Collision Resistant Hash Function) si encontrar un par ( x , y ) {\displaystyle (x,y)} con y ≠ x {\displaystyle y\neq x} tal que h ( x ) = h ( y ) {\displaystyle h(x)=h(y)} es computacionalmente intratable. Es decir, es difícil encontrar dos entradas que tengan el mismo valor resumen.

Como encontrar una segunda preimagen no puede ser más fácil que encontrar una colisión, entonces la resistencia a colisiones incluye la propiedad de resistencia a la segunda preimagen.​ Por otro lado se puede decir que la mayoría de las funciones resumen CRHF son resistentes a preimagen.​ La resistencia a colisiones implica resistencia a preimagen para funciones hash con salida aleatoria uniforme.

En algunos trabajos a estas funciones se les llama funciones resumen de un solo sentido fuertes (del inglés strong one way hash function) para resaltar que es fuerte debido a que hay libre elección de los dos valores x e y.

Función resumen de un solo sentido (OWHF)

​ Una función hash se dice que es una función resumen de un solo sentido o que es OWHF (del inglés One-Way Hash Function) si tiene las propiedades de resistencia a preimagen y de resistencia a segunda preimagen. Es decir, es difícil encontrar una entrada cuya hash sea un valor resumen preespecificado.

Observar que es diferente a la definición general que se hace de funciones de un solo sentido:

​ Una función se dice que es una función de un solo sentido o que es OWF si para cada x del dominio de la función, es fácil computar f(x), pero para todo y del rango de f, es computacionalmente intratable encontrar cualquier x tal que f(x)=y. La diferencia entre OWHF y OWF es que OWF no requiere que sea función resumen ni que sea resistente a segunda preimagen.

En algunos trabajos a estas funciones se les llama funciones hash de un solo sentido débiles (del inglés weak one way hash function) para resaltar que es débil en contraste con CRHF (que es fuerte) debido a que al cumplir la propiedad de resistencia a segunda preimagen no hay libre elección en la selección del valor x, y por tanto del valor h(x), en el que se tiene que producir la colisión.

Resistencia a la casi colisión

​ H es resistente a la casi colisión (en inglés near-colission resistance) si es difícil encontrar dos mensajes m {\displaystyle m} y m ′ {\displaystyle m'} con m ≠ m ′ {\displaystyle m\neq m'} para las cuales sus imágenes H ( m ) {\displaystyle H(m)} y H ( m ′ ) {\displaystyle H(m')} difieran solamente en unos pocos bits.

​ Por ejemplo podemos tener una función resistente a colisiones de 256 bits que no es resistente a la casi colisión porque se pueden encontrar casi-colisiones para los 224 bits de más a la izquierda.

Funciones con colisiones de hash parciales

Son funciones en las que invirtiendo cierto coste en procesamiento de CPU y memoria es posible encontrar en tiempos razonables dos entradas que produzcan resultados en los que sus bits se parezcan en cierto grado. Por ejemplo que se parezcan en un porcentaje de bits, o más comúnmente que sean iguales es los n-bits más significativos.

Por ejemplo con SHA1 para conseguir una colisión total con fuerza bruta necesitaríamos 2 160 {\displaystyle 2^{160}} comprobaciones o al menos 2 80 {\displaystyle 2^{80}} usando la paradoja del cumpleaños. Sin embargo si vamos reduciendo el número de bits más significativos que tienen que coincidir, el número de comprobaciones va bajando paulatinamente.

Resistencia a las preimágenes parciales

​ Una función resumen tiene resistencia a preimágenes parciales (en inglés Partial-preimage resistance) si es difícil encontrar una parte de la preimagen de un valor hash incluso conociendo el resto de la preimagen. Es decir, se debe recurrir a la fuerza bruta: si se desconocen t bits de la preimagen, se deben realizar en promedio 2n-t operaciones de hash encontrarlo.

A una función resumen resistente a preimágenes parciales también se le dice que es localmente de un solo sentido (del inglés local one-wayness).

Con normalización de datos

En algunas aplicaciones, las cadenas de entrada, depende la entrada uno nunca sabe 1313 pueden contener características que son irrelevantes cuando comparamos las cadenas. Por ejemplo en algunas aplicaciones las mayúsculas pueden ser irrelevantes. Por tanto para hallar el valor hash es interesante ignorar las distinciones no relevantes entre las cadenas de entrada. De esta forma cadenas distintas con diferencias no relevantes, tienen asociados valores hash iguales.

Continuidad. Efecto avalancha

Se dice que una función resumen es continua cuando una modificación minúscula (ej un bit) en la cadena de entrada ocasiona pequeños cambios en el valor hash.

En una función resumen se dice que no hay correlación cuando los bits de las cadenas de entrada y los bits de las cadenas de salida no están relacionados, es decir, cuando una modificación minúscula (por ejemplo un bit) en la cadena de entrada ocasiona cambios en el valor hash comparables a un cambio de cualquier otro tipo. Por tanto cualquier cambio en el mensaje original idealmente hace que cada uno de cualquier bit del valor resumen resultante cambie con probabilidad 0.5. Cuando esto sucede (o casi) se dice que se produce un efecto avalancha

En funciones resumen usadas para búsqueda normalmente se buscan funciones tan continuas como sea posible; de forma que entradas que difieran un poco deberían tener valores hash similares o iguales. Sin embargo la continuidad no es deseable para funciones resumen usadas para sumas de verificación o funciones criptográficas por evidentes razones.

Resistencia a la computación de nuevos valores hash

​ Una función resumen con clave K, h K ( x ) {\displaystyle h_{K}(x)} se dice que tiene resistencia a la computación de nuevos valores hash (en inglés Computation-resistance) si a partir de un rango de pares conocidos ( x i , h K ( x i ) ) {\displaystyle (x_{i},h_{K}(x_{i}))} no puede ser computado para un nuevo dato x h K ( x ) {\displaystyle h_{K}(x)} con x ≠ x i {\displaystyle x\neq x_{i}} para cualquier i, sin que K sea conocida.

Observar que la propiedad anterior implica que no debería ser posible calcular K a partir de un rango de pares conocidos ( x i , h K ( x i ) ) {\displaystyle (x_{i},h_{K}(x_{i}))} . A esta propiedad se la llama propiedad de no recuperación de clave (en inglés key non-recovery).

El estudio de este tipo de propiedades son muy útiles en el campo de la criptografía para los llamados códigos de autenticación de mensajes.

Familias de funciones resumen y propiedades asociadas

Motivación

Podríamos imaginarnos un algoritmo probabilístico de tiempo polinomial con dos mensajes codificados en el algoritmo que dan lugar a una colisión para una específica función resumen. El algoritmo simplemente devolvería los dos mensajes que causan la colisión. Crear tal algoritmo puede ser extremadamente difícil, pero una vez construido podría ser ejecutado en tiempo polinomial. Sin embargo, definiendo una familia de funciones resumen como una familia infinita de funciones resumen impide que la búsqueda de este algoritmo tenga éxito para todas las funciones resumen de la familia, porque hay infinitas. Por tanto las familias resumen proporcionan un mecanismo interesante para el estudio y categorización de las funciones resumen respecto a su fortaleza frente a la búsqueda de colisiones por parte de un adversario. Este tipo de estudios es muy útil en el campo de la criptografía para los llamados códigos de detección de modificaciones.

Concepto

Sea D = Σ   l {\displaystyle D=\Sigma \ ^{l}} , el dominio de la función, sea R = Σ   n {\displaystyle R=\Sigma \ ^{n}} el rango de la función. Sea K {\displaystyle {\mathcal {K}}} el conjunto de todas las posibles claves (teóricamente es infinito aunque en la práctica es finito),

Una familia de funciones hash H {\displaystyle {\mathcal {H}}} es un conjunto infinito de funciones hash de la forma H : K ×   D →   R {\displaystyle H:{\mathcal {K}}\times \ D\rightarrow \ R} (notación equivalente H K : D →   R ) {\displaystyle H_{K}:D\rightarrow \ R)} , donde cada función de la familia es indexada por una clave K ∈ K {\displaystyle K\in {\mathcal {K}}} que cumple las siguientes propiedades:

Ejemplo: SHA-1 es una sola instancia de función resumen, no una familia. Sin embargo SHA-1 puede ser modificado para construir una familia finita de funciones. M. Bellare y P. Rogaway​ modificaron SHA-1 de tal forma que la claves especifica las constantes usadas en la cuarta ronda de las funciones. En este caso el tamaño de la clave es de 128 bits y por tanto K = Σ   128 {\displaystyle {\mathcal {K}}=\Sigma \ ^{128}} , D = Σ   2 64 {\displaystyle D=\Sigma \ ^{2^{64}}} y R = Σ   160 ∗ 3 {\displaystyle R=\Sigma \ ^{160*3}} .

Observar que en la definición de una función resumen el dominio se puede formalizar como Σ   ∗ {\displaystyle \Sigma \ ^{*}} , sin embargo en una función resumen definida como instancia de un elemento de una familia de funciones resumen el dominio es Σ   l {\displaystyle \Sigma \ ^{l}} . Esto se debe a que para que se cumplan las propiedades de seguridad es necesario que el dominio sea muestreado uniformemente en tiempo polinomial. Una familia de funciones H {\displaystyle {\mathcal {H}}} puede siempre ser definida con aquel tamaño apropiado para acomodar cualquier mensaje que sea necesario.

Familia de funciones resumen resistente a colisiones

De forma informal una familia de funciones es familia de funciones resumen resistente a colisiones, también llamadas CRHF por sus siglas en inglés (Collision Resistant Hash Function), dada una función escogida aleatoriamente de la familia, un adversario es incapaz de obtener una colisión para ella.

Definición formal

​ Se dice que una familia de funciones resumen es una (t,ε)-familia resumen resistente a colisiones H {\displaystyle {\mathcal {H}}} con la forma H : Σ   k × Σ   n →   Σ   l {\displaystyle {\mathcal {H}}:\Sigma \ ^{k}\times \;\Sigma \ ^{n}\rightarrow \ \Sigma \ ^{l}} con n,l y k enteros positivos y n>=l, que satisfacen la siguiente condición: Sea F {\displaystyle {\mathcal {F}}} un buscador de colisiones de cadenas que para una entrada K en el espacio de claves usa tiempo ≤ t {\displaystyle \leq \;t} y obtiene como salida ⊥ {\displaystyle \bot \;} , un par x , x ′ ∈ Σ   n {\displaystyle x,x'\in \Sigma \ ^{n}} tal que H K ( x ) = H K ( x ′ ) {\displaystyle {\mathcal {H}}_{K}(x)={\mathcal {H}}_{K}(x')} . Para cada F {\displaystyle {\mathcal {F}}} ,

P r K < ϵ   {\displaystyle Pr_{K}<\epsilon \ } .

Observar que la probabilidad es tomada sobre las elecciones aleatorias de F {\displaystyle {\mathcal {F}}} .

Mirando esta definición se ve que son interesantes aquellas familias que tienen un t/ε suficientemente grande.

Estrictamente hablando hablamos de familias CRHF pero por simplicidad se suele hablar simplemente de CRHF.

La definición no se mete en cómo se eligen las funciones resumen de la familia. Este punto es crucial.​ En realidad, en cualquier aplicación de funciones resumen resistentes a colisiones, alguna parte P tienen que elegir una función de la familia de forma aleatoria para producir la descripción de la función. Es importante distinguir entre dos casos:

Evidentemente una familia CRHF elegible de forma pública (public-coin) también puede trabajar si uno elige o mantiene la elección de forma privada (secret-coin).

Función hash universal

Una función resumen universal es una familia de funciones donde la probabilidad de colisión entre dos textos escogidos es despreciable.

Definición formal

​ Una k-familia de funciones resumen universal es un conjunto H de funciones h : A → B {\displaystyle h:A\to \;B} tal que para cada elemento x 1 , x 2 , . . . , x k ∈ A {\displaystyle x_{1},x_{2},...,x_{k}\in A} y todos los (no necesariamente distintos) b 1 , b 2 , . . . , b k ∈ B {\displaystyle b_{1},b_{2},...,b_{k}\in B} .

P r h ∈ H = | B | − k {\displaystyle Pr_{h\in H}=|B|^{-k}}

​ Una familia de funciones resumen H {\displaystyle {\mathcal {H}}} es ε-casi universal o ε-AU (del inglés ε-almost universal) si es menor que ε la probabilidad de que dos entradas distintas m,n tengan el mismo valor resumen asociado, estando la función resumen elegida aleatoriamente entre los miembros de H {\displaystyle {\mathcal {H}}} . De la definición se percibe que son interesantes aquellas familias que tienen un valor pequeño de ε indicando que el adversario no puede encontrar un par de entradas que producen el mismo valor resumen, para una función resumen elegida aleatoriamente de entre los elementos la familia.

Familia de funciones hash universal de un solo sentido

Una familia de funciones resumen universal de un solo sentido, también llamadas UOWHF por sus siglas en inglés (Universal One-Way Hash Function), es una familia de funciones resumen universales donde, elegida una clave K aleatoriamente en el espacio de claves, dada una cadena x con valor resumen hK(x) es difícil encontrar un x' distinta de x tal que hK(x)=hK(x'). Al par (x,x') se le llama par de colisión

Definición formal

​ Se dice que una familia de funciones resumen F ′ {\displaystyle {\mathcal {F'}}} es (t,ε)-función resumen universal de un solo sentido (UOWHF) si no existe ningún adversario que en tiempo menor que t pueda ganar el siguiente juego con probabilidad mayor o igual que ε: El adversario escoge un valor x del Rango, entonces recibe una clave K del espacio de claves escogida de forma aleatoria. El juego se gana si encuentra un x' tal que hK(x)= hK(x').

El adversario está compuesto por dos algoritmos F ′ = ( F ′ 1 , F ′ 2 ) {\displaystyle {\mathcal {F'}}=({\mathcal {F'}}_{1},{\mathcal {F'}}_{2})} .

por tanto

P r K < ϵ   {\displaystyle Pr_{K}<\epsilon \ } .

siendo ⊥ {\displaystyle \bot \;} un par ( x , x ′ ) {\displaystyle (x,x')} con x ≠ x ′ {\displaystyle x\neq x'} tal que hK(x)= hK(x')

Observar que, al igual que en la definición de (t,ε)-CRHF la probabilidad es tomada sobre las elecciones aleatorias de F ′ {\displaystyle {\mathcal {F'}}} . La gran diferencia es que aquí la entrada x se fija primero.

Mirando esta definición se ve que son interesantes aquellas familias que tienen un t/ε suficientemente grande.

Comparación UOWHF y CRHF

Una familia UOWHF es una noción más débil que una familia CRHF. En una CRHF, al oponente primero se le da la clave y después ella o él tiene que producir la pareja de entradas que colisiona. Encontrar colisiones para un parámetro fijo de una UOWHF, puede que sea bastante más fácil, pero esto no ayudará a un oponente a violar la seguridad. Simon​ ha demostrado que existe un oráculo relativo al cual UOWHF existe, pero no CRHF.

Puzles Hash

Dados los siguientes valores:

El objetivo es encontrar una solución x, que forma parte de la entrada de la función.

y = H {\displaystyle \mathrm {H} } (id || x) ϵ Y

Se dice que una función hash es amistosa a los puzles, si para cualquier valor de salida y dentro del rango de valores de Y, en este caso como es SHA-256 sería 2256 valores posibles; con una id perteneciente a una muestra de alta incertidumbre, encontrar una x específica sería imposible en un tiempo significativamente menor a 2256 computaciones. La única forma de encontrarla es recorrer el espacio de forma aleatoria, debido a su tamaño. Esto es la característica primordial de esta propiedad y hace posible la descentralización.

Se puede reformular diciendo que, para resolver el puzle, se debe encontrar una x que genere un resultado contenido en el intervalo de Y.

La dificultad del puzle depende directamente del tamaño que tiene el rango Y.

La propiedad de resistencia a colisiones se cumple, pues existe un valor de x para cada valor de y del conjunto Y.

Funciones hash iterativas. Construcción de Merkle-Damgård

​ Muchas funciones hash se construyen mediante el proceso iterativo siguiente hasta conseguir el valor hash de la entrada X, h(X):

H0=IV Hi=f(xi,Hi-1), i=1,2,...,t y h(X)=g(Ht).

Al valor IV se le llama valor inicial y se representa por esas siglas por el término inglés Initial Value. A la función f se la llama función de ronda o función de compresión. A la función g se la llama transformación de salida. Lo que hace la función g es derivar a partir de Ht tantos bits como se quieran en la salida de la función. Frecuentemente g es la función identidad o un truncamiento de Ht.

En este tipo de descripción de funciones hash hay dos elecciones importantes que afectarán a las propiedades que tendrá la función:

A las funciones que se construyen mediante el anterior sistema se dice que son funciones resumen iterativas.

A esta forma de construcción recursiva se la conoce también como de Merkle-Damgård debido a que fue usado por primera vea por R. Merkle y I. Damgård independientemente en 1989.

Aplicaciones

Muchas de las aplicaciones de las funciones hash son relativas al campo de la criptografía (Cifradores, acumuladores criptográficos, firma digital, protocolos criptográficos de autenticación, etc.). La criptografía es una rama de las matemáticas que proporciona herramientas para conseguir seguridad en los sistemas de información. Las funciones resumen interesantes en el área de la criptografía se caracterizan por cumplir una serie de propiedades que permiten a las utilidades criptográficas que las utilizan ser resistentes frente ataques que intenten vulnerar la seguridad del sistema. A las funciones hash que cumplen estas propiedades se les llama funciones hash criptográficas.

A continuación se detallan algunas aplicaciones de las funciones hash:

Herramienta básica para la construcción de utilidades más complejas

Herramienta para proteger la integridad

Herramientas vinculadas a la autenticación y control de acceso

Herramienta para la identificación y la rápida comparación de datos

Se pueden usar funciones hash para proporcionar una identificación de objetos o situaciones. Una buena función hash para este propósito debería ser rápida y asegurarse de que dos objetos o situaciones que se considerar iguales den lugar al mismo valor hash. Observar que dos objetos o situaciones pueden ser considerados iguales sin ser idénticos. Por ejemplo podemos considerar iguales a dos ficheros que son distintos bit a bit porque realmente son la digitalización de la misma película. Es labor del diseño de la función hash capturar la esencia del criterio de igualdad. Por otra parte la evaluación de la función hash debería ser poco costosa para facilitar la rápida comparación de elementos candidatos a ser iguales y de esta forma poder implementar algoritmos de búsqueda rápidos.

Véase también

Referencias

  1. S.A, Ediciones Diaz de Santos; Guglieri, J. A. Calle (1996). Reingeniería y seguridad en el ciberespacio. Ediciones Díaz de Santos. ISBN 978-84-7978-273-3. Consultado el 25 de mayo de 2021. 
  2. AUTORES, VARIOS (2002). Diccionario de Internet. Editorial Complutense. ISBN 978-84-7491-676-8. Consultado el 25 de mayo de 2021. 
  3. H. Tiwari, K. Asawa "Cryptographic Hash Function: An Elevated View", European Journal of Scientific Research, 2010
  4. a b c d e f Menezes, Alfred J.; Van Oorschot, Paul C.; Vanstone, Scott A. (1996). Handbook of Applied Cryptography. CRC Press. ISBN 0-8493-8523-7
  5. D. Henrici,"Concepts, Protocols, And Architectures". Lectures Notes in Electrical Engineering. Springer-Verlag 2008.
  6. Bart Preneel,"The State of Cryptographic Hash functions.
  7. I. B. Damgard, "Collision free hash functions and public key signatures schemes". Advances in Cryptology- Crypto'89. LNCS 304 pages 203-216. Springer 1987
  8. Kazumaro Aoki, Yu Sasaki, "Meet in the midle preimage attacks against reduced SHA-0 and SHA-1"
  9. H. Tiwari et al., "Cryptographic Hash Function:An elevated View", European Jorunal of Scientific Research, Vol 43 pp.452-465. 2010
  10. W. R. Speirs,"Dynamic cryptographic hash functions", Thesis. Purdue University School.2007
  11. Peter Stavroulakis et al., "Handbook of Information and Communication Security", Spring 2010
  12. Dirk Henric,"RFID security and privacy: concepts, protocols, and architectures", Springer 2008
  13. Günter Schäfer,"Security in fixed and wireless networks: an introduction to securing data communications". Willey 2003
  14. William Speirs, "Dynamic cryptographic hash functions"
  15. Mihir Bellare and Phillip Rogaway. "Introduction to modern cryptography. Chapter 5 Archivado el 31 de marzo de 2007 en Wayback Machine..September 2005.
  16. Chum-Yuan Hsiao et al., "Finding Collision on a Public Road, or Do Secure Hash Functions Need Secret Coins?"
  17. "Signature Scheme in Multi-User Setting", The Institute of Electronics, Information and Communication Engineers, 2006
  18. Chun-Yuan Hsiao et al., "Finding Collisions on a Public Road, or Do Secure Hash Functions Need Secret Coins
  19. Mridul Nandi,"A Generic Method to Extend Message Space of a Strong Pseudorandom Permutation"
  20. A. R. Caldebank et al., "Improved Range Summable Random Variable Construction Algorithms", Proceedings of the 16 Annual ACM-SIAM Symposium on Discrete Algorithms
  21. Ted Krovetz,"Message Authentication on 64-Bit Architectures", Selected Areas in Cryptography, LNCS 4356, Springer.2006.
  22. Ilya Mironov,"Collision-Resistant No More: Hash-and-Sign Paradigm Revisited", Public Key Cryptography PKC 2006, LNCS 3958. Springer 2006
  23. D. Hong et al., "Higher Order Universal One-Way Hash Functions",Center for Information Security Technologies, Korea University, Seoul,Korea.
  24. Henk C. A. Van Tilborg,"Encyclopedia of Cryptography and Security" Second Edition. pg 1349. Springer 2011
  25. D. Simon, "Finding collisions on a one-way street:Can secure hash functions be based on general assumptions?, EUROCRYPT 98 pp 334-345, 1998
  26. H. Tiwari,"Cryptographic Hash Function: An Elevated View", European journal of Scientific Research, Vol 43 pp.452-465.2010
  27. Bart Preneel,"Cryptographic Primitives for Information Authentication-State of the Art", Katholieke Universiteit Leuven, COSIC'97 LNCS 1528 1998
  28. Chris Mitchell,"Developments in Security Mechanism Standards", "Internet and Intranet Security Management: Risks and Solutions", editado por L. Janczewski,Idea Group Publishing.2000
  29. Ivan Bjerre Damgård, "Collision free hash functions and public key signature schemes Archivado el 22 de diciembre de 2015 en Wayback Machine.",Advances in Cryptology - EUROCRYPT'87, Lncs 304 PP 203-216. Springer-Verlag Berlin Heidelberg 1988
  30. P. Cano et al. A Review of Audio Fingerprinting Journal of VLSI Signal Processing 41, 271–284, 2005
  31. Loubna Bouarfa. Research Assignment on Video Fingerprinting Faculty of Electrical Engineering, Mathematics and Computer Science Delft University of Technology

Enlaces externos