Funció hash

(S'ha redirigit des de: Hashing)

La funció resum (hash function en anglès) és un algorisme o funció que converteix un o més elements d'entrada en un altre element. S'empra per a resumir o identificar una dada a través de la probabilitat.[1] El resum (hash en anglès) és el resultat de dita funció o algorisme.[2] Alguns exemples són el MD5, el SHA-1 i en general els CRCs. Una propietat fonamental de les funcions resum és precisament que són funcions, que si dos resums, utilitzant la mateixa funció, són diferents, llavors les dues entrades que generaren aquests resums també ho són. La funció resum s'utilitza principalment tant en el camp de la criptografia com en el de la indexació de dades i en el de les comunicacions digitals com a codi de redundància per a corregir errors de transmissió. Molts sistemes relacionats amb la seguretat informàtica, amb les bases de dades o les transmissions de dades, usen funcions o taules de resum (taules hash).[3][4][5]

En una funció resum, qualsevol alteració de l'entrada provoca una sortida diferent

PropietatsModifica

Una funció és quelcom que relaciona una entrada   amb una sortida   :

 

i una funció hash relaciona unes dades de entrada amb un valor de sortida que s'acostuma a expressar en hexadecimal, per exemple la funció hash md5 :

 

  • Baix cost computacional i memòria
  • Compressió de dades
  • Uniformitat : valors de sortida imparcialment distrubuïts
  • Determinisme : amb el mateix valor d'entrada sempre s'ha d'obtenir la mateixa sortida.

Tipus de funcions hashModifica

AplicacionsModifica

Les funciones hash son usades en múltiples camps. Per exemple:

  • Són una eina bàsica per a la construcció d'utilitats més complexes:
    • Construcció d'estructures de dades: fan més eficients les cerques, i/o permeten assegurar les dades que contenen. Per exemple, les taules hash, o els arbres de Merkle.
    • Construcció d'esquemes de compromís.
    • Construcció d'algoritmes de xifrat/desxifrat.
    • Construcció de algoritmes generadors de nombres pseudoaleatoris.
    • Construcció de cadenes pseudoaleatòries.
    • Construcció d'algoritmes de prova de pertinència o no a un conjunt.
    • Construcció de mètodes de generació de segells de temps confiables.
  • Com a eina per a protegir la integritat:
  • Com a eina vinculada a la autenticació i control d'accés:
    • Autenticació d'entitats.
    • Protecció de claus.
    • Derivació de claus.
  • Com a eina pera la identificació i la rápida comparació de dades:
    • Empremtes digitals.
    • Identificació de continguts, com ara per exemple en xarxes P2P.
    • Identificació de registres en una base de dades per permetre un accés més ràpid als registres (fins i tot més ràpid que usant índexos).
    • Algoritmes de cerca de subcadenes.
    • Detecció de virus.

ReferènciesModifica

BibliografiaModifica