title: Whirlpool
text: # Whirlpool
  
  WHIRLPOOL es una función de hash diseñada gracias a Vincent Rijmen y Paulo S. L. M. Barreto. El hash ha sido recomendado por el proyecto NESSIE y ha sido adoptado por la Organización Internacional de Estandarización (ISO) y la Comisión Electrotécnica Internacional (IEC) como parte del estándar internacional ISO/IEC 10118-3.
  
  WHIRLPOOL fue desarrollado después del algoritmo de cifrado por bloques Square. WHIRLPOOL es una construcción Miyaguchi-Preneel basada en una modificación del Advanced Encryption Standard (AES). Dado un mensaje de un tamaño menor de $2^{256}$ bits, devuelve un hash de 512 bits.
  
  Los autores han declarado que WHIRLPOOL no está patentado (ni lo estará). Puede ser usado libremente para cualquier propósito y las implementaciones de referencia son de dominio público.
  
  El nombre del algoritmo es en referencia a la Galaxia Whirlpool en la constelación Canes Venatici.
  
  ## Hashes WHIRLPOOL
  
  El algoritmo WHIRLPOOL ha tenido dos revisiones desde la especificación original (año 2000). En la primera revisión, en el 2001, la S-Box generada de manera aleatoria con buenas propiedades criptográficas se cambió a una cuyas propiedades fueron mejoradas y era más sencilla de implementar en hardware. En la segunda revisión, en 2003, la matriz de difusión fue cambiada.
  
  En los siguientes ejemplos, versión original de WHIRLPOOL será llamada WHIRLPOOL-0 y la primera revisión WHIRLPOOL-1.
  
  Los hashes de 512 bits (64 bytes) se representan como 128 caracteres hexadecimales. En estos ejemplos se muestran entradas de 43 bytes ASCII y su correspondiente hash de WHIRLPOOL:
  
  Incluso un pequeño cambio hará que (con una probabilidad de $1-10^{-154})$ el resultado de la función sea completamente distinto, por ejemplo, cambiando d por c:
  
  El hash de la cadena vacía es:
  
  ## Vulnerabilidad de WHIRLPOOL
  
  La investigación sobre el análisis de seguridad de la función WHIRLPOOL ha revelado que, en promedio, la introducción de 8 fallos aleatorios es suficiente para comprometer el mensaje hash de 512 bits de WHIRLPOOL que se está procesando y la clave secreta de HMAC-WHIRLPOOL en el contexto de la Nube de Cosas (CoT). Esto enfatiza la necesidad de mayores medidas de seguridad en su implementación.
  
  