Funció hash criptogràfica

De la Viquipèdia, l'enciclopèdia lliure
Fig.2 Exemples de funció hash

Una funció hash criptogràfica és una classe especial de funció hash amb certes propietats que la fan adequada en criptografia. La funció hash és un algorisme matemàtic que assigna dades (sortida o hash) d'una determinada mida a una cadena de bits (entrada o missatge) d'una altra mida. És una funció unidireccional (d'un sol sentit), amb moltes aplicacions en l'àmbit de la seguretat informàtica tals com signatures digitals, autenticació de missatges, detecció de duplicats d'arxius i sumatoris de comprovació de dades.[1][2][3]

Propietats[modifica]

La funció hash ideal té cinc propietats principals :

  • La funció és determinista: sempre s'obté el mateix resultat hash amb el mateix missatge d'entrada.
  • La funció és ràpida per calcular qualsevol missatge d'entrada.
  • La funció inversa (deduir el missatge a partir del hash) no és viable a no ser que s'empri el mètode de força bruta (anar provant tots els missatges d'entrada).
  • Un petit canvi al missatge d'entrada provoca un gran canvi a la sortida hash (no hi ha correlació amb el hash anterior).
  • No poden existir dos missatges d'entrada diferents amb el mateix valor hash.

Aplicacions de la funciò hash criptogràfica[modifica]

Verificació d’arxius[modifica]

Al descarregar un arxiu pot ser una bona idea comprovar que aquest sigui el original, no ha sigut infectat o modificat de ninguna manera amb un virus. Per aconseguir això els creadors haurien de penjar el arxiu original amb el seu codi hash, així qualsevol que se’l descarregui seria capaç de comparar el valor hash del arxiu descarregat i comparar-lo a veure si tenen el mateix codi.

Emmagatzemen de contrasenyes[modifica]

Una bona forma de guardar les contrasenyes es utilitzant una funció de hash. Aquest funciona obtenint el hash d’una contrasenya quan aquesta es crea i guardant el valor. Més tard, quan l’usuari volgués entrar en el sistema només hauria de introduir la contrasenya i obtenir el seu hash. Si els dos son idèntics, es valida l’accés i pot entrar.

Aquesta forma es molt útil perquè si un atacant accedís al llistat de hashes, ja que aquest no son reversibles no seria capaç d’obtenir les contrasenyes originals.

Cerca a bases de dades[modifica]

Els codis hash poden fer mes rapides les cerques en babes de dades. Si s’emmagatzemen grans arxius en una tabla i es necessari trobar si un es troba dins de la llista, això es pot aconseguir buscant i comprovant tots els arxius un a un o utilitzant un hash criptogràfic del arxiu. En la majoria d’ocasions on el hash te una mida inferior al de les dades del arxiu, el temps de cerca es pot acurtar significativament.

Creació de una cadena de bloc (Blockchain)[modifica]

Article principal: Blockchain

Las cadenes de blocs son una tecnologia clau en l'actualitat. S’utilitzen per les criptomonedes i quan es vol assegurar que les dades no es modifiquin en un futur.  En resum, una cadena de bloc es un conjunt de dades en el que cada bloc guarda el hash del anterior, d’aquesta manera si un bloc es modificat, la cadena es trencarà exposant l’arxiu que ha sigut modificat.

Fig.2 Funcions hash de tipus SHA

Algorismes hash criptogràfics[modifica]

  • MD5: dissenyat el 1991. Produeix hash de 128 bits (16 bytes).
  • SHA-1: publicat el 1995. Produeix hash de 160 bits (20 bytes).
  • RIPEMD-160: publicat el 1996. Produeix hash de 160 bits (20 bytes).
  • Whirlpool: publicat el 2000. Produeix hash de 512 bits (64 bytes).
  • SHA-2: publicat el 2001. Produeix hash de 512 bits (64 bytes).
  • SHA-3: publicat el 2015. Produeix hash de 512 bits (64 bytes).
  • BLAKE2: publicat el 2012. Produeix hash de 512 bits (64 bytes).

Referències[modifica]