Hash

De ALDEA WIKI
Ir a la navegación Ir a la búsqueda

Este artículo es parte del glosario de términos de la wiki, a través del cual se ofrecen definiciones cortas y simplificadas de una serie de conceptos que de momento no ameritan artículos más extensos o desarrollados.

Una función hash es una función matemática que toma cualquier texto o cualquier tipo de datos y lo convierte en una secuencia de números enteros. Estas funciones matemáticas tienen ciertas propiedades que le confieren cualidades ideales en criptografía.

  • Irreversibilidad: a partir del hash no se puede derivar matemáticamente el texto.
  • Resistente a colisiones: un mismo hash no puede generarse a partir de dos textos distintos.
  • Longitud fija: independientemente de la longitud de entrada en el texto, la salida de la función siempre tendrá la misma longitud.

Un ejemplo de un hash con la función sha3_256 aplicado a la cadena de caracteres “AldeaWiki” genera como resultado:

SHA3-256('AldeaWiki') = '8fdb565bff1a6bb257e8fe17c9f7257b80dddb79e39201eb68b607487f79733a'

No existe una forma eficiente de encontrar el mensaje “AldeaWiki” a partir del hash recién generado.

Las funciones hash son utilizadas en diversas aplicaciones hoy en día como:

  • Checksums: aplicando hash a un archivo se puede verificar su integridad y confirmar que el archivo no ha sido cambiado o vulnerado ya que el hash cambiaría.
  • Guardar contraseñas en bases de datos tradicionales.
  • Generar IDs únicos: algunas direcciones utilizadas en blockchains son hashes.

Algoritmos más conocidos de hash:[editar | editar código]

  • Familia SHA-2: basados en el concepto criptográfico Merkle-Damgard
    • SHA-256
    • SHA-512
  • Familia SHA-3: basados en el concepto criptográfico Sponge construction
    • SHA3-256
    • SHA3-512
    • Keccak-256
  • BLAKE2 / BLAKE2s / BLAKE2b
    • 160-bit
    • 224-bit
    • 256-bit
    • 384-bit
    • 512-bit
  • RIPEMD-160
    • 160-bit
    • 128-bit
    • 256-bit
    • 320-bit

En criptografía moderna existen muchos más algoritmos y combinaciones.