Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Se ha sugerido que este artculo o seccin sea fusionado con hashing (discusin).
Una vez que hayas realizado la fusin de contenidos, pide la fusin de historiales aqu.
A las funciones hash (adopcin ms o menos directa del trminoingls hash function)
tambin se les llama funciones picadillo,funciones resumen o funciones de
digest (adopcin ms o menos directa del trmino ingls equivalente digest
function)1 2 3Una funcin hash H es una funcin computable mediante unalgoritmo,
H: U M
x h(x),
que tiene como entrada un conjunto de elementos, que suelen sercadenas, y los
convierte (mapea) en un rango de salida finito, normalmente cadenas de longitud
fija. Es decir, la funcin acta como una proyeccin del conjunto U sobre el
conjunto M.
Observar 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 nmeros
de enteros ya que podemos considerar que la longitud fija es la del nmero con
mayor nmero de cifras. Todos los nmeros se pueden convertir al nmero
especificado de cifras simplemente anteponiendo ceros.
Normalmente el conjunto U tiene un nmero elevado de elementos y M es un
conjunto de cadenas con un nmero ms o menos pequeo de smbolos. Por esto
se dice que estas funciones resumen datos del conjunto dominio.
La idea bsica de un valor hash es que sirva como una representacin compacta
de la cadena de entrada. Por esta razn decimos que
estas funciones resumen datos del conjunto dominio.
ndice
[ocultar]
2Terminologa asociada
3Parmetros adicionales
4Propiedades
o
4.1Bajo costo
4.2Compresin
4.3Uniforme
4.6Determinista
5.1Motivacin[17]
5.2Concepto
5.3.1Definicin formal
5.4.1Definicin formal[23]
5.5.1Definicin formal
7Aplicaciones
8Vase tambin
9Referencias
10Enlaces externos
Terminologa asociada[editar]
Al conjunto U se le llama dominio de la funcin 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 funcin hash. A un elemento de M se le
llama valor hash, cdigo hash o simplemente hash.
Se dice que se produce una colisin cuando dos entradas distintas de la funcin
de hash producen la misma salida. De la definicin de funcin hash podemos decir
que U, el dominio de la funcin, puede tener infinitos elementos. Sin embargo M,
el rango de la funcin, tiene un nmero finito de elementos debido a que el tamao
de sus cadenas es fijo. Por tanto la posibilidad de existencia de colisiones es
intrnseca a la definicin de funcin hash. Una buena funcin de hash es una que
tiene pocas colisiones en el conjunto esperado de entrada. Es decir, se desea que
la probabilidad de colisin sea muy baja.
Parmetros adicionales[editar]
La definicin formal dada, a veces se generaliza para poder aprovechar las
funciones hash en otros mbitos. Para ello a la funcin hash se le aaden nuevos
parmetros de forma que el valor hash no es slo funcin del contenido en s, sino
adems de otros nuevos factores.
Para hallar valores hash de ficheros a veces se usan, adems del contenido en s,
diversos parmetros como el nombre del archivo, su longitud, hora de creacin,
etc.
Otras veces se aaden parmetros que permiten configurar el comportamiento de
la funcin. Por ejemplo, la funcin hash puede recibir como parmetro una funcin
de generacin de valores pseudoaleatorios que es usada dentro del algoritmo de
la funcin hash.
Otros ejemplos de parmetros son el uso de valores sal, el uso de claves secretas,
el uso de parmetros que especifican el rango de la funcin (funciones hash de
rango variable), el uso de parmetros que especifican el nivel de seguridad que se
quiere en el valor hash de salida (funciones hash dinmicas),....
Una funcin hash con clave HK (en ingls keyed hash function) es una funcin
hash H que tiene un parmetro secreto K que pertenece al conjunto posible de
claves
y en la que para una entrada x, hK(x) es el valor hash de x. Al resto de
funciones hash se dice que son sin clave (en ingls unkeyed hash function).
Propiedades[editar]
La calidad de una funcin hash viene definida con base en la satisfaccin de
ciertas propiedades deseables en el contexto en el que se va a usar.
Bajo costo[editar]
Calcular el valor hash necesita poco costo (computacional, de memoria,...).
Compresin[editar]
Una funcin hash comprime datos si puede mapear un dominio con datos de
longitud muy grande a datos con longitud ms pequea
Uniforme[editar]
Se dice que una funcin hash es uniforme cuando para una clave elegida
aleatoriamente es igualmente probable tener un valor hash determinado,
independientemente de cualquier otro elemento.
Para una funcin hash H uniforme del tipo H:{0,1} m{0,1}n, es decir:
De rango variable[editar]
En algunas funciones hash el rango de valores hash puede ser diferente a lo
largo del tiempo. Ejemplo: Funciones hash usadas para tablas hash que
necesitan expandirse. En estos casos a la funcin hash se le debe pasar un
parmetro que le permita saber en qu rango se mueve la ejecucin para
hallar el valor hash.
implica
Cuando no se cumple la propiedad de inyectividad se dice que
hay colisiones. Hay una colisin cuando
Determinista[editar]
Una funcin 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 slo sobre la cadena de entrada.
Ejemplos de funciones hash no-deterministas son aquellas funciones hash
que dependen de parmetros externos, tales como generadores de nmeros
pseudoaleatorios o la fecha. Tampoco son deterministas aquellas funciones
hash que dependen de la direccin de memoria en la que est almacenada la
cadena de entrada. Esa direccin es accidental y no se considera un cambio
de la cadena entrada en s. De hecho puede cambiar dinmicamente durante
la propia ejecucin del algoritmo de la funcin hash.
Una funcin hash se dice que es una funcin hash de un solo sentido o
que es OWHF (del ingls One-Way Hash Function) si tiene las propiedades
de resistencia a preimagen y de resistencia a segunda preimagen. Es
decir, es difcil encontrar una entrada cuya hash sea un valor hash
preespecificado.
Observar que es diferente a la definicin general que se hace de funciones de
un solo sentido:
12
Una funcin se dice que es una funcin de un solo sentido o que es OWF si
para cada x del dominio de la funcin, es fcil computar f(x), pero para todo y del
rango de f, es computacionalmente intratable encontrar cualquier x tal que y=f(x).
La diferencia entre OWHF y OWF es que OWF no requiere que sea funcin hash
ni que sea resistente a segunda preimagen.
En algunos trabajos a estas funciones se les llama funciones hash
de un slo sentido dbiles (del ingls strong one way hash function)
para resaltar que es dbil en contraste con CRHF (que es fuerte)
debido a que al cumplir la propiedad de resistencia a segunda
preimagen no hay libre eleccin en la seleccin del valor x, y por tanto
del valor h(x), en el que se tiene que producir la colisin.
Resistencia a la casi colisin[editar]
13
14
.A
Concepto[editar]
Sea
, el dominio de la funcin, sea
el rango de
la funcin. Sea
el conjunto de todas las posibles claves
(tericamente es infinito aunque en la prctica es finito),
es un conjunto infinito de
(notacin
resistente a colisiones
con la forma
con n,l y k enteros positivos y n>=l, que satisfacen la siguiente
condicin: Sea
un buscador de colisiones de cadenas que para un
entrada K en el espacio de claves usa tiempo
y obtiene como
salida
cada
, un par
tal que
. Para
,
.
La eleccin aleatoria se puede hacer pblica (o 'publiccoin'). La eleccin aleatoria puede ser revelada como parte
de la descripcin de la funcin.
24
por tanto
.
siendo
un par
con
H0=IV
Hi=f(xi,Hi-1), i=1,2,...,t y
h(X)=g(Ht).
Aplicaciones[editar]
Las funciones hash son usadas en mltiples campos.
Ejemplos:
En la firma digital