Strengthening Data Security is a Top Priority for Purdue Science Researcher
With the rise of theft of personal data and account passwords, the notion of having one's information compromised has unfortunately become a prevalent expectation in society. However, amidst this growing concern, security researchers at Purdue University have emerged as leaders in the battle against such cyber threats. Ranked #2 in security by CSRankings.org, Purdue researchers are actively working to devise innovative strategies and technologies to safeguard individuals' sensitive data, striving to restore a sense of security in an increasingly vulnerable digital landscape.
Jeremiah Blocki, associate professor of computer science in the College of Science, considers himself an “applied theorist”- an admitted oxymoron, but an apt description for his work with password authentication.
Blocki has been working in this field for over ten years and says it’s a very practical challenge, but deeply theoretical as well.
To understand Blocki’s research, it’s good to review the concept of a hash fuction – a fundamental concept in computer science and cryptography. It is a mathematical algorithm that takes an input, such as a string or a file, and produces a fixed-size output called a hash value or hash code. The primary purpose of a hash function is to convert data of arbitrary length into a unique, deterministic, and fixed-size representation. This representation, known as the hash, serves as a digital fingerprint for the input data.
One important property of a hash function is that even a small change in the input will produce a significantly different hash value. This property, called the avalanche effect, ensures that even a minor alteration in the input will result in a completely different hash, making it extremely difficult to reverse-engineer or retrieve the original input.
If an attacker steals a password hash they can try to crack the password by looping through as many guesses as they can, as quickly as possible. However fast or slow the attacker can do this, depends a lot on the hash function.
Security conscious developers have focused on slowing attackers down by making the hash function moderately expensive to compute. One of the earliest attempts to accomplish this used a technique called hash iteration. BCRYPT and PBKDF2 are two prominent examples of password hash functions that use this approach. While BCRYPT and PBKDF2 have both seen widespread usage, Blocki and his team found that these hash functions provide inadequate protection for most user passwords.
“To deter an attacker using BCRYPT or PBKDF2 one would need to make the hash iteration count so large that it would take honest users several minutes to authenticate” said Blocki. He added “The challenge is creating a hash function that slows down the attacker without delaying authentication for honest users.”
Blocki’s most recent work has focused on addressing this challenge using a newer technique called “memory hard functions.” The basic idea is to force the attacker to lock up large amounts of memory in addition to the attacker’s computing power and time.
“Many folks thought a solution had been found in 2015 with the culmination of a two-year long Password Hashing Competition (PHC) that resulted in a winning algorithm called Argon2,” said Blocki.
Argon2i [the initially recommended mode for password hashing] was initially viewed as the gold standard for password hashing, but Blocki’s discoveries quickly challenged that view.
Researchers found that Argon2i was not as memory hard as people were hoping.
“My team discovered that an attacker’s costs for computing the function on many guesses is similar to computing just one guess,” said Blocki. “Essentially the attacker can purchase hundreds of guesses for the price of one which is not really a property you want in a password hash function.” He added, “We want to make sure the cost increases commensurately with the number of guesses they try.”
What is the solution?
So, if Argon2i isn’t as memory hard as hoped, what can be done? Blocki and his team have successfully modified the source code to make it more memory-hard. They released the code in 2017 and continue to make improvements that they hope will be widely adopted.
Blocki’s work has also led to updated recommendations from Argon2’s designers who now recommend using Argon2id for password hashing. While Blocki agrees that Argon2id provides stronger security guarantees against password attackers than Argon2i, he also believes it is possible to design even stronger memory-hard functions.
Blocki’s research continues to make strides toward finding a standard that will make all of our information more secure.
Associate Professor Jeremiah Blocki is a theoretical computer scientist interested in applying fundamental computer science ideas to address practical problems in usable privacy and security. His research interests are in developing usable authentication protocols for humans that are easy to create and remember. Prior to joining Purdue University in 2016, Blocki earned his PhD in computer science on Usable Human Authentication at Carnegie Mellon University and completed a postdoc at Microsoft Research New England. He earned an NSF CAREER Award in 2021 for his work on developing cryptographic tools to improve the security and usability of human authentication, especially password authentication.