Función de derivación de claves de memoria dura
El hash de globo es una función de derivación de claves que presenta un hash de contraseñas con capacidad de memoria comprobada y un diseño moderno. 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 de dureza de memoria demostradas ,
- se construye a partir de primitivas estándar: puede utilizar cualquier función hash criptográfica estándar que no requiera espacio como un subalgoritmo (por ejemplo, SHA-3 , SHA-512 ),
- es resistente a ataques de canal lateral : el patrón de acceso a la memoria es independiente de los datos 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
El algoritmo consta de tres pasos: [1]
- Expansión, donde un búfer inicial se llena con una secuencia de bytes pseudoaleatoria derivada de la contraseña y la sal repetidas veces.
- Mezcla, donde los bytes en el búfer se mezclan time_cost número de veces.
- Salida, donde se toma una parte del buffer como resultado del hash.
Referencias
- ^ abc Boneh, Dan; Corrigan-Gibbs, Henry; Schechter, Stuart (11 de enero de 2016). "Balloon Hashing: una función de memoria difícil que proporciona protección demostrable contra ataques secuenciales". ePrint . 2016 (27) . Consultado el 3 de septiembre de 2019 .
- ^ "Balloon Hashing". Stanford Applied Crypto Group . Universidad de Stanford . Consultado el 3 de septiembre de 2019 .
- ^ NIST SP800-63B Sección 5.1.1.2
Enlaces externos
- Código del prototipo de investigación en Github
- Implementación de Python
- Implementación de Rust
- Alwen; Blocki (2016). "Computación eficiente de funciones de memoria independientes de los datos". ePrint . 2016 (115).
- Alwen; Blocki (2016). "Hacia ataques prácticos a Argon2i y Balloon Hashing". ePrint . 2016 (759).