Función hash![]() A les funciones resumen tamién se-yos llama funciones hash o funciones digest.[1][2][3] Una función hash H ye una función computable por aciu un algoritmu tal que:
Tien como entrada un conxuntu d'elementos, que suelen ser cadenes, y convertir nun rangu de salida finito, de normal cadenes de llargor fixu. Esto ye, la función actúa como una proyeición del conxuntu O sobre'l conxuntu M. Reparar que M pue ser un conxuntu definíu d'enteros. Nesti casu podemos considerar que'l llargor ye fixa si'l conxuntu ye un rangu de númberos d'enteros yá que podemos considerar que'l llargor fixu ye la del númberu con mayor númberu de cifres. Tolos númberos pueden convertise al númberu especificáu de cifres a cencielles anteponiendo ceros. De normal el conxuntu O tien un númberu eleváu d'elementos y M ye un conxuntu de cadenes con un númberu más o menos pequeñu de símbolos. La idea básica d'un valor hash ye que sirva como una representación compacta de la cadena d'entrada. Por esta razón dizse qu'estes funciones resumen datos del conxuntu dominiu. Oríxenes del términuEl términu hash provién, aparentemente, de l'analoxía col significáu estándar (n'inglés) de dicha pallabra nel mundu real: picar y entemecer. Donald Knuth cree que H. P. Luhn, emplegáu d'IBM, foi'l primeru n'utilizar el conceutu nun memorándum fecháu en xineru de 1953. El so usu masivu nun foi hasta dempués de 10 años. Terminoloxía acomuñadaAl conxuntu O llámase-y dominiu de la función resumen. A un elementu d'O llámase-y preimagen o dependiendo del contestu clave o mensaxe. Al conxuntu M llámase-y imaxe de la función hash. A un elementu de M llámase-y valor resumen, códigu hash o a cencielles hash. Dizse que se produz un choque cuando dos entraes distintes de la función resumen producen la mesma salida. De la definición de función resumen podemos dicir qu'O, el dominiu de la función, puede tener infinitos elementos. Sicasí M, el rangu de la función, tien un númberu finito d'elementos por cuenta de que'l tamañu de les sos cadenes ye fixu. Por tanto la posibilidá d'esistencia de choques ye intrínseca a la definición de función hash. Una bona función resumen ye una que tien pocos choques nel conxuntu esperáu d'entrada. Esto ye, deseyar que la probabilidá de choque seya bien baxa. Parámetros adicionalesLa definición formal dada, dacuando xeneralízase pa poder aprovechar les funciones hash n'otros ámbitos. Pa ello a la función resumen añader nuevos parámetros de forma que'l valor hash nun ye solo función del conteníu en sí, sinón amás d'otros nuevos factores. Pa topar valores resumen de ficheros dacuando úsense, amás del conteníu en sí, diversos parámetros como'l nome del archivu, el so llargor, hora de creación, etc. Otres vegaes añaden parámetros que dexen configurar el comportamientu de la función. Por casu, la función resumen puede recibir como parámetru una función de xeneración de valores pseudoaleatorios que ye usada dientro del algoritmu de la función hash. Otros exemplos de parámetros son l'usu de valores sal, l'usu de claves secretes, l'usu de parámetros qu'especifiquen el rangu de la función (funciones hash de rangu variable), l'usu de parámetros qu'especifiquen el nivel de seguridá que se quier nel valor resumen de salida (funciones hash dinámiques), etc. Funciones resumen con claveUna función resumen con clave HK (n'inglés keyed hash function) ye una función resumen H que tien un parámetru secretu K que pertenez al conxuntu posible de claves y na que pa una entrada x, hK(x) ye'l valor resumen de x. Al restu de funciones resumen dizse que son ensin clave (n'inglés unkeyed hash function). PropiedaesLa calidá d'una función resumen vien definida con base nel prestu de ciertes propiedaes deseables nel contestu nel que se va a usar. So costuCalcular el valor hash precisa pocu costu (computacional, de memoria, etc.). CompresiónUna función hash estrúi dato si puede mapear un dominiu con datos de llargor bien grande a datos con llargor más pequeñu UniformeDizse qu'una función resumen ye uniforme cuando pa una clave escoyida aleatoriamente ye igualmente probable tener un valor resumen determináu, independientemente de cualesquier otru elementu. Pa una función hash H uniforme del tipu H:{0,1}m→{0,1}n, esto ye:
podemos dicir qu'a cada resume correspuénde-y 2m-n mensaxes y que la probabilidá de que dos mensaxes dean como resultáu la mesma salida ye 2-n P'algoritmos de busca, si toles entraes son igualmente probables, búscase esta propiedá pa embrivir el númberu de choques yá que cuantos más choques haya, va ser mayor el tiempu d'execución de les busques. De rangu variableEn delles funciones resumen el rangu de valores resumen pue ser distintu a lo llargo del tiempu. Exemplu: funciones hash usaes pa tables resumen que precisen espandise. Nestos casos a la función hash tien de pasáse-y un parámetru que-y dexe saber en qué rangu mueve la execución pa topar el valor resumen. Inyectividad y función hash perfectaDizse que la función resumen ye inyectiva cuando cada datu d'entrada se mapea a un valor resumen distintu. Nesti casu dizse que la función resumen ye perfecta. Por que se dea, ye necesariu que la cardinalidad del conxuntu dominiu seya inferior o igual a la cardinalidad del conxuntu imaxe. De normal, namái se dan funciones hash perfectes cuando les entraes tán preestablecidas. Exemplu: mapear los díes del añu en númberos del 1 al 366 según l'orde d'apaición. Formalización: implica Cuando nun se cumple la propiedá de inyectividad dizse qu'hai choques. Hai un choque cuando y . DeterministaUna función hash dizse que ye determinista cuando dada una cadena d'entrada siempres devuelve'l mesmu valor hash. Esto ye, el valor hash ye la resultancia d'aplicar un algoritmu qu'opera solu sobre la cadena d'entrada. Exemplos de funciones hash non deterministes son aquelles funciones hash que dependen de parámetros esternos, tales como xeneradores de númberos pseudoaleatorios o la fecha. Tampoco son deterministes aquelles funciones hash que dependen de la direición de memoria na que ta almacenada la cadena d'entrada. Esa direición ye accidental y nun se considera un cambéu de la cadena entrada en sí. De fechu puede camudar dinámicamente mientres la mesma execución del algoritmu de la función hash. Propiedaes p'analizar la resistencia frente a choquesL'estudiu d'esti tipu de propiedaes ye bien útil nel campu de la criptografía pa los llamaos 'código de detección de cambeos'. Resistencia a la primera preimagen[2]Dizse qu'una función resumen tien resistencia a la primera preimagen o a cencielles que tien resistencia a preimagen (del inglés preimage-resistant) si, dau un valor hash y, ye computacionalmente intratable atopar x tal que h(x)=y. Resistencia a la segunda preimagen[2]Dizse qu'una función resumen tien resistencia a la segunda preimagen (n'inglés second preimage-resistant) si dau un mensaxe x, ye computacionalmente intratable atopar un x', , tal que h(x)=h(x'). Resistencia a choques (CRHF)[2]Dizse qu'una función hash tien resistencia a choques o que ye resistente a choques o CRHF (del inglés Collision Resistant Hash Function) si atopar un par con tal que ye computacionalmente intratable. Esto ye, ye difícil atopar dos entraes que tengan el mesmu valor resumen. Como atopar una segunda preimagen nun puede ser más fácil qu'atopar un choque, entós la resistencia a choques inclúi la propiedá de resistencia a la segunda preimagen.[4][5] Per otru llau puede dicise que la mayoría de les funciones resumen CRHF son resistentes a preimagen.[2] La resistencia a choques implica resistencia a preimagen pa funciones hash con salida aleatoria uniforme.[6] En dellos trabayos a estes funciones llámase-yos funciones resumen d'un solu sentíu fuertes (del inglés strong one way hash function) pa resaltar que ye fuerte por cuenta de qu'hai llibre eleición de los dos valores x y y. Función resumen d'un solu sentíu (OWHF)[7]Una función hash dizse que ye una función resumen d'un solu sentíu o que ye OWHF (del inglés One-Way Hash Function) si tien les propiedaes de resistencia a preimagen y de resistencia a segunda preimagen. Esto ye, ye difícil atopar una entrada que la so hash seya un valor resumen preespecificado. Reparar que ye distintu a la definición xeneral que se fai de funciones d'un solu sentíu:
En dellos trabayos a estes funciones llámase-yos funciones hash d'un solu sentíu débiles (del inglés weak one way hash function) pa resaltar que ye débil en contraste con CRHF (que ye fuerte) por cuenta de que a los cumplir la propiedá de resistencia a segunda preimagen nun hai llibre eleición na selección del valor x, y por tanto del valor h(x), nel que se tien que producir el choque. Resistencia al cuasi choque[8]H ye resistente al cuasi choque (n'inglés near-colission resistance) si ye difícil atopar dos mensaxes y con pa les cualos les sos imáxenes y difieran solamente nunos pocos bits. [9]Por casu podemos tener una función resistente a choques de 256 bits que nun ye resistente al cuasi choque porque pueden atopase cuasi-choques pa los 224 bits de más a la izquierda. Funciones con choques de hash parcialesSon funciones nes qu'invirtiendo ciertu costu en procesamientu de CPU y memoria ye posible atopar en tiempos razonables dos entraes que produzan resultaos nos que los sos bits paecer en ciertu grau. Por casu que se paezan nun porcentaxe de bits, o más comúnmente que sían iguales ye los n-bits más significativos. Por casu con SHA1 pa consiguir un choque total con fuercia bruto precisaríamos comprobaciones o siquier usando la paradoxa del cumpleaños. Sicasí si vamos amenorgando'l númberu de bits más significativos que tienen que coincidir, el númberu de comprobaciones va baxando pasu ente pasu. Funciones resumen con esta propiedá usar en sistemes de prueba de trabayu, como Hashcash o Bitcoin pa consiguir les pruebes de trabayu. Resistencia a les preimágenes parciales[10]Una función resumen tien resistencia a preimágenes parciales (n'inglés Partial-preimage resistance) si ye difícil atopar una parte de la preimagen d'un valor hash inclusive conociendo'l restu de la preimagen. Esto ye, débese recurrir a encomalo bruta: si desconócense t bits de la preimagen, tienen de realizase en permediu 2n-t operaciones de hash atopalo. A una función resumen resistente a preimágenes parciales tamién se-y diz que ye llocalmente d'un solu sentíu (del inglés local one-wayness). Con normalización de datosEn delles aplicaciones, les cadenes d'entrada pueden contener carauterístiques que son irrelevantes cuando comparamos les cadenes. Por casu en delles aplicaciones les mayúscules pueden ser irrelevantes. Por tanto pa topar el valor hash ye interesante inorar les distinciones non relevantes ente les cadenes d'entrada. D'esta forma cadenes distintes con diferencies non relevantes, tienen asociaos valores hash iguales. Continuidá. Efeutu argayuDizse qu'una función resumen ye continua cuando un cambéu minúsculu (ej un bit) na cadena d'entrada causa pequeños cambeos nel valor hash. Nuna función resumen dizse que nun hai correllación cuando los bits de les cadenes d'entrada y los bits de les cadenes de salida nun tán rellacionaos, esto ye, cuando un cambéu minúsculu (por casu un bit) na cadena d'entrada causa cambeos nel valor hash comparables a un cambéu de cualesquier otru tipu. Por tanto cualesquier cambéu nel mensaxe orixinal idealmente fai que cada unu de cualesquier bit del valor resumen resultante camude con probabilidá 0.5. Cuando esto asocede (o cuasi) dizse que se produz un efeutu ábanu En funciones resumen usaes pa busca de normal búsquense funciones tan continues como seya posible; de forma qu'entraes que difieran un pocu tendríen de tener valores hash similares o iguales. Sicasí la continuidá nun ye deseable pa funciones resumen usaes pa sumes de verificación o funciones criptográfiques por evidentes razones. Resistencia a la computación de nuevos valores hash[11]Una función resumen con clave K, dizse que tien resistencia a la computación de nuevos valores hash (n'inglés Computation-resistance) si a partir d'un rangu de pares conocíos nun puede ser computáu pa un nuevu datu x con pa cualesquier i, ensin que K seya conocida. Reparar que la propiedá anterior implica que nun tendría de ser posible calcular K a partir d'un rangu de pares conocíos . A esta propiedá llamar propiedá de non recuperación de clave (n'inglés key non-recovery). L'estudiu d'esti tipu de propiedaes son bien útiles nel campu de la criptografía pa los llamaos códigos de autenticación de mensaxes. Families de funciones resumen y propiedaes acomuñaesMotivación[12]Podríamos imaxinanos un algoritmu probabilístico de tiempu polinomial con dos mensaxes codificados nel algoritmu que dan llugar a un choque pa una específica función resumen. L'algoritmu a cencielles devolvería los dos mensaxes que causen el choque. Crear tal algoritmu puede ser desaxeradamente difícil, pero una vegada construyíu podría ser executáu en tiempu polinomial. Sicasí, definiendo una familia de funciones resumen como una familia infinita de funciones resumen torga que la busca d'esti algoritmu tenga ésitu pa toles funciones resumen de la familia, porque hai infinites. Por tanto les families resumen apurren un mecanismu interesante pal estudiu y categorización de les funciones resumen al respective de la so fortaleza frente a la busca de choques per parte d'un adversariu. Esti tipu d'estudios ye bien útil nel campu de la criptografía pa los llamaos código de detección de cambeos. ConceutuSía , el dominiu de la función, seya el rangu de la función. Sía el conxuntu de toles posibles claves (teóricamente ye infinitu anque na práctica ye finito), Una familia de funciones hash ye un conxuntu infinitu de funciones hash de la forma (notación equivalente , onde cada función de la familia ye indexada por una clave que cumple les siguientes propiedaes:
Exemplu: SHA-1 ye una sola instancia de función resumen, non una familia. Sicasí SHA-1 pue ser modificáu pa construyir una familia finita de funciones. M. Bellare y P. Rogaway[13] modificaron SHA-1 de tala forma que la claves especifica les constantes usaes na cuarta ronda de les funciones. Nesti casu'l tamañu de la clave ye de 128 bits y por tanto , y . Reparar que na definición d'una función resumen el dominiu puede formalizase como , sicasí nuna función resumen definida como instancia d'un elementu d'una familia de funciones resumen el dominiu ye . Esto ye por cuenta de que por que se cumplan les propiedaes de seguridá ye necesariu que'l dominiu seya muestreado uniformemente en tiempu polinomial. Una familia de funciones puede siempres ser definida con aquel tamañu apropiáu p'afaer cualquier mensaxe que seya necesariu. Familia de funciones resumen resistente a choquesDe forma informal una familia de funciones ye familia de funciones resumen resistente a choques, tamién llamaes CRHF poles sos sigles n'inglés (Collision Resistant Hash Function), dada una función escoyida aleatoriamente de la familia, un adversariu ye incapaz de llograr un choque pa ella.[14] Definición formal[15]Dizse qu'una familia de funciones resumen ye una (t,ε)-familia resumen resistente a choques cola forma con n,l y k enteros positivos y n>=l, que satisfaen la siguiente condición: Sía un buscador de choques de cadenes que pa una entrada K nel espaciu de claves usa tiempu y llogra como salida , un par tal que . Pa cada ,
Reparar que la probabilidá ye tomada sobre les eleiciones aleatories de . Mirando esta definición vese que son interesantes aquelles families que tienen un t/ε abondo grande. Puramente falando falamos de families CRHF pero per simplicidá suelse falar a cencielles de CRHF. La definición nun se mete en cómo s'escueyen les funciones resumen de la familia. Esti puntu ye crucial.[16] En realidá, en cualquier aplicación de funciones resumen resistentes a choques, dalguna parte P tienen qu'escoyer una función de la familia de forma aleatoria pa producir la descripción de la función. Ye importante estremar ente dos casos:
Evidentemente una familia CRHF elegible de forma pública (public-coin) tamién puede trabayar si unu escueye o caltién la eleición de forma privada (secret-coin). Función hash universalUna función resumen universal ye una familia de funciones onde la probabilidá de choque ente dos testos escoyíos ye despreciable.[17] Definición formal[18]Una k-familia de funciones resumen universal ye un conxuntu H de funciones tal que pa cada elementu y tolos (non necesariamente distintos) .
[19]Una familia de funciones resumen ye ε-cuasi universal o ε-AU (del inglés ε-almost universal) si ye menor que ε la probabilidá de que dos entraes distintes m,n tengan el mesmu valor resumen acomuñáu, tando la función resumen escoyida aleatoriamente ente los miembros de . De la definición atalantar# que son interesantes aquelles families que tienen un valor pequeñu de ε indicando que l'adversariu nun puede atopar un par d'entraes que producen el mesmu valor resumen, pa una función resumen escoyida aleatoriamente d'ente los elementos la familia. Familia de funciones hash universal d'un solu sentíuUna familia de funciones resumen universal d'un solu sentíu, tamién llamaes UOWHF poles sos sigles n'inglés (Universal One-Way Hash Function), ye una familia de funciones resumen universales onde, escoyida una clave K aleatoriamente nel espaciu de claves, dada una cadena x con valor resumen hK(x) ye difícil atopar un x' distinta de x tal que hK(x)=hK(x'). Al par (x,x') llámase-y par de choque Definición formal[20][21]Dizse qu'una familia de funciones resumen ye (t,ε)-función resumen universal d'un solu sentíu (UOWHF) si nun esiste nengún adversariu qu'en tiempu menor que t pueda ganar el siguiente xuegu con probabilidá mayor o igual que ε: L'adversariu escueye un valor x del Rangu, entós recibe una clave K del espaciu de claves escoyida de forma aleatoria. El xuegu gana si atopa un x' tal que hK(x)= hK(x'). L'adversariu ta compuestu por dos algoritmos .
por tanto
siendo un par con tal que hK(x)= hK(x') Reparar que, al igual que na definición de (t,ε)-CRHF la probabilidá ye tomada sobre les eleiciones aleatories de . La gran diferencia ye qu'equí la entrada x afítase primeru. Mirando esta definición vese que son interesantes aquelles families que tienen un t/ε abondo grande. Comparanza UOWHF y CRHF[22]Una familia UOWHF ye una noción más débil qu'una familia CRHF. Nuna CRHF, al oponente primero dáse-y la clave y dempués ella o él tien que producir la pareya d'entraes que topeta. Atopar choques pa un parámetru fixu d'una UOWHF, pue que seya abondo más fácil, pero esto nun va ayudar a un oponente a violar la seguridá. Simon[23] demostró qu'esiste un oráculu relativu al cual UOWHF esiste, pero non CRHF. Funciones hash iteratives. Construcción de Merkle-Damgård[24][25][26]Munches funciones hash construyir por aciu el procesu iterativu siguiente hasta consiguir el valor hash de la entrada X, h(X):
Al valor IV llámase-y valor inicial y represéntase por eses sigles pol términu inglés Initial Value. A la función f llamar función de ronda o función de compresión. A la función g llamar tresformamientu de salida. Lo que fai la función g ye derivar a partir de Ht tantos bits como se quieran na salida de la función. Frecuentemente g ye la función identidá o un truncamiento de Ht. Nesti tipu de descripción de funciones hash hai dos eleiciones importantes que van afectar a les propiedaes que va tener la función:
A les funciones que se constrúin por aciu l'anterior sistema dizse que son funciones resumen iteratives. A esta forma de construcción recursiva conocer tamién como de Merkle-Damgård por cuenta de que foi usáu por primer vez por R. Merkle ya I. Damgård independientemente en 1989. AplicacionesLes funciones resumen son usaes en múltiples campos. Exemplos:
Munches de les aplicaciones de les funciones hash son relatives al campu de la criptografía ( Cifradores, acumuladores criptográficos, firma dixital, protocolos criptográficos de autenticación, etc.). La criptografía ye una caña de les matemátiques qu'apurre ferramientes pa consiguir seguridá nos sistemes d'información. Les funciones resumen interesantes nel área de la criptografía carauterizar por cumplir una serie de propiedaes que dexen a les utilidaes criptográfiques que les utilicen ser resistente frente ataques qu'intenten frayar la seguridá del sistema. A les funciones hash que cumplen estes propiedaes se les llapada funciones hash criptográfiques. Ver tamiénReferencies
Enllaces esternos
|