Liste de mots de PGP
La liste de mots de PGP (liste de mots de Pretty Good Privacy ; également appelée liste de mots biométriques pour les raisons expliquées ci-dessous) est une liste de mots utilisés pour transmettre des octets de données d'une manière claire et non ambiguë sur un canal vocal.
Ces mots ont le même objectif que l'alphabet phonétique utilisé par les pilotes de l'OTAN. La liste est cependant beaucoup plus longue, car elle contient deux mots pour chacune des 256 valeurs possibles pour un octet.
Histoire et structure
La liste de mots de PGP a été conçue en 1995 par Patrick Juola (en), un linguiste cybernéticien, et Philip Zimmermann, le créateur de PGP[1] - [2]. Les mots de la liste ont été soigneusement choisis pour leurs caractères phonétiques distinctifs, en utilisant des algorithmes génétiques pour sélectionner des listes de mots qui avaient des séparations optimales dans l'espace phonème. Les mots candidats pour la liste ont été extraits au hasard du Moby thesaurus de Grady Ward (en), puis ils ont été raffinés au cours d'itérations successives par des algorithmes génétiques. La recherche automatisée a convergé vers une solution optimisée en environ 40 heures sur un DEC Alpha, un ordinateur particulièrement rapide à cette époque.
La liste a été initialement conçue pour être utilisée dans un PGPfone, une application VoIP sécurisée, permettant à deux parties de comparer verbalement une chaîne d'authentification courte pour détecter une attaque de l'homme du milieu. On l'appelait une liste de mots biométriques parce que l'authentification dépendait du fait que les deux utilisateurs humains reconnaissaient les voix distinctes de chacun en lisant et comparant les mots sur le canal vocal, liant l'identité du locuteur aux mots, ce qui aidait à protéger contre une attaque de l'homme du milieu.
La liste peut être utilisée dans de nombreuses autres situations où une liaison biométrique d'identité n'est pas nécessaire, donc l'appeler une liste de mots biométriques peut être imprécis. Plus tard, la liste a été utilisée par les utilisateurs de PGP pour comparer et vérifier les empreintes de clé publique PGP sur un canal vocal. La représentation de l'empreinte par les mots de la liste de PGP est connue dans les applications PGP comme la représentation biométrique de l'empreinte. Lorsqu'elle a été appliquée à PGP, la liste a été raffinée, avec des contributions de Jon Callas. Plus récemment, la liste a été utilisée dans le Zfone et le protocole ZRTP, le successeur du PGPfone.
La liste est, en fait, composée de deux listes, chacune contenant 256 mots phonétiquement distincts, dans lesquelles chaque mot représente une valeur d'octet entre 0 et 255. Deux listes sont utilisées parce que la lecture à haute voix de longues séquences aléatoires de mots humains risque habituellement de générer trois types d'erreurs : 1) la transposition de deux mots consécutifs, 2) la répétition d'un mot, ou 3) l'omission d'un mot. Pour détecter les trois types d'erreurs, les deux listes sont utilisées alternativement pour représenter les octets d'ordre pair et les octets d'ordre impair dans la séquence d'octets. Dans les listes, chaque octet est représentée par deux mots différents, selon que l'octet apparaît à un décalage pair ou impair à partir du début de la séquence d'octets. Les deux listes se distinguent aisément par le nombre de syllabes de leurs mots : la liste pour les décalages pairs a des mots de deux syllabes alors que la liste pour les décalages impairs a des mots de trois syllabes. Les mots des deux listes ont des longueurs maximales de 9 et 11 lettres respectivement. C'est Zhahai Stewart qui a suggéré l'utilisation d'un système à deux listes.
Liste de mots de PGP
Hex | Mot pair | Mot impair |
---|---|---|
00 | aardvark | adroitness |
01 | absurd | adviser |
02 | accrue | aftermath |
03 | acme | aggregate |
04 | adrift | alkali |
05 | adult | almighty |
06 | afflict | amulet |
07 | ahead | amusement |
08 | aimless | antenna |
09 | Algol | applicant |
0A | allow | Apollo |
0B | alone | armistice |
0C | ammo | article |
0D | ancient | asteroid |
0E | apple | Atlantic |
0F | artist | atmosphere |
10 | assume | autopsy |
11 | Athens | Babylon |
12 | atlas | backwater |
13 | Aztec | barbecue |
14 | baboon | belowground |
15 | backfield | bifocals |
16 | backward | bodyguard |
17 | banjo | bookseller |
18 | beaming | borderline |
19 | bedlamp | bottomless |
1A | beehive | Bradbury |
1B | beeswax | bravado |
1C | befriend | Brazilian |
1D | Belfast | breakaway |
1E | berserk | Burlington |
1F | billiard | businessman |
20 | bison | butterfat |
21 | blackjack | Camelot |
22 | blockade | candidate |
23 | blowtorch | cannonball |
24 | bluebird | Capricorn |
25 | bombast | caravan |
26 | bookshelf | caretaker |
27 | brackish | celebrate |
28 | breadline | cellulose |
29 | breakup | certify |
2A | brickyard | chambermaid |
2B | briefcase | Cherokee |
2C | Burbank | Chicago |
2D | button | clergyman |
2E | buzzard | coherence |
2F | cement | combustion |
30 | chairlift | commando |
31 | chatter | company |
32 | checkup | component |
33 | chisel | concurrent |
34 | choking | confidence |
35 | chopper | conformist |
36 | Christmas | congregate |
37 | clamshell | consensus |
38 | classic | consulting |
39 | classroom | corporate |
3A | cleanup | corrosion |
3B | clockwork | councilman |
3C | cobra | crossover |
3D | commence | crucifix |
3E | concert | cumbersome |
3F | cowbell | customer |
Hex | Mot pair | Mot impair |
---|---|---|
40 | crackdown | Dakota |
41 | cranky | decadence |
42 | crowfoot | December |
43 | crucial | decimal |
44 | crumpled | designing |
45 | crusade | detector |
46 | cubic | detergent |
47 | dashboard | determine |
48 | deadbolt | dictator |
49 | deckhand | dinosaur |
4A | dogsled | direction |
4B | dragnet | disable |
4C | drainage | disbelief |
4D | dreadful | disruptive |
4E | drifter | distortion |
4F | dropper | document |
50 | drumbeat | embezzle |
51 | drunken | enchanting |
52 | Dupont | enrollment |
53 | dwelling | enterprise |
54 | eating | equation |
55 | edict | equipment |
56 | egghead | escapade |
57 | eightball | Eskimo |
58 | endorse | everyday |
59 | endow | examine |
5A | enlist | existence |
5B | erase | exodus |
5C | escape | fascinate |
5D | exceed | filament |
5E | eyeglass | finicky |
5F | eyetooth | forever |
60 | facial | fortitude |
61 | fallout | frequency |
62 | flagpole | gadgetry |
63 | flatfoot | Galveston |
64 | flytrap | getaway |
65 | fracture | glossary |
66 | framework | gossamer |
67 | freedom | graduate |
68 | frighten | gravity |
69 | gazelle | guitarist |
6A | Geiger | hamburger |
6B | glitter | Hamilton |
6C | glucose | handiwork |
6D | goggles | hazardous |
6E | goldfish | headwaters |
6F | gremlin | hemisphere |
70 | guidance | hesitate |
71 | hamlet | hideaway |
72 | highchair | holiness |
73 | hockey | hurricane |
74 | indoors | hydraulic |
75 | indulge | impartial |
76 | inverse | impetus |
77 | involve | inception |
78 | island | indigo |
79 | jawbone | inertia |
7A | keyboard | infancy |
7B | kickoff | inferno |
7C | kiwi | informant |
7D | klaxon | insincere |
7E | locale | insurgent |
7F | lockup | integrate |
Hex | Mot pair | Mot impair |
---|---|---|
80 | merit | intention |
81 | minnow | inventive |
82 | miser | Istanbul |
83 | Mohawk | Jamaica |
84 | mural | Jupiter |
85 | music | leprosy |
86 | necklace | letterhead |
87 | Neptune | liberty |
88 | newborn | maritime |
89 | nightbird | matchmaker |
8A | Oakland | maverick |
8B | obtuse | Medusa |
8C | offload | megaton |
8D | optic | microscope |
8E | orca | microwave |
8F | payday | midsummer |
90 | peachy | millionaire |
91 | pheasant | miracle |
92 | physique | misnomer |
93 | playhouse | molasses |
94 | Pluto | molecule |
95 | preclude | Montana |
96 | prefer | monument |
97 | preshrunk | mosquito |
98 | printer | narrative |
99 | prowler | nebula |
9A | pupil | newsletter |
9B | puppy | Norwegian |
9C | python | October |
9D | quadrant | Ohio |
9E | quiver | onlooker |
9F | quota | opulent |
A0 | ragtime | Orlando |
A1 | ratchet | outfielder |
A2 | rebirth | Pacific |
A3 | reform | pandemic |
A4 | regain | Pandora |
A5 | reindeer | paperweight |
A6 | rematch | paragon |
A7 | repay | paragraph |
A8 | retouch | paramount |
A9 | revenge | passenger |
AA | reward | pedigree |
AB | rhythm | Pegasus |
AC | ribcage | penetrate |
AD | ringbolt | perceptive |
AE | robust | performance |
AF | rocker | pharmacy |
B0 | ruffled | phonetic |
B1 | sailboat | photograph |
B2 | sawdust | pioneer |
B3 | scallion | pocketful |
B4 | scenic | politeness |
B5 | scorecard | positive |
B6 | Scotland | potato |
B7 | seabird | processor |
B8 | select | provincial |
B9 | sentence | proximate |
BA | shadow | puberty |
BB | shamrock | publisher |
BC | showgirl | pyramid |
BD | skullcap | quantity |
BE | skydive | racketeer |
BF | slingshot | rebellion |
Hex | Mot pair | Mot impair |
---|---|---|
C0 | slowdown | recipe |
C1 | snapline | recover |
C2 | snapshot | repellent |
C3 | snowcap | replica |
C4 | snowslide | reproduce |
C5 | solo | resistor |
C6 | southward | responsive |
C7 | soybean | retraction |
C8 | spaniel | retrieval |
C9 | spearhead | retrospect |
CA | spellbind | revenue |
CB | spheroid | revival |
CC | spigot | revolver |
CD | spindle | sandalwood |
CE | spyglass | sardonic |
CF | stagehand | Saturday |
D0 | stagnate | savagery |
D1 | stairway | scavenger |
D2 | standard | sensation |
D3 | stapler | sociable |
D4 | steamship | souvenir |
D5 | sterling | specialist |
D6 | stockman | speculate |
D7 | stopwatch | stethoscope |
D8 | stormy | stupendous |
D9 | sugar | supportive |
DA | surmount | surrender |
DB | suspense | suspicious |
DC | sweatband | sympathy |
DD | swelter | tambourine |
DE | tactics | telephone |
DF | talon | therapist |
E0 | tapeworm | tobacco |
E1 | tempest | tolerance |
E2 | tiger | tomorrow |
E3 | tissue | torpedo |
E4 | tonic | tradition |
E5 | topmost | travesty |
E6 | tracker | trombonist |
E7 | transit | truncated |
E8 | trauma | typewriter |
E9 | treadmill | ultimate |
EA | Trojan | undaunted |
EB | trouble | underfoot |
EC | tumor | unicorn |
ED | tunnel | unify |
EE | tycoon | universe |
EF | uncut | unravel |
F0 | unearth | upcoming |
F1 | unwind | vacancy |
F2 | uproot | vagabond |
F3 | upset | vertigo |
F4 | upshot | Virginia |
F5 | vapor | visitor |
F6 | village | vocalist |
F7 | virus | voyager |
F8 | Vulcan | warranty |
F9 | waffle | Waterloo |
FA | wallet | whimsical |
FB | watchword | Wichita |
FC | wayside | Wilmington |
FD | willow | Wyoming |
FE | woodlark | yesteryear |
FF | Zulu | Yucatan |
Exemple
Chaque octet d'une chaîne d'octets est codé au moyen d'un mot. Par exemple, l'octet le plus à gauche (c'est-à -dire l'octet 0) est considéré comme pair et est encodé à l'aide de la table mot pair. L'octet suivant (c'est-à -dire l'octet 1) est considéré comme impair et est encodé à l'aide de la table mot impair. Ce processus se répète jusqu'à ce que tous les octets soient codés. Ainsi, E582 produit topmost Istanbul, tandis que 82E5 produit miser travesty.
De même, l'empreinte de clé publique PGP suivante :
E582 94F2 E9A2 2748 6E8B
061B 31CC 528F D7FA 3F19
est représentée par :
topmost Istanbul Pluto vagabond
treadmill Pacific brackish dictator
goldfish Medusa afflict bravado
chatter revolver Dupont midsummer
stopwatch whimsical cowbell bottomless
Autres listes de mots
Il existe plusieurs autres listes de mots utilisés pour transmettre des données d'une manière claire et non ambiguë au moyen d'un canal vocal :
- l'alphabet phonétique de l'OTAN associe les lettres et les chiffres à des mots ;
- le système S/KEY (en) traduit des nombres de 64 bits en 6 mots courts de 1 à 4 caractères au moyen d'un dictionnaire de 2048 mots publiquement accessible (le même dictionnaire est utilisé dans le RFC 1760[3] et le RFC 2289[4]) ;
- le système Diceware mappe cinq chiffres aléatoires en base 6 (presque 13 bits d'entropie) à un mot d'un dictionnaire de 7 776 mots uniques ;
- FIPS 181: un générateur de mot de passe automatisé convertit des nombres aléatoires en mots quelque peu prononçables ;
- un codage mnémotechnique convertit 32 bits de données en 3 mots à partir d'un vocabulaire de 1626 mots[5] ;
- What3words code les coordonnées géographiques en 3 mots du dictionnaire.
Notes et références
- (en) Patrick Juola et Philip Zimmermann, « Whole-Word Phonetic Distances and the PGPfone Alphabet », Proceedings of the International Conference of Spoken Language Processing (ICSLP-96),‎ (lire en ligne)
- (en) Patrick Juola, « Isolated Word Confusion Metrics and the PGPfone Alphabet », Oxford University, Dept. of Experimental Psychology, Ankara, Turkey,‎ (lire en ligne)
- (en) « The S/KEY One-Time Password System », Request for comments no 1760, .
- (en) « A One-Time Password System », Request for comments no 2289, .
- Mnemonic Encoding Word List sur GitHub