Balloon hashing
Balloon hashing is a key derivation function presenting proven memory-hard password-hashing and modern design. It was created by Dan Boneh, Henry Corrigan-Gibbs (both at Stanford University) and Stuart Schechter (Microsoft Research) in 2016.[1][2] It is a recommended function in NIST password guidelines.[3]
The authors claim that Balloon:
- has proven memory-hardness properties,
- is built from standard primitives: it can use any standards non-space-hard cryptographic hash function as a sub-algorithm (e.g., SHA-3, SHA-512),
- is resistant to side-channel attacks: the memory access pattern is independent of the data to be hashed,
- is easy to implement and matches the performance of similar algorithms.
Balloon is compared by its authors with Argon2, a similarly performing algorithm.[1]
Algorithm
There are three steps in the algorithm:[1]
- Expansion, where an initial buffer is filled with a pseudorandom byte sequence derived from the password and salt repeatedly hashed.
- Mixing, where the bytes in the buffer are mixed time_cost number of times.
- Output, where a portion of the buffer is taken as the hashing result.
References
- ^ a b c Boneh, Dan; Corrigan-Gibbs, Henry; Schechter, Stuart (2016-01-11). "Balloon Hashing: A Memory-Hard Function Providing Provable Protection Against Sequential Attacks". ePrint. 2016 (27). Retrieved 2019-09-03.
- ^ "Balloon Hashing". Stanford Applied Crypto Group. Stanford University. Retrieved 2019-09-03.
- ^ NIST SP800-63B Section 5.1.1.2
External links
- Research prototype code on Github
- Python implementation
- Rust implementation
- Alwen; Blocki (2016). "Efficiently Computing Data-Independent Memory-Hard Functions". ePrint. 2016 (115).
- Alwen; Blocki (2016). "Towards Practical Attacks on Argon2i and Balloon Hashing". ePrint. 2016 (759).
See what we do next...
OR
By submitting your email or phone number, you're giving mschf permission to send you email and/or recurring marketing texts. Data rates may apply. Text stop to cancel, help for help.
Success: You're subscribed now !