Jump to content

Balloon hashing

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Elmidae (talk | contribs) at 20:56, 22 November 2019 (ce). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Balloon hashing is a key derivation function presenting proven memory-hard password-hashing and modern design. It was created by Dan Boneh and Henry Corrigan-Gibbs (Stanford University) and Stuart Schechter (Microsoft Research) in 2016.[1][2] It is a recommended function in NIST password guidelines.

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 (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.

It is compared with Argon2, a similarly performing algorithm.

Algorithm

The first step is expansion, where an initial buffer is filled with a pseudorandom byte sequence derived from the password and salt repeatedly hashed.

In the second step mixing is performed, where the bytes in the buffer are mixed time_cost number of times.

In the third step the system outputs the buffer as the hashing result.

References

  1. ^ Boneh, Dan; Corrigan-Gibbs, Henry; Schechter, Stuart (2016-01-11). "Balloon Hashing: A Memory-Hard Function Providing Provable Protection Against Sequential Attacks". ePrint. 2016 (027). Retrieved 2019-09-03.
  2. ^ "Balloon Hashing". Stanford Applied Crypto Group. Stanford. Retrieved 2019-09-03.