Passwords are a bane of life on the Internet, but one Turing Award winner has an algorithmic approach that he thinks can make them not only easier to manage but also more secure.
The average user has some 20 passwords today, and in general the easier they are to remember, the less secure they are. When passwords are used across multiple websites, they become even weaker.
Manuel Blum, a professor of computer science at Carnegie Mellon University who won the Turing Award in 1995, has been working on what he calls "human computable" passwords that are not only relatively secure but also don't require us to memorize a different one for each site. Instead, we learn ahead of time an algorithm and a personal, private key, and we use them with the website's name to create and re-create our own unique passwords on the fly for any website at any time.
"I don't even have to remember if I have a password" for a given site, Blum explained last week at the Heidelberg Laureate Forum in Germany. Asked recently by his wife for his password on the REI website, for instance, "I could honestly say, I don't know if I'm registered at REI, but if I am, then my password is...."
Heidelberg Laureate Forum Foundation / C. Flemming Manuel Blum speaks at the 2015 Heidelberg Laureate Forum.
Essentially, the idea is that your algorithm and key give you an alternate letter or number for each letter in a website's name; that transformed set of values becomes your site-specific password.
Here's an example: One person's key might consist of a six-by-six matrix created from all 26 letters of the alphabet and all 10 digits, but not in the standard order. Rather, the first row consists of the first six letters on a Linotype typesetting machine: E, A, T, O, I and N. The remaining letters are likewise arranged according to the order used in those old devices, followed by the digits 0 through 9.
To transform a website name into a password, the user would use the matrix in combination with an algorithm dictating which letter gets replaced by what. Blum's example used a system following the directions on a compass. Starting with the first letter of the site name, the user goes "north" by one spot on the matrix to find the replacement for that letter. Next, he finds the second letter of the site name on the matrix and moves "east" to find the value to replace that one, followed by moving "south" to find the replacement for the third, "west" for the fourth, and so on until the entire website name has been encoded.
Sign up for CIO Asia eNewsletters.