Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

Authentication protocols often rely on humans dealing with large numbers correctly. For example, when a user logs into a remote machine using SSH for the first time, she is prompted to confirm that the fingerprint of the server is the expected fingerprint. The user can phone the owner of the server, and confirm that the sequence of 32 hex digits are the ones shown on her screen.

The process seems vulnerable to the shortcomings of human perception, memory and energy. In practise, users do not check the fingerprint, because it is too tiresome.

The fingerprint could be made more memorable. For example, it is conceivable that a sequence of 32 hex digits could be reversibly converted to a sequence of eight English words. This would work as long as all implementations share the exact same bidirectional mapping between a tuple of four hex digits and between an English word. (I'm not asking for a review of this example, I'm just trying to explain the problem by explaining a naive solution.)

Within the cryptographic community, what is this problem called? Has there been any research on it?

share|improve this question
    
Well, you'll certainly need more than eight words. 32 hex digits is 128 bits of entropy, there are only at best, say, 3000 sufficiently distinct and common words to pick from (since they have to be easy to remember), so you'd need $\frac{128}{\log_2(3000)} \approx 11$ words, and consider many fingerprints are 256-512 bits in size today. Still an interesting problem though. –  Thomas Dec 3 '12 at 14:03
1  
Potential search keyword: “usable security”. Potential link to relevant papers: Cambridge security research blog. Also, look for discussion around xkcd 936. –  Gilles Dec 3 '12 at 18:54
2  

2 Answers 2

up vote 7 down vote accepted

I look forward to seeing more research on ways of representing cryptographically significant numbers in ways that are easier for humans to memorize or use in other ways.

memorizing and typing

There are several ways to bidirectionally convert a series of completely random bits into a series of English words and back again. (That series of English words is easier for a touch-typist to type in, easier for a human to memorize, easier for a human to visually compare two sequences, etc. than the same bits in the form of hex digits).

The most popular wordlists seem to be:

  • the Diceware wordlist of 7,776 unique words: any 64 bit number can be encoded into five words and back again.
  • The S/KEY one-time password system uses 2048 unique words: any 64 bit number can be encoded into 6 words and back again.
  • The mnemonicode system uses a dictionary of 1633 unique words: any 64 bit number can be encoded into 7 words and back again.
  • The PGP word list of 512 unique words: any 64 bit number can be encoded into 8 words and back again. (This system has an extra feature, not found in the other systems, that allows a repeated word to be immediately detected and the duplicated word dropped without error).

I find all of these systems much easier to use than raw hex digits. And by definition (because they are all various ways of encoding a completely random 64 bit number) they are all just as secure as 64 bits represented as raw hex digits or as a series of ASCII characters that includes lowercase, digits, punctuation, etc.

The size of the dictionary is a tradeoff: small dictionaries let you use common words that are much easier to remember how to spell, but force you to use more words to store a 64 bit number. Larger dictionaries force you to use uncommon words that may be difficult to spell or to distinguish from each other, but allow you to use fewer words to store that same number.

Alas, all the research I've seen in designing such wordlists involves making the words as distinguishable as possible from each other when one human reads the series of words to another over a noisy audio link.

comparing

The "visual host key" is intended to make it easy for humans to compare two SSH fingerprints. (See "ASCII Art Fingerprints"; also "Easy to remember fingerprints for data?" ) Compared to hex digits or English words, this "visual host key" seems to be easier for humans to visually compare two fingerprints. Alas, compared to a series of English words, it seems to be more difficult for a human to memorize and type back in a key in this form.

share|improve this answer

Authentication can be done using three factors , what the user knows ( password , passphrase etc), what the user posses( smart card, pda etc ) , what the user is ( biometrics, retina scans etc), more here

Now Well the answer is multi fold . 1. If for a certain application , its difficult for the user to remember/memorize certain passphrase , then alternatives can be other factors like above 2. If the problem is with user memorizing , then its more of psychology research. There are few things like implicit learning etc being researched upon. For example check this paper and here

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.