stringtranslate.com

Remolino (función hash)

En informática y criptografía , Whirlpool (a veces llamado WHIRLPOOL ) es una función hash criptográfica . Fue diseñada por Vincent Rijmen (cocreador del Estándar de cifrado avanzado ) y Paulo SLM Barreto , quien la describió por primera vez en 2000.

El hash ha sido recomendado por el proyecto NESSIE . También ha sido adoptado por la Organización Internacional de Normalización (ISO) y la Comisión Electrotécnica Internacional (IEC) como parte de la norma internacional conjunta ISO/IEC 10118-3 .

Características de diseño

La Galaxia del Remolino (M51), que inspiró el nombre del algoritmo. [2]

Whirlpool es un hash diseñado a partir del cifrado de bloque Square , y se considera que pertenece a esa familia de funciones de cifrado de bloque.

Whirlpool es una construcción de Miyaguchi-Preneel basada en un Estándar de Cifrado Avanzado (AES) sustancialmente modificado.

Whirlpool toma un mensaje de cualquier longitud menor a 2256 bits y devuelve un resumen del mensaje de 512 bits . [3]

Los autores han declarado que

"WHIRLPOOL no está (y nunca estará) patentado . Puede utilizarse sin cargo para cualquier propósito". [2]

Cambios de versión

El Whirlpool original se llamará Whirlpool-0 , la primera revisión de Whirlpool se llamará Whirlpool-T y la última versión se llamará Whirlpool en los siguientes vectores de prueba.

Estructura interna

La función hash Whirlpool es una construcción de Merkle-Damgård basada en un cifrado de bloque tipo AES W en modo Miyaguchi-Preneel . [2]

El cifrado de bloque W consta de una matriz de estados de 8×8 bytes, para un total de 512 bits.

El proceso de cifrado consiste en actualizar el estado con cuatro funciones de ronda a lo largo de 10 rondas. Las cuatro funciones de ronda son SubBytes (SB), ShiftColumns (SC), MixRows (MR) y AddRoundKey (AK). Durante cada ronda, el nuevo estado se calcula como .

Subbytes

La operación SubBytes aplica una permutación no lineal (la caja S) a cada byte del estado de forma independiente. La caja S de 8 bits se compone de 3 cajas S más pequeñas de 4 bits.

Cambio de columnas

La operación ShiftColumns desplaza cíclicamente cada byte en cada columna del estado. Los bytes de la columna j se desplazan hacia abajo en j posiciones.

Filas mixtas

La operación MixRows es una multiplicación por la derecha de cada fila por una matriz de 8×8 sobre . La matriz se elige de modo que el número de rama (una propiedad importante cuando se analiza la resistencia al criptoanálisis diferencial ) sea 9, que es el máximo.

Agregar clave redonda

La operación AddRoundKey utiliza la operación xor bit a bit para agregar una clave calculada por el programa de claves al estado actual. El programa de claves es idéntico al cifrado en sí, excepto que la función AddRoundKey se reemplaza por una función AddRoundConstant que agrega una constante predeterminada en cada ronda.

Hashes de remolino

El algoritmo Whirlpool ha sufrido dos revisiones desde su especificación original en 2000.

Las personas que incorporen Whirlpool probablemente utilizarán la versión más reciente de Whirlpool; si bien no se conocen debilidades de seguridad en las versiones anteriores de Whirlpool, la versión más reciente tiene mejores características de eficiencia de implementación de hardware y también es probable que sea más segura. Como se mencionó anteriormente, también es la versión adoptada en la norma internacional ISO/IEC 10118-3 .

Los hashes Whirlpool de 512 bits (64 bytes) (también denominados resúmenes de mensajes ) se representan normalmente como números hexadecimales de 128 dígitos .
A continuación se muestra una entrada ASCII de 43 bytes (sin incluir comillas) y los hashes Whirlpool correspondientes:

Implementaciones

Los autores proporcionan implementaciones de referencia del algoritmo Whirlpool, incluida una versión escrita en C y una versión escrita en Java . [2] Estas implementaciones de referencia se han publicado en el dominio público. [2]

Sin embargo, las investigaciones sobre el análisis de seguridad de la función Whirlpool han 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 (CoTs). Esto enfatiza la necesidad de aumentar las medidas de seguridad en su implementación. [5]

Adopción

Dos de los primeros programas criptográficos ampliamente utilizados que comenzaron a utilizar Whirlpool fueron FreeOTFE , seguido por TrueCrypt en 2005. [ cita requerida ]

VeraCrypt (una bifurcación de TrueCrypt ) incluyó a Whirlpool (la versión final) como uno de sus algoritmos hash compatibles. [6]

Véase también

Referencias

  1. ^ Florian Mendel1, Christian Rechberger, Martin Schläffer, Søren S. Thomsen (24 de febrero de 2009). El ataque de rebote: criptoanálisis de remolino reducido y Grøstl (PDF) . Cifrado rápido de software: 16.º taller internacional.{{cite conference}}: CS1 maint: nombres múltiples: lista de autores ( enlace ) CS1 maint: nombres numéricos: lista de autores ( enlace )
  2. ^ abcde Paulo SLM Barreto (2008-11-25). "La función hash WHIRLPOOL". Archivado desde el original el 2017-11-29 . Consultado el 2018-08-09 .
  3. ^ Barreto, Paulo SLM y Rijmen, Vincent (24 de mayo de 2003). "La función hash WHIRLPOOL". Archivado desde el original (ZIP) el 26 de octubre de 2017. Consultado el 9 de agosto de 2018 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  4. ^ Kyoji, Shibutani y Shirai, Taizo (11 de marzo de 2003). "Sobre la matriz de difusión empleada en la función de hash Whirlpool" (PDF) . Consultado el 9 de agosto de 2018 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  5. ^ Li, W., Gao, Z., Gu, D., Ge, C., Liao, L., Zhou, Z., Liu, Y. y Liu, Z. (2017). Análisis de seguridad de la función hash Whirlpool en la nube de las cosas. Transacciones KSII en Internet y sistemas de información, 11(1), 536–551. https://doi.org/10.3837/tiis.2017.01.028
  6. ^ "Whirlpool". Documentación de VeraCrypt . IDRIX . Consultado el 9 de agosto de 2018 .

Enlaces externos