El hash de globo es una función de derivación clave que presenta un diseño moderno y comprobado de hash de contraseñas duras en la memoria. Fue creado por Dan Boneh , Henry Corrigan-Gibbs (ambos en la Universidad de Stanford ) y Stuart Schechter ( Microsoft Research ) en 2016. [1] [2] Es una función recomendada en las pautas de contraseñas del NIST . [3]
Los autores afirman que Balloon:
- tiene propiedades probadas de dureza de la memoria,
- se construye a partir de primitivas estándar: puede usar cualquier función hash criptográfica estándar no espacial como un subalgoritmo (por ejemplo, SHA-3 , SHA-512 ),
- es resistente a los ataques de canal lateral : el patrón de acceso a la memoria es independiente de los datos que se van a codificar,
- es fácil de implementar y coincide con el rendimiento de algoritmos similares.
Los autores comparan Balloon con Argon2 , un algoritmo de rendimiento similar. [1]
Algoritmo
Hay tres pasos en el algoritmo: [1]
- Expansión, donde un búfer inicial se llena con una secuencia de bytes pseudoaleatoria derivada de la contraseña y la sal repetidamente hash.
- Mezcla, donde los bytes en el búfer se mezclan time_cost número de veces.
- Salida, donde una parte del búfer se toma como resultado del hash.
Referencias
- ^ a b c Boneh, Dan; Corrigan-Gibbs, Henry; Schechter, Stuart (11 de enero de 2016). "Hash de globos: una función de memoria que proporciona una protección demostrable contra ataques secuenciales" . ePrint . 2016 (027) . Consultado el 3 de septiembre de 2019 .
- ^ "Hash de globos" . Grupo de cifrado aplicado de Stanford . Universidad de Stanford . Consultado el 3 de septiembre de 2019 .
- ^ NIST SP800-63B Sección 5.1.1.2
enlaces externos
- Investigación de código prototipo en Github
- Implementación de Python
- Alwen; Blocki. "Funciones de disco duro de memoria independientes de datos de cálculo eficiente" . ePrint . 2016 (115).
- Alwen; Blocki. "Hacia ataques prácticos sobre Argon2i y Hashing de globos" . ePrint . 2016 (759).