Funció de hash criptogràfic

Una funció de hash criptogràfic , en informàtica , és una classe especial de funcions de hash que té certes propietats que el fan adequat per a l’ús en criptografia .
És un algorisme matemàtic que mapa dades de longitud arbitrària ( missatge ) en una cadena binària de mida fixa anomenada valor hash , però sovint també es coneix com el terme anglès message digest (o simplement digest ). Aquesta funció hash està dissenyada per ser unidireccional ( unidireccional ), és a dir , una funció difícil d’invertir: l’única manera de recrear les dades d’entrada a partir de la sortida d’una funció hash ideal consisteix a cercar a la recerca de força bruta de possibles entrades. a veure si hi ha partit. Com a alternativa, es podria utilitzar una taula arc de Sant Martí amb hash coincidents.
La funció hash criptogràfica ideal ha de tenir algunes propietats fonamentals:
- ha d’identificar de manera única el missatge, no és possible que dos missatges diferents, encara que siguin similars, tinguin el mateix valor hash;
- ha de ser determinista, de manera que el mateix missatge tingui sempre com a resultat el mateix hash;
- ha de ser ràpid i senzill calcular un valor hash a partir de qualsevol tipus de dades;
- ha de ser molt difícil o gairebé impossible generar un missatge a partir del seu valor hash que no sigui provar tots els missatges possibles.
Aquestes funcions permeten que les funcions de resum criptogràfic s’utilitzin àmpliament en camps de seguretat informàtica , com ara signatures digitals , codis d’autenticació de missatges (MACs) i altres formes d’ autenticació . També es poden utilitzar com a funcions de hash ordinàries, per indexar dades en taules de hash , per a empremtes digitals , per detectar dades duplicades o identificar fitxers de manera única i com a suma de comprovació per detectar danys accidentals de dades. De fet, en contextos de ciberseguretat, els valors de hash criptogràfics de vegades s'anomenen "empremtes digitals" o " suma de comprovació ", tot i que tots aquests termes tenen funcions més generals amb propietats i finalitats força diferents.
Propietat
La majoria de les funcions de resum criptogràfic estan dissenyades per prendre una cadena de qualsevol longitud com a entrada i sortida com a valor de resum de longitud fixa. Aquestes funcions han de ser capaces de resistir tots els atacs basats en criptoanàlisi : per fer-ho, es defineix el nivell de seguretat d’una funció de hash criptogràfic fent referència a les propietats següents:
- Resistència a la preimatge
Donat un valor de hash h, ha de ser difícil traçar un missatge m amb hash (m) = h. Aquesta propietat deriva del concepte de funció unidireccional. Les funcions que no tenen aquesta propietat són vulnerables als atacs previs a la imatge .
- Segona resistència prèvia a la imatge
Donat un missatge m1, ha de ser difícil trobar un segon missatge de m2 tal que hash (m1) = hash (m2) . Les funcions que no tenen aquesta propietat són vulnerables a atacs de segona imatge prèvia .
Donats dos missatges m1 i m2, ha de ser difícil que els dos missatges tinguin el mateix hash, per tant amb hash (m1) = hash (m2). Aquest parell s’anomena col·lisió de hash criptogràfic . De vegades, aquesta propietat es coneix com a forta resistència a les col·lisions . La resistència a la col·lisió implica resistència a la segona imatge prèvia, però no implica resistència a la imatge prèvia: en comparació amb aquesta última, requereix un valor de hash com a mínim el doble de llarg, en cas contrari es poden trobar col·lisions per un atac d'aniversari .
Aquestes propietats signifiquen que un possible atac no us permetrà substituir o modificar un missatge sense afectar el valor de hash resultant. Per tant, si dues cadenes tenen el mateix resum, podeu confiar que són idèntiques. En particular, la resistència a la segona imatge prèvia hauria d’evitar que un adversari maliciós processés un missatge amb el mateix hash que un missatge que l’adversari no pot controlar. La resistència a les col·lisions, d'altra banda, impedeix que l'atacant creï dos missatges diferents amb el mateix hash.
A la pràctica, una funció de hash és només una resistència a la segona preimatge; raó per la qual es considera insegur i, per tant, no es recomana per a aplicacions del món real. D’altra banda, la resistència a la col·lisió és insuficient per a molts usos pràctics: a més, no hauria de ser possible per a un adversari trobar dos missatges amb càlculs substancialment similars ni poder deduir informació útil del missatge a partir del seu hash. valor. Així, doncs, una funció de resum criptogràfic ha de ser el més semblant possible a una funció aleatòria (sovint anomenada oracle aleatori ), tot i ser determinista i senzilla de calcular. Això exclou les funcions SWIFFT, que es demostra que són rigorosament resistents a les col·lisions, sempre que se suposi que certs problemes de les xarxes ideals són computacionalment difícils; si s’entenen com a funcions lineals, no condueixen a satisfer aquestes propietats. Els algorismes de suma de comprovació, per exemple, com CRC i altres comprovacions de redundància cíclica, perquè són lineals, estan dissenyats per satisfer requisits molt més febles en ser massa fàcils de revertir i generalment no són adequats com a funcions de hash criptogràfic.
Tanmateix, és important assenyalar que, tot i tenir una funció capaç de satisfer tots aquests criteris, encara es poden trobar propietats no desitjades. Les funcions de hash criptogràfic que s’utilitzen actualment són vulnerables als atacs d’extensió de longitud: hash de dades (m) i len (m) , però no m , triant un m ’ adequat, un atacant pot calcular hash (m || m’), on | | indica la concatenació. Aquesta propietat es pot utilitzar per trencar esquemes d’autenticació ingenus basats en funcions de hash. La construcció de l’ HMAC treballa en aquest tipus de problemes.
Grau de dificultat
En criptografia pràctica, el terme "difícil" en general significa "gairebé segur que està fora de l'abast de qualsevol adversari a qui s'ha d'evitar que trenqui el sistema sempre que es consideri important la seguretat del sistema". Per tant, el significat del terme depèn lleugerament de l’aplicació, ja que l’esforç que un agent maliciós pot fer en el seu treball sol ser proporcional als seus guanys esperats. Tanmateix, atès que els esforços de l'atacant augmenten ràpidament amb la longitud del resum, beneficiaria el sistema si s'hi afegeixin algunes dotzenes de bits, amb la capacitat de neutralitzar fins i tot un avantatge miler en la potència de processament.
Per als missatges curts, com ara les contrasenyes , és possible que pugueu invertir un hash provant tots els missatges possibles del conjunt, però com que les funcions de hash criptogràfic estan dissenyades per calcular-se ràpidament, s'han desenvolupat funcions de derivació de claus que requereixen més recursos informàtics, dificultant així els atacs de força bruta.
En algunes anàlisis teòriques , "difícil" pren un significat matemàtic específic, com ara "no resolible en temps polinòmic asimptòtic ". Aquestes interpretacions de dificultat són importants en l'estudi de funcions de hash criptogràfic que probablement siguin segures, però que normalment no coincideixen en la seguretat pràctica. Per exemple, es pot veure que un algorisme de temps exponencial de vegades pot ser prou ràpid com per fer factible un atac; d'altra banda, un algorisme de temps polinòmic , contrari a l'exponencial, pot ser massa lent per a qualsevol ús pràctic.
Il·lustració
Una il·lustració de l’ús potencial d’un hash criptogràfic és la següent:
- Alice planteja un problema matemàtic difícil a Bob, afirmant haver-lo resolt;
- A Bob també li agradaria resoldre el mateix problema, però voldria assegurar-se que Alícia no blufés;
- Alice escriu la seva solució, calcula el seu hash i la notifica a Bob (mantenint la solució en secret);
- quan Bob torna amb la solució uns dies després, Alice pot demostrar que tenia la solució abans revelant-la;
- Un cop revelat, amb el hash de Bob, Alice pot comprovar que realment coincideix amb el valor de hash calculat prèviament per ella.
En la pràctica real, Alice i Bob solen ser programes d’ordinador i, per descomptat, el secret consistirà en alguna cosa que no sigui fàcil d’enganyar: aquest exemple ens fa tornar el que en anglès s’anomena esquema de compromís.
Aplicacions
Verifiqueu la integritat d’un missatge
Una aplicació important de les funcions de resum criptogràfic consisteix a verificar la integritat d’un missatge . Mitjançant aquestes funcions és possible determinar, per exemple, si s’han fet canvis en un missatge (o en un fitxer ) comparant el seu hash abans i després de la transmissió. Se’n fa un ús particular en la majoria d’algoritmes de signatura digital, que utilitzen funcions de hash per produir una signatura que garanteixi l’autenticitat d’un missatge, evitant que un possible destinatari modifiqui un document signat per una altra persona. Per aquest motiu, el valor hash també es coneix com a empremta digital del missatge. Per tant, la verificació de l'autenticitat del valor hash del missatge es considera una prova de l'autenticitat del missatge en si.
Verifiqueu les contrasenyes
En les aplicacions que requereixen una autenticació adequada és massa arriscat per emmagatzemar les contrasenyes de tots els usuaris en un format clar, que no es troba en un fitxer xifrat , especialment si aquestes últimes estan compromeses. Una manera d’evitar una violació real de la seguretat és emmagatzemar només el valor de hash de cada contrasenya: un cop l’usuari s’ha autenticat, es calcula el hash de la contrasenya que ha introduït i es compara el resultat amb el hash emmagatzemat anteriorment. Sovint, la contrasenya es concatena amb un valor aleatori no secret, anomenat salt , abans que fins i tot s’apliqui la funció hash. Utilitzats junts, però emmagatzemats per separat, produeixen una sortida que substitueix només les contrasenyes, cosa que permet als usuaris autenticar-se. Tenint en compte la sal i el fet que els usuaris generalment en tenen diversos, no és possible emmagatzemar taules de valors de hash pre-calculades per a contrasenyes comunes. Tanmateix, com es va esmentar anteriorment, amb contrasenyes de missatges curts i funcions de hash dissenyades per calcular-se ràpidament per una banda, és possible estar sotmès a atacs de força bruta (només cal considerar que la GPU pot provar milers de milions de contrasenyes possibles per segon). D'altra banda, hi ha funcions, anomenades funcions d'estirament de tecles] , com PBKDF2 , Bcrypt o Scrypt, que "augmenten" les contrasenyes per fer-les més segures davant d'un atac de força bruta.
Prova del treball
El sistema de prova de treball és una mesura rendible per dissuadir els atacs de denegació de servei i altres abusos de servei (com ara correu brossa a una xarxa) que fan complir determinats treballs per part del sol·licitant del servei, normalment entès com el temps de processament d’un ordinador. Una característica fonamental d’aquests sistemes és la seva asimetria: el treball ha de ser moderadament complex (però factible) pel que fa a la sol·licitud, però, al mateix temps, és fàcil de controlar per al proveïdor de serveis . Un sistema famós, utilitzat en la generació de bitcoins i en Hashcash , utilitza inversions parcials de hash per verificar que s’ha fet el treball, per tal de desbloquejar una recompensa (anomenada recompensa de Bitcoin ) en el cas de Bitcoin o com a mostra de bona voluntat envieu-vos per correu electrònic a Hashcash. A la pràctica, l’emissor ha de trobar un missatge que tingui un valor de hash amb un nombre de bits zero: el treball mitjà que ha de fer per trobar un missatge vàlid és exponencial en el nombre de bits de zero requerits en el valor de hash. D’altra banda, el destinatari pot comprovar la validesa del missatge realitzant una funció hash única. Per exemple, a Hashcash, si es demanés a un remitent que generés una capçalera el valor de hash SHA-1 de 160 bits té els primers 20 bits de zeros, hauria de provar-ho 219 vegades de mitjana abans de trobar una capçalera vàlida.
Identificador de fitxer o de dades
En aquelles aplicacions on cal gestionar grans quantitats de fitxers, un resum de missatges també pot ser útil per identificar-los de manera fiable. Diversos sistemes de gestió de codi font , inclosos Git , Mercurial i Monotone, utilitzen sha1sum (un algorisme que calcula i verifica hashs SHA-1) de diversos tipus de contingut (contingut de fitxers, arbres de directoris, informació genealògica, etc.) identifiqueu-los. El mateix objectiu s’ha d’aconseguir mitjançant xarxes d’intercanvi de fitxers peer-to-peer on, per exemple, en un enllaç ed2k , es combina un hash MD4 amb la mida del fitxer, proporcionant prou informació per identificar els orígens del propi fitxer. , descarregueu-lo i comproveu-ne el contingut. Els enllaços magnètics són un altre exemple. Tenint disponibles funcions de resum d'un cert tipus, una de les principals aplicacions de les funcions criptogràfiques és permetre la cerca ràpida de dades en una taula de resum . No obstant això, en comparació amb les funcions de hash estàndard, les funcions de hash criptogràfic tendeixen a ser més costoses computacionalment. Per aquest motiu, s’utilitzen en contextos en què els usuaris han de ser protegits de la possibilitat de falsificació (creació de dades amb el mateix resum) per part de participants potencialment maliciosos.
Generació de nombres pseudoaleatoris i claus de derivació
Les funcions de hash també es poden utilitzar per generar cadenes pseudoaleatòries o per obtenir claus i contrasenyes a partir d’una única clau o contrasenya segura.
Funcions de hash basades en xifrats de blocs
Hi ha diversos mètodes d'ús de xifrats de blocs per crear una funció de hash criptogràfic, o millor dit, una funció de compressió unidireccional . Els mètodes d'aplicació s'assemblen a la forma en què funcionen els xifrats de blocs que s'utilitza habitualment en criptografia. Moltes funcions de hash conegudes, incloses MD4 , MD5 , SHA-1 i SHA-2 , es construeixen a partir de components de xifratge de bloc adequats, amb retroalimentació per garantir que la funció resultant no sigui invertible. Els finalistes de SHA-3 van incloure funcions amb components de xifratge de blocs (per exemple, Sklein o BLAKE ), tot i que posteriorment es va triar la funció Keccak , basada en una funció esponja . Es pot utilitzar un xifratge de bloc estàndard com AES en lloc dels xifrats de blocs personalitzats, cosa que pot ser útil quan un sistema incrustat necessita implementar tant xifratge com hash amb una mida mínima de codi o una àrea de maquinari. No obstant això, aquest enfocament pot tenir costos en termes d'eficiència i seguretat.
Els xifrats en funcions de hash estan construïts per al hash: utilitzen blocs i tecles grans, poden modificar les tecles de cada bloc de manera eficient i han estat dissenyats i provats de resistència a atacs de tecles relacionats . Els xifrats de propòsit general solen tenir diferents objectius de disseny; en particular, AES té mides de claus i blocs que fan que no sigui trivial l'ús per generar valors de hash llargs. El xifratge AES esdevé menys eficaç a mesura que la clau canvia cada bloc i els atacs relacionats amb la clau el fan potencialment menys segur per al seu ús en una funció hash que en el xifratge.
Disseny de la funció hash
Construcció de Merkle-Damgård
Una funció hash ha de ser capaç de processar un missatge de longitud arbitrària en una sortida de longitud fixa: això es pot aconseguir dividint l'entrada en una sèrie de blocs de la mateixa mida i operant-hi seqüencialment mitjançant una funció de compressió d'una manera . La funció de compressió es pot dissenyar específicament per al hash o per construir-se a partir d’un xifratge de blocs. Una funció de hash construïda amb la construcció de Merkle-Damgård és resistent a les col·lisions i a la seva funció de compressió; qualsevol col·lisió per a la funció hash completa es pot remuntar a una col·lisió a la funció de compressió.
A la construcció de Merkle-Damgård, l'últim bloc processat ha d'estar "encoixinat" sense ambigüitats fins a una longitud de farciment: aquest pas és fonamental per a la seguretat d'aquesta construcció.
Les formes clàssiques més habituals de hash, incloses SHA-1 i MD5, prenen aquesta forma.
Diferència entre hash de canonada estreta i hash de canonada ampla
Una aplicació directa de la construcció de Merkle-Damgård, on la mida de sortida de hash és igual a la mida de l’estat intern (entre cada etapa de compressió), es tradueix en un disseny de hash de canonada estreta (canonada estreta). Aquest disseny causa molts defectes, incloses extensions de longitud , multicollision, [1] atacs de missatges llargs, [2] genera i enganxa atacs, i no es pot paral·lelitzar. Com a resultat, les construccions modernes impliquen hashs de canonada ampla que tenen una dimensió d’estat interna més gran, que van des dels ajustaments de la construcció Merkle-Damgård [1] fins a les noves construccions com la construcció d’ esponja i la construcció d’HAIFA . [3] Cap dels concursants de la funció de hash NIST utilitza una construcció clàssica de Merkle-Damgård. [4]
Mentrestant, truncar la sortida d’un hash més llarg, com es fa a SHA-512/256, també derrota molts d’aquests atacs. [5]
Ús per a la construcció d'altres primitives criptogràfiques
Les funcions Hash es poden utilitzar per construir altres primitives criptogràfiques: per assegurar-se que estan protegides criptogràficament, cal tenir cura de construir-les correctament.
Els codis d’autenticació de missatges (MAC), també anomenats funcions hash de teclat , sovint es construeixen mitjançant funcions hash. HMAC es comporta com un MAC.
De la mateixa manera que els xifrats de blocs es poden utilitzar per generar funcions de resum, el contrari és cert, és a dir, també es poden utilitzar per construir xifrats de blocs. Les construccions Luby-Rackoff , que utilitzen funcions de hash, només poden ser segures si la funció de hash subjacent és igualment segura. A més, moltes funcions de hash (incloses SHA-1 i SHA-2 ) es construeixen mitjançant un xifratge de blocs especials a Davies-Meyer o una altra construcció. Aquest xifratge també es pot utilitzar per funcionar convencionalment, sense les mateixes garanties de seguretat (vegeu SHACAL , BEAR i LION ).
Els generadors de números pseudorandom (PRNG) també es poden construir utilitzant funcions hash; per fer-ho, es combina una llavor (secreta) aleatòria amb un comptador i, a continuació, es fa un hash.
Algunes funcions de hash, com Sklein , Keccak i RadioGatún sortida un arbitràriament llarg raig i es poden utilitzar com un xifrat de flux . Els xifrats de flux també poden consistir en el resum de longitud fixa de les funcions de hash: es fa primer construint un generador de números pseudoaleatoris criptogràficament segur , i després utilitzant el flux de bytes aleatoris com a flux de claus . En aquest sentit, SEAL és un xifrat de flux que utilitza SHA-1 per generar taules internes, que després s’utilitzen en un generador de flux de claus més o menys relacionat amb l’algorisme de hash. Tanmateix, no es garanteix que SEAL sigui tan fort (o feble) com SHA-1.
De la mateixa manera, l'expansió clau dels xifrats de flux HC-128 i HC-256 fa un ús extens de la funció de hash SHA256 .
Concatenació de múltiples funcions de hash
Per gestionar les col·lisions, un dels mètodes més populars és el de hash amb concatenació ( encadenament ). Abans d’ Antoine Joux [6] , un conegut criptògraf francès, es va argumentar que la sortida de concatenació de dues funcions de hash proporcionava una resistència a la col·lisió comparable a algoritmes de hash més robusts, superior a la que les funcions individuals podrien proporcionar de hash. Per exemple, les versions anteriors de Transport Layer Security (TLS) i Secure Sockets Layer (SSL) utilitzen MD5 i SHA-1 com a concatenació. [7] [8] A partir d'un raonament similar, és fàcil pensar que això hauria conduït a voler explotar les febles funcions de hash i després procedir a la realització d'un algorisme realment més robust; no obstant això, per a la construcció de Merkle-Damgård , el resultat encadenat no és necessàriament més resistent a la col·lisió que els seus components més forts. Més generalment, si un atac pot produir una col·lisió en un estat intern de la funció hash, l'equivalent d'un atac dirigit contra la construcció encadenada correspon a un atac d'aniversari contra altres funcions: [9] per tant, això no fa que el concepte sigui veritable expressat més amunt sobre la concatenació.
El mateix Joux va observar que un nombre igual a 2 col·lisions desencadena n col·lisions: si, per a un atacant, és possible trobar dos missatges amb el mateix hash MD5, pot trobar tots els missatges que vulgui amb els hash MD5 idèntics sense més troben dificultats. [9] El treball addicional necessari per trobar una col·lisió SHA-1 (més enllà de la cerca exponencial d'aniversaris) només requereix temps polinòmic . [10]
Algoritmes de hash criptogràfics
Actualment hi ha moltes funcions de hash criptogràfic, tot i que s’ha demostrat que algunes d’elles són vulnerables i, per tant, seria millor que no s’utilitzessin. Fins i tot si una funció no s’ha compromès mai, un atac criptogràfic amb èxit a una de les seves variants pot comprometre la confiança dels experts, cosa que comporta un abandonament posterior de la funció. Per exemple, a l'agost de 2004, es van trobar algunes debilitats en diverses funcions de hash que es creien populars en aquell moment, incloses SHA-0 , RIPEMD i MD5 . En concret, el 12 d’agost, Joux , Carribault, Lemuet i Jalby van anunciar una col·lisió per l’algoritme SHA-0 complet: van ser capaços d’adonar-se del que va passar mitjançant una generalització de l’atac de Chabaud i Joux. Es va trobar que la col·lisió tenia 2 51 complexitats i va trigar aproximadament 80.000 hores de CPU en un superordinador amb 256 processadors Itanium 2 (equivalent a 13 dies d’ús a temps complet del superordinador). Posteriorment, el febrer de 2005, es va informar d'un atac contra SHA-1 que hauria trobat una col·lisió en aproximadament 2 69 operacions de hash, en lloc de les 2 80 esperades per a una funció de hash de 160 bits. A l'agost del mateix any, es va informar d'un altre atac contra SHA-1 que hauria trobat col·lisions en 2 63 operacions.
Aquests punts febles han posat en dubte la seguretat d'algoritmes més robusts resultants de funcions de hash febles: en particular, SHA-1 (una versió endurida de SHA-0), RIPEMD-128 i RIPEMD-160 (tots dos són versions endurides de RIPEMD) . A causa de l'existència de versions endurides, els algoritmes SHA-0 i RIPEMD s'han substituït i, en conseqüència, ara estan infrautilitzats.
Els investigadors de seguretat suggereixen que les noves aplicacions poden evitar aquests problemes mitjançant l'ús de versions més recents de la família SHA (com ara SHA-2 ) o mitjançant tècniques com el hash aleatori [11] [12] que no requereix resistència a la col·lisió. No obstant això, per garantir la robustesa a llarg termini de les aplicacions que utilitzen funcions de hash, hi ha hagut competència per dissenyar un substitut de l'algorisme SHA-2. El 2 d'octubre de 2012, Keccak va ser seleccionat com a guanyador de la competició de funció hash de NIST : una versió d'aquest algorisme es va convertir en un estàndard FIPS el 5 d'agost de 2015, conegut com SHA-3 . [13]
Un altre finalista de la competició, BLAKE , s’ha optimitzat per produir BLAKE2, que se sap que és més ràpid que SHA-3, SHA-1 o MD5. Per aquest motiu, es pot trobar un ús significatiu d’aquest algorisme en nombroses aplicacions i biblioteques.
El 23 de febrer de 2017, un equip d’investigadors de Google va anunciar que havia realitzat amb èxit la primera col·lisió per SHA-1 com a part del projecte SHAttered , ja que havia creat amb èxit dos fitxers PDF diferents amb el mateix hash.
Algorisme e variant | Mida de sortida (bits) | Mida de l'estat intern (bit) | Mida del bloc (bit) | Mida màxima del missatge (bits) | Mida de la paraula (bit) | Passos | Operacions | S'han trobat col·lisions | |
---|---|---|---|---|---|---|---|---|---|
SHA-0 | 160 | 160 | 512 | 2 64 - 1 | 32 | 80 | +, i, o, xor, rotl | Sí | |
SHA-1 | 160 | 160 | 512 | 2 64 - 1 | 32 | 80 | +, i, o, xor, rotl | Atac 2 63 [14] | |
SHA-2 | SHA-256/224 | 256/224 | 256 | 512 | 2 64 - 1 | 32 | 64 | +, i, o, xor, shr, rotr | Cap |
SHA-512/384 | 512/384 | 512 | 1024 | 2 128 - 1 | 64 | 80 | +, i, o, xor, shr, rotr | Cap |
Nota
- ^ a b Stefan Lucks, Principis de disseny per a funcions Hash iterades , n. 253, 2004. Obtingut el 24 de novembre de 2017 .
- ^ John Kelsey i Bruce Schneier, Second Preimages on n-bit Hash Functions for Much Less than 2 ^ n Work , n. 304, 2004. Recuperat el 24 de novembre de 2017 .
- ^ Eli Biham i Orr Dunkelman, Un marc per a les funcions de hash iteratiu - HAIFA , n. 278, 2007. Obtingut el 24 de novembre de 2017 .
- ↑ Mridul Nandi i Souradyuti Paul, Speeding Up The Widepipe: Secure and Fast Hashing , n. 193, 2010. Obtingut el 24 de novembre de 2017 .
- ↑ Dobraunig Christoph, Eichlseder Maria i Mendel Florian, Avaluació de la seguretat de SHA-224, SHA-512/224 i SHA-512/256 ( PDF ), febrer de 2015.
- ↑ Bulletin de la société informatique de France - número 1, setembre de 2013 ( PDF ), a 1024.labri.fr .
- ^ (EN) Mitsuri Matsui, Advances in Cryptology - Asiacrypt 2009: 15th International Conference on the Theory and Application of Cryptology and Information Security, Tokyo, Japan, 6-10 December 2009, Proceedings , Springer, 1 December 2009, ISBN 978- 3-642-10366-7 . Consultat el 28 de novembre de 2017 .
- ^ ( EN ) Ronald Cramer, Advances in Cryptology - EUROCRYPT 2005: 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, May 22-26, 2005, Proceedings , Springer Science & Business Media, 9 maggio 2005, ISBN 978-3-540-25910-7 . URL consultato il 28 novembre 2017 .
- ^ a b Antoine Joux, Multicollisions in Iterated Hash Functions. Application to Cascaded Constructions. ( PDF ) [ collegamento interrotto ] .
- ^ Hoch, Jonathan J.; Shamir, Adi, On the Strength of the Concatenated Hash Combiner when All the Hash Functions Are Weak. ( PDF ), su eprint.iacr.org , 2008.
- ^ Shai Halevi, Hugo Krawczyk, Update on Randomized Hashing
- ^ Shai Halevi and Hugo Krawczyk, Randomized Hashing and Digital Signatures
- ^ SHA-3 Standardization - Hash Functions | CSRC , su csrc.nist.gov . URL consultato il 30 novembre 2017 .
- ^ Weblog for dkg - HOWTO prep for migration off of SHA-1 in OpenPGP
Voci correlate
- CRYPTREC e NESSIE – Progetti che raccomandano le funzioni hash
- HMAC
- Oracolo random
- Codici di autenticazione dei messaggi (MAC)
Collegamenti esterni
- Christof Paar e Jan Pelzl, 11: Hash Functions , in Understanding Cryptography, A Textbook for Students and Practitioners , Springer , 2009 (archiviato dall' url originale l'8 dicembre 2012) . (companion web site contains online cryptography course that covers hash functions)
- ( ES ) Fonction de compression Hash
- The ECRYPT Hash Function Website , su ehash.iaik.tugraz.at .
- A. Buldas, Series of mini-lectures about cryptographic hash functions , 2011 (archiviato dall' url originale il 6 dicembre 2012) .
- P. Rogaway e T. Shrimpton, Cryptographic Hash-Function Basics: Definitions, Implications, and Separations for Preimage Resistance, Second-Preimage Resistance, and Collision Resistance , 2004.
- Understanding the Difference Between Hashing And Encryption , su cheapsslshop.com .