Liste de mots de PGP

Un article de Wikipédia, l'encyclopédie libre.

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « PGP word list » (voir la liste des auteurs).
  1. (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)
  2. (en) Patrick Juola, « Isolated Word Confusion Metrics and the PGPfone Alphabet », Oxford University, Dept. of Experimental Psychology, Ankara, Turkey,‎ (lire en ligne)
  3. (en) « The S/KEY One-Time Password System », Request for comments no 1760,
  4. (en) « A One-Time Password System », Request for comments no 2289,
  5. Mnemonic Encoding Word List sur GitHub