Improved fingerprint representation
Neal H. Walfield
neal at walfield.org
Wed Apr 8 22:25:51 CEST 2015
Hi,
Most of you are probably familiar with the diceware password generator
[1]. Very briefly: instead of thinking of a password, one:
- rolls a die 5 times,
- converts this into a base 6 number, and,
- indexes a list of "7776 short words, abbreviations and
easy-to-remember character strings."
This is repeated until the desired password strength is reached. The
resulting passphrase has a quantifiable amount of entropy and is
allegedly easy to remember.
I used this technique recently and found many of the words to be
difficult to remember. Here are the first few entries:
11111 a
11112 a&p
11113 a's
11114 aa
11115 aaa
11116 aaaa
11121 aaron
11122 ab
11123 aba
11124 ababa
11125 aback
11126 abase
11131 abash
11132 abate
11133 abbas
11134 abbe
11135 abbey
11136 abbot
11141 abbott
I personally don't think the words are that memorable. Further, many
are very similar to others ('abbot' and 'abbott', for instance). I
think this has to do with two factors: the list has too many entries
and it strives for short words.
I created a new, shorter list. It is based on Voice of America's
Special English Word Book [2]. These are 1500 simple English words
that form the foundation of any English speaker's / learner's
vocabulary [3]. Thus, they are easier to remember.
Because we only need 6^4 words, I first removed words that are easily
misspelled. For this, I consulted OED's list of commonly misspelled
words. Then, I took the shortest 6^4 words.
While doing this, it occured to me that such a list could be used to
display fingerprints. Personally, I often have trouble comparing the
40 hexadecimal characters on the piece of paper with the 40
hexadecimal characters on the screen.
I whipped together a little awk script that converts fingerprints
using this list (I just use the first 1024 entries, i.e., 10-bit
chunks). In terms of the number of characters, the phrases are about
twice as long as a fingerprint, but they seem to me to be much easier
to read aloud and compare. Here are a few examples:
8061 5870 F5BA D690 3336 86D0 F2AD 85AC 1E42 B367
grow heat hijack corn music effect adult partner
high custom capture evil marry funeral car prison
A4D9 4E92 B098 6AB5 EE9D CD75 5DE2 4996 5B03 58A2
listen explain request marry job many enter loud
part poison pull industry invite female coffee call
5200 54A5 3C19 CBB2 E7F5 6396 8723 4295 786B 0BAD
distance accident delegate dig behind charge chance shoot
exile edge floor period interest rain mental return
11C2 94DF 1D6C 9698 FEFE 231D 3BF6 09C6 8BAF CDBD
attach among develop only fertile effect ignore nice
bread force next happy old change shock fire
(It now occurs to me that this is probably also a good way to display
ssh fingerprints.)
To encourage this readable adoption, I propose adding it to the output
of gpg --list-keys. Thus, instead of:
pub 3744R/0xAACB3243630052D9 2015-04-07 [expires: 2025-04-04]
Key fingerprint = 8F17 7771 18A3 3DDA 9BA4 8E62 AACB 3243 6300 52D9
uid [ultimate] Neal H. Walfield <neal at walfield.org>
uid [ultimate] Neal H. Walfield <neal at gnupg.org>
uid [ultimate] Neal H. Walfield <neal at g10code.com>
sub 2048R/0x7223B56678E02528 2015-04-07 [expires: 2017-04-06]
sub 2048R/0xC2B819056C652598 2015-04-07 [expires: 2017-04-06]
sub 2048R/0xA3506AFB820ABD08 2015-04-07 [expires: 2017-04-06]
gpg --list-keys would print:
pub 3744R/0xAACB3243630052D9 2015-04-07 [expires: 2025-04-04]
Key fingerprint = 8F17 7771 18A3 3DDA 9BA4 8E62 AACB 3243 6300 52D9
* Key phrase = idea engine fresh daughter light self major request
* hurt hospital mate parade curfew house agency moderate
uid [ultimate] Neal H. Walfield <neal at walfield.org>
uid [ultimate] Neal H. Walfield <neal at gnupg.org>
uid [ultimate] Neal H. Walfield <neal at g10code.com>
sub 2048R/0x7223B56678E02528 2015-04-07 [expires: 2017-04-06]
sub 2048R/0xC2B819056C652598 2015-04-07 [expires: 2017-04-06]
sub 2048R/0xA3506AFB820ABD08 2015-04-07 [expires: 2017-04-06]
What do others think?
Thanks,
Neal
[1] http://world.std.com/~reinhold/diceware.html
[2] https://en.wikipedia.org/wiki/Special_English
[3] https://en.wikipedia.org/wiki/Passive_vocabulary
[4] https://www.oxforddictionaries.com/us/words/common-misspellings-american
More information about the Gnupg-devel
mailing list