función hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

16
7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 1/16 Función hash (Redirigido desde «Hash») Se ha sugerido que este artículo o sección sea fusionado con hashing  (discusión). Una vez que hayas realizado la fusión de contenidos, pide la fusión de historiales aquí. Una función de hash en funcionamiento.  A las funciones hash (adopción más o menos directa del términoinglés hash function) también se les llama funciones picadillofunciones resumen o funciones de digest (adopción más o menos directa del término inglés e!ui"alente digest function) #  $  % Una función hash H es una función computable mediante unalgoritmo  &  '   x  ' h(  x ) !ue tiene como entrada un conunto de elementos !ue suelen ser cadenas los con"ierte (mapea) en un rango de salida finito normalmente cadenas de longitud fia. *s decir la función act+a como una proección del conunto U sobre el conunto ,. -bser"ar !ue , puede ser un conunto definido de enteros. *n este caso podemos considerar !ue la longitud es fia si el conunto es un rango de n+meros de enteros a !ue podemos considerar !ue la longitud fia es la del n+mero con maor n+mero de cifras. odos los n+meros se pueden con"ertir al n+mero especificado de cifras simplemente anteponiendo ceros. /ormalmente el conunto U tiene un n+mero ele"ado de elementos , es un conunto de cadenas con un n+mero más o menos pe!ue0o de s1mbolos. 2or esto se dice !ue estas funciones resumen datos del conunto dominio. 3a idea básica de un "alor hash es !ue sir"a como una representación compacta de la cadena de entrada. 2or esta ra4ón decimos !ue estas funciones resumen datos del conunto dominio. Índice  5ocultar#-r1genes del término $erminolog1a asociada %2arámetros adicionales

Upload: josue-sanchez

Post on 05-Mar-2016

214 views

Category:

Documents


0 download

DESCRIPTION

hash javaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

TRANSCRIPT

Page 1: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 1/16

Función hash(Redirigido desde «Hash»)

Se ha sugerido que este artículo o sección sea fusionado con hashing  (discusión).

Una vez que hayas realizado la fusión de contenidos, pide la fusión de historiales  aquí.

Una función de hash en funcionamiento.

 A las funciones hash (adopción más o menos directa del términoinglés hash function)también se les llama funciones picadillofunciones resumen o funciones dedigest (adopción más o menos directa del término inglés e!ui"alente digestfunction)# $ %Una función hash H es una función computable mediante unalgoritmo

 

H & U  ' M 

  x  ' h( x )

!ue tiene como entrada un conunto de elementos !ue suelen ser cadenas los

con"ierte (mapea) en un rango de salida finito normalmente cadenas de longitudfia. *s decir la función act+a como una proección del conunto U sobre elconunto ,.

-bser"ar !ue , puede ser un conunto definido de enteros. *n este casopodemos considerar !ue la longitud es fia si el conunto es un rango de n+merosde enteros a !ue podemos considerar !ue la longitud fia es la del n+mero conmaor n+mero de cifras. odos los n+meros se pueden con"ertir al n+meroespecificado de cifras simplemente anteponiendo ceros.

/ormalmente el conunto U tiene un n+mero ele"ado de elementos , es unconunto de cadenas con un n+mero más o menos pe!ue0o de s1mbolos. 2or estose dice !ue estas funciones resumen datos del conunto dominio.

3a idea básica de un "alor hash es !ue sir"a como una representación compactade la cadena de entrada. 2or esta ra4ón decimos !ueestas funciones resumen datos del conunto dominio.

Índice

  5ocultar 6 

• #-r1genes del término

• $erminolog1a asociada

•%2arámetros adicionales

Page 2: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 2/16

o %.#7unciones hash con cla"e

• 82ropiedades

o 8.#9ao costo

o 8.$:ompresión

o 8.%Uniforme

o 8.8;e rango "ariable

o 8.<=necti"idad. 7unción hash perfecta

o 8.>;eterminista

o 8.?2ropiedades para anali4ar la resistencia frente a colisiones

8.?.#Resistencia a la primera imagen

8.?.$Resistencia a la segunda preimagen

8.?.%Resistencia a colisiones (:RH7)

8.?.87unción hash de un solo sentido (-@H7)

8.?.<Resistencia a la casi colisión

8.?.>Resistencia a las preimágenes parciales

o 8.:on normali4ación de datos

o 8.B:ontinuidad. *fecto a"alancha

o 8.#CResistencia a la computación de nue"os "alores hash

• <7amilias de funciones hash propiedades asociadas

o <.#,oti"ación5#?6

o <.$:oncepto

o <.%7amilia de funciones hash resistente a colisiones

<.%.#;efinición formal

o <.87unción hash uni"ersal

<.8.#;efinición formal 5$%6

o

<.<7amilia de funciones hash uni"ersal de un solo sentido

<.<.#;efinición formal

Page 3: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 3/16

o <.>:omparación U-@H7 :RH75$?6

• >7unciones hash iterati"as. :onstrucción de ,erDleE;amgFrd

• ?Aplicaciones

• Géase también

• BReferencias

• #C*nlaces eternos

Orígenes del término5editar 6

*l término hash pro"iene aparentemente de la analog1a con el significadoestándar (en inglés) de dicha palabra en el mundo real& picar y mezclar . ;onaldInuth cree !ue H. 2. 3uhn empleado de =9, fue el primero en utili4ar el concepto

en un memorándum fechado en enero de #B<%. Ju utili4ación masi"a no fue hastadespués de #C a0os.

Terminología asociada5editar 6

 Al conunto U se le llama dominio de la función hash. A un elemento de U se lellama preimagen o dependiendo del conteto clave o mensaje.

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

Je dice !ue se produce una colisión cuando dos entradas distintas de la funciónde hash producen la misma salida. ;e la definición de función hash podemos decir 

!ue U el dominio de la función puede tener infinitos elementos. Jin embargo ,el rango de la función tiene un n+mero finito de elementos debido a !ue el tama0ode sus cadenas es fio. 2or tanto la posibilidad de eistencia de colisiones esintr1nseca a la definición de función hash. Una buena función de hash es una !uetiene pocas colisiones en el conunto esperado de entrada. *s decir se desea !uela probabilidad de colisión sea mu baa.

Parámetros adicionales5editar 6

3a definición formal dada a "eces se generali4a para poder apro"echar lasfunciones hash en otros ámbitos. 2ara ello a la función hash se le a0aden nue"osparámetros de forma !ue el "alor hash no es sólo función del contenido en s1 sino

además de otros nue"os factores.2ara hallar "alores hash de ficheros a "eces se usan además del contenido en s1di"ersos parámetros como el nombre del archi"o su longitud hora de creaciónetc.

-tras "eces se a0aden parámetros !ue permiten configurar el comportamiento dela función. 2or eemplo la función hash puede recibir como parámetro una funciónde generación de "alores pseudoaleatorios !ue es usada dentro del algoritmo dela función hash.

-tros eemplos de parámetros son el uso de "alores sal el uso de cla"es secretasel uso de parámetros !ue especifican el rango de la función (funciones hash derango "ariable) el uso de parámetros !ue especifican el ni"el de seguridad !ue se

!uiere en el "alor hash de salida (funciones hash dinámicas)....

Funciones hash con clave5editar 6

Page 4: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 4/16

Una función hash con clave HI (en inglés keyed hash function) es una funciónhash H !ue tiene un parámetro secreto I !ue pertenece al conunto posible de

cla"es en la !ue para una entrada hI() es el "alor hash de . Al resto defunciones hash se dice !ue son sin clave (en inglés unkeyed hash function).

Propiedades5editar 63a calidad de una función hash "iene definida con base en la satisfacción deciertas propiedades deseables en el conteto en el !ue se "a a usar.

Bajo costo5editar 6

:alcular el "alor hash necesita poco costo (computacional de memoria...).

Compresión5editar 6

Una función hash comprime datos si puede mapear un dominio con datos delongitud mu grande a datos con longitud más pe!ue0a

Uniforme5editar 6

Je dice !ue una función hash es uniforme cuando para una cla"e elegidaaleatoriamente es igualmente probable tener un "alor hash determinadoindependientemente de cual!uier otro elemento.

2ara una función hash H uniforme del tipo H&KC#Lm'KC#Ln es decir&

• 3as cadenas están construidas sobre un alfabeto de $ s1mbolos (Alfabeto

binario)

• *l dominio es el conunto de las cadenas de longitud m

• *l rango es el conunto de las cadenas de longitud n

podemos decir !ue a cada resumen le corresponde $mEn mensaes !ue laprobabilidad de !ue dos mensaes den como resultado la misma salida es $En

2ara algoritmos de b+s!ueda si todas las entradas son igualmente probablesse busca esta propiedad para minimi4ar el n+mero de colisiones a !uecuantas más colisiones haa será maor el tiempo de eecución de lasb+s!uedas.

De rango variable5editar 6

*n algunas funciones hash el rango de "alores hash puede ser diferente a lolargo del tiempo. *emplo& 7unciones hash usadas para tablas hash !uenecesitan epandirse. *n estos casos a la función hash se le debe pasar unparámetro !ue le permita saber en !ué rango se mue"e la eecución parahallar el "alor hash.

Inyectividad Función hash perfecta5editar 6

Je dice !ue la función hash es inecti"a cuando cada dato de entrada semapea a un "alor hash diferente. *n este caso se dice !ue la función hash esperfecta. 2ara !ue se dé es necesario !ue la cardinalidad del conuntodominio sea inferior o igual a la cardinalidad del conunto imagen./ormalmente sólo se dan funciones hash perfectas cuando las entradas estánpreestablecidas. *emplo&,apear los d1as del a0o en n+meros del # al %>>seg+n el orden de aparición.

7ormali4ación&

Page 5: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 5/16

 implica

:uando no se cumple la propiedad de inecti"idad se dice !ue

ha colisiones. Ha una colisión cuando

Determinista5editar 6

Una función hash se dice !ue es determinista cuando dada una cadena deentrada siempre de"uel"e el mismo "alor hash. *s decir el "alor hash es elresultado de aplicar un algoritmo !ue opera sólo sobre la cadena de entrada.*emplos de funciones hash noEdeterministas son a!uellas funciones hash!ue dependen de parámetros eternos tales como generadores de n+merospseudoaleatorios o la fecha. ampoco son deterministas a!uellas funcioneshash !ue dependen de la dirección de memoria en la !ue está almacenada lacadena de entrada. *sa dirección es accidental no se considera un cambiode la cadena entrada en s1. ;e hecho puede cambiar dinámicamente durantela propia eecución del algoritmo de la función hash.

!ropiedades para anali"ar la resistencia frente a

colisiones5editar 6

*l estudio de este tipo de propiedades es mu +til en el campo dela criptograf1a para los llamados Mcódigos de detección de modificacionesM.

#esistencia a la primera imagen5editar 68 Je dice !ue una función hash tiene resistencia a la primera preimagen osimplemente !ue tiene resistencia a preimagen (del inglés preimage$resistant) si dado un "alor hash y  es computacionalmente intratableencontrar x  tal !ueh(x)=y .

#esistencia a la segunda preimagen5editar 6<

 Je dice !ue una función hash tiene resistencia a la segundapreimagen (en inglés second preimage$resistant) si dado un mensae es

computacionalmente intratable encontrar un M tal !ue h()Nh(M).

#esistencia a colisiones %C#&F'5editar 6> Je dice !ue una función hash tiene resistencia a colisiones o !uees resistente a colisiones o C#&F (del inglésCollision Resistant Hash

Function) si encontrar un par con tal !ue escomputacionalmente intratable. *s decir es dif1cil encontrar dos entradas !uetengan el mismo "alor hash.

:omo encontrar una segunda preimagen no puede ser más fácil !ue

encontrar una colisión entonces la resistencia a colisiones inclue lapropiedad de resitencia a la segunda preimagen.?  2or otro lado se puededecir !ue la maor1a de las funciones hash :RH7s son resistentes apreimagen.B 3a resistencia a colisisiones implica resistencia a preimagen parafunciones hash con salida aleatoria uniforme.#C

*n algunos trabaos a estas funciones se les llama funciones hash de unsólo sentido fuertes (del inglés strong one way hash function) para resaltar!ue es fuerte debido a !ue ha libre elección de los dos "alores e .

Función hash de un solo sentido %()&F'5editar 6## Una función hash se dice !ue es una función hash de un solo sentido o

!ue es ()&F (del inglés ne!"ay Hash Function) si tiene las propiedadesde resistencia a preimagen  de resistencia a segunda preimagen. *s

Page 6: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 6/16

decir es dif1cil encontrar una entrada cua hash sea un "alor hashpreespecificado.

-bser"ar !ue es diferente a la definición general !ue se hace de funciones deun solo sentido&

#$ Una función se dice !ue es una función de un solo sentido o !ue es ()F si

para cada del dominio de la función es fácil computar f() pero para todo delrango de f es computacionalmente intratable encontrar cual!uier tal !ue Nf().

3a diferencia entre -@H7 -@7 es !ue -@7 no re!uiere !ue sea función hashni !ue sea resistente a segunda preimagen.

*n algunos trabaos a estas funciones se les llama funciones hashde un sólo sentido d*biles (del inglés strong one way hash function)para resaltar !ue es débil en contraste con C#&F (!ue es fuerte)debido a !ue al cumplir la propiedad de resistencia a segundapreimagen no ha libre elección en la selección del "alor por tantodel "alor h() en el !ue se tiene !ue producir la colisión.

#esistencia a la casi colisión5editar 6#% H es resistente a la casi colisión (en inglés near!colission

resistance) si es dif1cil encontrar dos mensaes

con para las cuales sus imágenes difieran solamente en unos pocos bits.

#8 2or eemplo podemos tener una función resistente a colisiones de$<> bits !ue no es resistente a la casi colisión por!ue se puedenencontrar casiEcolisiones para los $$8 bits de más a la i4!uierda.

#esistencia a las preim+genes parciales5editar 6#< Una función hash tiene resistencia a preimágenes parciales (en

inglés #artial!preimage resistance) si es dif1cil encontrar una parte dela preimagen de un "alor hash incluso conociendo el resto de lapreimagen. *s decir se debe recurrir a la fuer4a bruta& si sedesconocen t bits de la preimagen se deben reali4ar en promedio $nE

t operaciones de hash encontrarlo.

 A una función hash resistente a preim+genes parciales también sele dice !ue es localmente de un sólo sentido (del inglés local one!wayness).

Con normali"ación de datos5editar 6

*n algunas aplicaciones las cadenas de entrada pueden contenercaracter1sticas !ue son irrele"antes cuando comparamos las cadenas.

2or eemplo en algunas aplicaciones las ma+sculas pueden serirrele"antes. 2or tanto para hallar el "alor hash es interesante ignorarlas distinciones no rele"antes entre las cadenas de entrada. ;e estaforma cadenas distintas con diferencias no rele"antes tienenasociados "alores hash iguales.

Continuidad ,fecto avalancha5editar 6

Je dice !ue una función hash es continua cuando una modificaciónmin+scula (e un bit) en la cadena de entrada ocasiona pe!ue0oscambios en el "alor hash.

*n una función hash se dice !ue no ha correlación cuando los bitsde las cadenas de entrada los bits de las cadenas de salida noestán relacionados es decir cuando una modificación min+scula (eun bit) en la cadena de entrada ocasiona cambios en el "alor hash

Page 7: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 7/16

comparables a un cambio de cual!uier otro tipo. 2or tanto cual!uiercambio en el mensae original idealmente hace !ue cada uno decual!uier bit del "alor hash resultante cambie con probabilidad C.<.:uando esto sucede (o casi) se dice !ue se produce un efectoavalancha

*n funciones hash usadas para b+s!ueda normalmente se buscanfunciones tan continuas como sea posibleO de forma !ue entradas !uedifieran un poco deber1an tener "alores hash similares o iguales. Jinembargo la continuidad no es deseable para funciones hash usadaspara sumas de "erificación o funciones criptográficas por e"identesra4ones.

#esistencia a la computación de nuevos valoreshash5editar 6

#> Una función hash con cla"e I se dice !uetiene resistencia a la computación de nuevos valores hash  (eninglés Computation$resistance) si a partir de un rango de pares

conocidos no puede ser computado para un nue"o

dato con para cual!uier i sin !ue I sea conocida.

-bser"ar !ue la propiedad anterior implica !ue no deber1a ser posible

calcular I a partir de un rango de pares conocidos . Aesta propiedad se la llama propiedad de no recuperación declave (en inglés key non$recovery).

*l estudio de este tipo de propiedades son mu +tiles en el campo dela criptograf1a para los llamados Mcódigos de autenticación demensaesM

Familias de funciones hash y propiedadesasociadas5editar 6

-otivación#? 5editar 6

2odr1amos imaginarnos un algoritmo probabil1stico de tiempopolinomial con dos mensaes codificados en el algoritmo !ue danlugar a una colisión para una espec1fica función hash. *l algoritmosimplemente de"ol"er1a los dos mensaes !ue causan la colisión.:rear tal algoritmo puede ser etremadamente dif1cil pero una "e4construido podr1a ser eecutado en tiempo polinomial. Jin embargodefiniendo una familia de funciones hash como una familia infinita de

funciones hash nos impide !ue la b+s!ueda de este algoritmo tengaéito para todas las funciones hash de la familia por!ue ha infinitas.2or tanto las familias hash nos proporcionan un mecanismointeresante para el estudio categori4ación de las funciones hashrespecto a su fortale4a frente a la b+s!ueda de colisiones por parte deun ad"ersario. *ste tipo de estudios es mu +til en el campo dela criptograf1a para los llamados Mcódigos de detección demodificacionesM.

Concepto5editar 6

Jea el dominio de la función sea el rango de

la función. Jea el conunto de todas las posibles cla"es(teóricamente es infinito aun!ue en la práctica es finito)

Page 8: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 8/16

Una familia de funciones hash  es un conunto infinito de

funciones hash de la forma (notación

e!ui"alente donde cada función de la familia es

indeada por una cla"e !ue cumple las siguientespropiedades&

•  es accesible es decir ha un algoritmo probabil1stico de tiempo

polinomial !ue sobre una entrada de"uel"e una instancia

•  es muestreable es decir ha un algoritmo probabil1stico de

tiempo polinomial !ue selecciona uniformemente elementos

de .

•  es computable en tiempo polinomial es decir ha un

algoritmo de tiempo polinomial (en l) !ue sobre una

entrada computa .

*emplo& JHAE# es una sola instancia de función hash no una familia.Jin embargo JHAE# puede ser modificado para construir una familiafinita de funciones. ,. 9ellare 2. RogaPa# modificaron JHAE# detal forma !ue la cla"es especifica las constantes usadas en la cuartaronda de las funciones. *n este caso el tama0o de la cla"e es de #$

bits por tanto .

-bser"ar !ue en la definición de una función hash el dominio se

puede formali4ar como sin embargo en una función hashdefinida como instancia de un elemento de una familia de funciones

hash el dominio es . *sto es debido a !ue para !ue se cumplan

las propiedades de seguridad es necesario !ue el dominio seamuestreado uniformemente en tiempo polinomial. Una familia de

funciones puede siempre ser definida con a!uel tama0o apropiadopara acomodar cual!uier mensae !ue sea necesario.

Familia de funciones hash resistente acolisiones5editar 6

;e forma informal una familia de funciones es familia de funcioneshash resistente a colisiones también llamadasC#&F por sus siglasen inglés (Collision Resistant Hash Function) dada una funciónescogida aleatoriamente de la familia un ad"ersario es incapa4 deobtener una colisión para ella.#B

Definición formal5editar 6$C Je dice !ue una familia de funciones hash es una %t./'$familia hash

resistente a colisiones  con la formacon nl D enteros positi"os nQNl !ue satisfacen la siguiente

condición& Jea un buscador de colisiones de cadenas !ue para un

entrada I en el espacio de cla"es usa tiempo obtiene como

salida un par tal !ue . 2ara

cada

.

-bser"ar !ue la probabilidad es tomada sobre las elecciones

aleatorias de .

Page 9: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 9/16

,irando esta definición se "e !ue son interesantes a!uellasfamilias !ue tienen un tS suficientemente grande.

*strictamente hablando hablamos de familias :RH7 pero porsimplicidad se suele hablar simplemente de :RH7.

3a definición no se mete en cómo se eligen las funciones hash de

la familia. *ste punto es crucial.$# *n realidad en cual!uieraplicación de funciones hash resistentes a colisiones algunaparte 2 tienen !ue elegir una función de la familia de formaaleatoria para producir la descripción de la función. *s importantedistinguir entre dos casos&

• 3a elección aleatoria se puede hacer p0blica (o Mpublic$coin1). 3a elección aleatoria puede ser re"elada como partede la descripción de la función.

• 3a elección aleatoria se tiene 2ue mantener secreta (o

Msecret$coin1). 3a re"elación la elección aleatoria reali4adapuede !ue permita encontrar colisiones. 2or tanto 2 tiene !uemantener secreta la elección después de producir ladescripción de la función.

*"identemente una familia :RH7 elegible de forma p+blica(publicEcoin) también puede trabaar si uno elige o mantiene laelección de forma pri"ada (secretEcoin).

Función hash universal5editar 6

Una función hash universal es un familia de funciones donde laprobabilidad de colisión entre dos tetos escogidos esdespreciable.$$

Definición formal$% 5editar 6

Una k$familia de funciones hash universal es un conunto H de

funciones tal !ue para cada

elemento todos los (no necesariamente

distintos) .

$8 Una familia de funciones hash es /$casi universal o /$3U (del inglés $!almost uni%ersal ) si es menor !ue S laprobabilidad de !ue dos entradas distintas mn tengan el mismo

"alor hash asociado estando la función hash elegidaaleatoriamente entre los miembros de . ;e la definición sepercibe !ue son interesantes a!uellas familias !ue tienen un "alor pe!ue0o de S indicando !ue el ad"ersario no puede encontrar unpar de entradas !ue producen el mismo "alor hash para unafunción hash elegida aleatoriamente de entre los elementos lafamilia.

Familia de funciones hash universal de un solosentido5editar 6

Una familia de funciones hash universal de un solo sentidotambién llamadas U()&F por sus siglas en inglés (Uni%ersal

ne!"ay Hash Function) es una familia de funciones hashuni"ersales donde elegida una cla"e I aleatoriamente en el

Page 10: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 10/16

espacio de cla"es dada una cadena con "alor hash hI() esdif1cil encontrar un M distinta de tal !ue hI()NhI(M). Al par (M)se le llama par de colisión

Definición formal5editar 6

$< $> Je dice !ue una familia de funciones hash es %t./'$función hash universal de un sólo sentido (U()&F) si noeiste ning+n ad"ersario !ue en tiempo menor !ue t pueda ganarel siguiente uego con probabilidad maor o igual !ue S& *lad"ersario escoge un "alor del Rango entonces recibe unacla"e I del espacio de cla"es escogida de forma aleatoria. *l uego se gana si encuentra un M tal !ue hI()N hI(M).

*l ad"ersario está compuesto por dos

algoritmos .

•  sólo tiene como parámetro de entrada el conunto de la

familia de funciones hash. 2roduce como salida Jtate. es el "alor hash obeti"o Jtate es alguna información etra!ue puede audar a A$ a encontrar la colisión.

•  tiene como parámetros de entrada I Jtate produce

como salida M

por tanto

.

siendo un par con tal !ue hI()N hI(M)

-bser"ar !ue al igual !ue en la definición de (tS)E:RH7 la

probabilidad es tomada sobre las elecciones aleatorias de. 3a gran diferencia es !ue a!u1 la entrada se fia primero.

,irando esta definición se "e !ue son interesantes a!uellasfamilias !ue tienen un tS suficientemente grande.

Comparación U()&F y C#&F$? 5editar 6

Una familia U-@H7 es una noción más débil !ue una familia:RH7. *n una :RH7 a el oponente primero se le da la cla"e después ella o él tiene !ue producir la parea de entradas!ue colisiona. *ncontrar colisiones para un parámetro fio deuna U-@H7 puede !ue sea bastante más fácil pero esto noaudará a un oponente a "iolar la seguridad. Jimon$ hademostrado !ue eiste un oráculo relati"o a el cual U-@H7eiste pero no :RH7.

Funciones hash iterativas. Construcciónde Merle!"amg#rd5editar 6

$B %C %# ,uchas funciones hash se construen mediante elproceso iterati"o siguiente hasta conseguir el "alor hash de laentrada T h(T)&

Page 11: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 11/16

• *l n+mero de bits de la entrada T (en principio de longitud

arbitraria) tiene !ue ser m+ltiplo de la longitud de blo!ue.2ara conseguirlo se tiene una regla de padding !uealarga la entrada a una longitud aceptable. /ormalmenteesta regla consiste en a0adir al final de la entrada unoss1mbolos adicionales a los !ue se

llama relleno o padding.

• Je di"ide la entrada en blo!ues de longitud fia.

-bteniendo un conunto de blo!ues #...t.

• Je reali4a un proceso iterati"o de la siguiente forma&

HCN=G

HiNf(iHiE#) iN#$...t

h(T)Ng(Ht).

 Al "alor =G se le llama valor inicial  se representa poresas siglas por el término inglés &nitial 'alue. A la funciónf se la llama función de ronda o función decompresión. A la función g se la llama transformaciónde salida. 3o !ue hace la función g es deri"ar a partir deHt tantos bits como se !uieran en la salida de la función.7recuentemente g es la función identidad o untruncamiento de Ht.

*n este tipo de descripción de funciones hash ha doselecciones importantes !ue afectarán a las propiedades!ue tendrá la función&

• 3a elección de la regla de padding. Ji lo !ue se

!uiere es e"itar colisiones es recomendable !ue laregla de padding no permita !ue eistan dosmensaes !ue sean rellenados a el mismo mensae.

• 3a elección de "alor inicial (=G). ;eber1a ser definido

como parte de la descripción de la función hash.

 A las funciones !ue se construen mediante el anteriorsistema se dice !ue son son funciones hash iterativas.

 A esta forma de construcción recursi"a se la conocetambién como de -erkle$Damg4rd debido a !ue fueusado por primera "ea por R. ,erDle =. ;amgFrd

independientemente en #BB.

 $plicaciones5editar 6

3as funciones hash son usadas en m+ltiples campos.*emplos&

• Herramienta básica para la construcción de utilidades

más compleas&

• :onstrucción de estructuras de datos& Ju uso en

distintas estructuras de datos hacen más

eficientes las b+s!uedas. *. tablas hash.

Page 12: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 12/16

• :onstrucción de es!uemas de compromiso. 3os

es!uemas de compromiso permiten !ue unaentidad elia una "alor entre un conunto finito deposibilidades de tal forma !ue no puedacambiarla. *sa entidad no tiene !ue re"elar suelección hasta si acaso el momento final (la

elección puede permanecer oculta).

• :onstrucción de algoritmos de cifradodescifrado.

2or eemplo se usa en la construcciónde cifradores de fluo  decifradores de blo!ue.

• :onstrucción de algoritmos generadores de

n+meros pseudoaleatorios.

• :onstrucción de cadenas pseudoaleatorias. 2or

eemplo el llamado modelo de oráculo

aleatorio se basa en considerar !ue funcioneshash con ciertas propiedades se comportan comofunciones !ue escogen cadenas al a4ar se usapara el estudio de la seguridad los es!uemascriptográficos.

• :onstrucción de algoritmos de testeo de

pertenencia o no a un conunto.E Je han usadofunciones hash para la construcciónde acumuladores criptográficos  filtros de 9loom.*stas tecnolog1as permiten establecermecanismos !ue permiten pronunciarse a "eces

con cierto grado de error sobre la pertenencia ono a cierto conunto.

• :onstrucción de métodos de generación de sellos

de tiempo confiables.

• Herramienta para proteger la integridad

• *n la firma digital

• :omo dato !ue se firma&*n los algoritmos de

firma con"encionales normalmente en lugarde firmar todo el contenido se suele ser firmar sólo el "alor hash del mismo. Algunas de lasmoti"aciones para hacer esto son&%$

• :uando se usa para firmar algoritmos de

firma por blo!ues donde los mensaesson más largos !ue el blo!ue no esseguro firmar mensaes blo!ue a blo!uea !ue un enemigo podr1a borrar blo!uesdel mensae firmado o insertar blo!uesde su elección en el mensae antes de

!ue sea firmado. Al usar una funciónhash hacemos una transformación !ue

Page 13: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 13/16

hace a la firma dependiente de todas laspartes del mensae.

• /ormalmente los "alores hash son

mucho más cortos !ue los datosoriginales de entrada. Je puede meorarmucho la "elocidad de firma firmando el"alor hash en lugar de firmar el datooriginal.

• Ji los mensaes a firmar pueden tener

cierta estructura algebraica el algoritmode firma se comporta de forma !ue elsistema resultante puede ser "ulnerablea criptoanálisis con ata!ues de tetoescogido podemos usar funciones hashpara destruir esta estructura algebraica.

• :omo parte del algoritmo de firma& Je han

desarrollado algoritmos de firma !ue usanfunciones hash en el propio algoritmo defirma como una herramienta interna delmismo. *emplo de este tipo algoritmos soneles!uema de firma de ,erDle.

• Juma de "erificación (del inglés checksum)&

:uando !ueremos almacenar o transmitirinformación para protegernos frente a erroresfortuitos en el almacenamiento o transmisión es

+til acompa0ar a los datos de "alores hashobtenidos a partir de ellos aplicando funcioneshash con ciertas propiedades de forma !uepuedan ser usados para "erificar hasta ciertopunto el propio dato. A el "alor hash se lellama Juma de "erificación.

• 2rueba de la integridad de contenidos.E 2or

eemplo cuando se distribue un contenido por lared se !uiere estar seguro de !ue lo !ue lellega al receptor es lo !ue se está emitiendo seproporciona un "alor hash del contenido de forma

!ue ese "alor tiene !ue obtenerse al aplicar lafunción hash sobre el contenido distribuidoasegurando as1 la integridad. A esto se le suelellamar checksum criptogr+fico debido a !ue esun checDsum !ue re!uiere el uso defuncioneshash criptográficas para !ue sea dif1cil generarotros ficheros falso !ue tengan el mismo "alorhash. -tro eemplo de uso esta tecnolog1a para"erificar la integridad es calcular guardar el"alor hash de archi"os para poder "erificarposteriormente !ue nadie (* un "irus) los hamodificado. Ji en lugar de "erificar la integridadde un solo contenido lo !ue se !uiere es "erificarla integridad de un conunto de elementos sepueden usar algoritmos basados en funciones

Page 14: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 14/16

hash como los árboles de ,erDle !ue se basanen aplicar reiteradamente las funciones hashsobre los elementos del conunto sobre los"alores hash resultantes.

• Herramientas "inculadas a la autenticación  control

de acceso

•  Autenticación de entidades& 2or eemplo es

frecuente el uso para este propósito de funcioneshash deterministas con cla"e secreta !ue tienenciertas propiedades (Códigos de autenticaciónde mensajes). *n estos es!uemas tanto elser"icio de autenticación o "erificador como laentidad !ue se !uiere autenticar mantienen ensecreto la cla"e de la función hash. *l es!uemafunciona de la siguiente forma& *l !ue se !uiereautenticar genera un mensae calcula su "alorhash. *stos dos datos se mandan al "erificador.*l "erificador comprueba !ue el "alor hash secorresponde con el mensae en"iado de estaforma "erifica !ue la entidad tiene la cla"esecreta por otra parte puede asegurar !ue elmensae es 1ntegro (no ha sido modificado desde!ue se calculó el "alor hash). -bser"ar !ue eles!uema no tiene la propiedad del noErepudio por parte del !ue se !uiere autenticar a !ue el"erificador al disponer de la cla"e secreta puedegenerar también los "alores hash.

• 2rotección de cla"es& 2ara comprobar la

corrección de una cla"e no es necesario tener lacla"e almacenada lo !ue puede ser apro"echadopara !ue alguien no autori4ado acceda a ellasino almacenar el "alor hash resultante de aplicar una función hash determinista. ;e esta formapara "erificar si una cla"e es correcta basta conaplicar la función hash "erificar si el resultadocoincide con el !ue tenemos almacenado.

• ;eri"ación de cla"es& 2or eemplo en algunas

aplicaciones usan funciones hash para deri"aruna cla"e de sesión a partir de un n+mero detransacción una cla"e maestra. -tro eemplo deaplicación ser1a el uso de funciones hash paraconseguir sistemas de autenticación con cla"esde un solo uso o (5! (del inglés (ne 5ime!ass6ord). *n este tipo de sistemas la cla"e es"álida para un solo uso. *stos sistemas se basanen tener un semilla inicial luego ir generandocla"es (mediante un algoritmo !ue puede usarfunciones hash) !ue pueden tener un solo uso as1 e"itar  ata!ues de R*23A.

• Herramienta para la identificación la rápida

comparación de datos& Je pueden usar funciones

Page 15: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 15/16

hash para proporcionar una identificación de obetoso situaciones. Una buena función hash para estepropósito deber1a ser rápida asegurarse de !ue dosobetos o situaciones !ue se considerar iguales denlugar al mismo "alor hash. -bser"ar !ue dos obetoso situaciones pueden ser considerados iguales sin ser 

idénticos. 2or eemplo podemos considerar iguales ados ficheros !ue son distintos bit a bit por!uerealmente son la digitali4ación de la misma pel1cula.*s labor del dise0o de la función hash capturar laesencia del criterio de igualdad. 2or otra parte lae"aluación de la función hash deber1a ser pococostosa para facilitar la rápida comparación deelementos candidatos a ser iguales de esta formapoder implementar algoritmos de b+s!ueda rápidos.

• Huellas digitales.E *l uso de funciones hash

aplicados a cadenas permiten obtener "alores

hash !ue pueden usarse detectar fácilmente laaparición de esos datos en distintos sitios.2ueden ser usados para distintos usos comob+s!ueda de "irus autenticación con datosbiométricos detección de copias...3a idea puedeusarse más allá de tetos ser aplicado acual!uier tipo de contenido multimedia&%% %8 3asfunciones hash espec1ficamente dise0adas paraeste propósito obtienen "alores hash !uepermiten detectar caracter1sticas intr1nsecas delcontenido multimedia de forma !ue se puedaidentificar si dos archi"os diferentes se

corresponden con el mismo contenidomultimedia. :omo aplicación práctica de este tipode algoritmo tenemos los programas !ue seeecutan en dispositi"os mó"iles !ue soncapaces de adi"inar el t1tulo de la canción !ueestá sonando en la habitación solamentecapturando el sonido comparándolo con estos"alores hash. *ste tipo de algoritmos también sepuede utili4ar para protección de contenidosmultimedia a !ue permite "alidarautomáticamente si cierto fichero multimedia estáprotegido o no por derechos de autor.

• =dentificación de contenidos& *n algunas

aplicaciones se usa el "alor hash de un contenidomultimedia para identificar ese contenidoindependientemente de su nombre o ubicación.*sto es ampliamente usado en redes2eerEtoEpeer  !ue intercambian de archi"os talescomo Ia4aa Ares Vala -"ernet 9itorrent.

• =dentificar un registro en una base de datos

permitir con ello un acceso más rápido a losregistros (incluso más rápido !ue teniendo

1ndices).

Page 16: Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

7/21/2019 Función Hashhhhhhhhhhhhhhhhhhhhhhhhhhhh

http://slidepdf.com/reader/full/funcion-hashhhhhhhhhhhhhhhhhhhhhhhhhhhh 16/16

•  Algor1tmos de b+s!ueda de subcadenas& 3os

algoritmos de b+s!ueda de subcadenas tratan elproblema de buscar subcadenas a la !ue llamanpatrón dentro de otra cadena a la !ue llamanteto. Ha algoritmos de este tipo !ue usanfunciones hash en su implementación.

*emplo& algoritmo IarpERabin.

• ;etección de "irus& 2ara detectar los "irus

muchos anti"irus definen funciones hash !uecapturan la esencia del "irus !ue permitendistinguirlos de otros programas o "irus. *s lo !uese llama firma del "irus. *stas firmas son usadaspor los anti"irus para poder detectarlos.

,uchas de las aplicaciones de las funciones hash sonrelati"as al campo dela criptograf1a ( :ifradores acumuladores

criptográficos firma digital protocolos criptográficos deautenticación...). 3a :riptograf1a es una rama de lasmatemáticas !ue proporciona herramientas paraconseguir seguridad en los sistemas de información. 3asfunciones hash interesantes en el área dela criptograf1a se caracteri4an por cumplir una serie depropiedades !ue permiten a las utilidades criptográficas!ue las utili4an ser resistente frente ata!ues !ue intentan"ulnerar la seguridad del sistema. A las funciones hash!ue cumplen estas propiedades se las llama funcioneshash criptográficas.