Paper 2018/112

Just in Time Hashing

Benjamin Harsha and Jeremiah Blocki


In the past few years billions of user passwords have been exposed to the threat of offline cracking attempts. Such brute-force cracking attempts are increasingly dangerous as password cracking hardware continues to improve and as users continue to select low entropy passwords. Key-stretching techniques such as hash iteration and memory hard functions can help to mitigate the risk, but increased key-stretching effort necessarily increases authentication delay so this defense is fundamentally constrained by usability concerns. We introduce Just in Time Hashing (JIT), a client side key-stretching algorithm to protect user passwords against offline brute-force cracking attempts without increasing delay for the user. The basic idea is to exploit idle time while the user is typing in their password to perform extra key-stretching. As soon as the user types in the first character(s) of their password our algorithm immediately begins filling memory with hash values derived from the character(s) that the user has typed thus far. We conduct a user study to guide the development of JIT e.g. by determining how much extra key-stretching could be performed during idle cycles or how many consecutive deletions JIT may need to handle. Our security analysis demonstrates that JIT can substantially increase guessing costs over traditional key-stretching algorithms with equivalent (or less) authentication delay. Specifically an empirical evaluation using existing password datasets demonstrates that JIT increases guessing costs by nearly an order of magnitude in comparison to standard key-stretching techniques with comparable delay. We provide a proof-of-concept implementation of a Just in Time Hashing algorithm by modifying Argon2.

Note: Correcting typo in the definition of advantage

Available format(s)
Cryptographic protocols
Publication info
Published elsewhere. MAJOR revision.Proceedings of the 3rd IEEE European Symposium on Security and Privacy (EURO S&P 2018)
Just in Time HashingPasswordsMemory Hard Functions
Contact author(s)
jblocki @ purdue edu
2020-04-23: revised
2018-01-30: received
See all versions
Short URL
Creative Commons Attribution


      author = {Benjamin Harsha and Jeremiah Blocki},
      title = {Just in Time Hashing},
      howpublished = {Cryptology ePrint Archive, Paper 2018/112},
      year = {2018},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.