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