Skip to content

SohKa/diceware-wordlists-fr

 
 

Repository files navigation

Alternative french diceware/xkcd936 wordlists

Une série de listes de mots pour générer des phrases secrètes (passphrases) facile à retenir et à taper sur clavier physique ou virtuel.

Inspiré par xkcd 936 et les nouvelles listes pour diceware de l'eff.

La liste française pour diceware originale est plutôt optmisée pour générer des passphrases plus courtes.

Les listes

Toutes les listes sont générées avec genwordlist.

genwordlist utilise le fichier de lexique (http://www.lexique.org) pour tenter de générer une liste des mots les plus utilisés, en supprimant les homophones.

Les paramètres utilisés pour générer ces listes sont visible dans le fichier makefile.

Les types de liste sont:

  • 4k: listes de 4096 mots pour utilisation purement logiciel (à la xkcd)
  • 5d: listes de 7776 mots pour diceware 5 dés, comparable à la liste large de l'eff
  • 4d: listes de 1296 mots pour diceware 4 dés, comparable à la liste short_1 de l'eff
  • 4d_2: listes de 1296 mots pour diceware 4 dés, avec racine unique de 3 caractères et distance d'édition d'au moins 3, comparable à la liste short_2 de l'eff

Statistiques

fichier mots non ascii avg len bit/mot bit/car
wordlist_fr_5d 7776 0 6.74 12.9 1.9
wordlist_fr_4k 4096 0 5.77 12.0 2.1
wordlist_fr_4d 1296 0 4.48 10.3 2.3
wordlist_fr_4d_2 1296 0 7.05 10.3 1.5

bit/mot: entropie par mot tiré dans la liste de mot (dépends uniquement du nombre de mots dans la liste)

bit/car: entropie par caractère, en moyenne. Plus cette valeur est grande, moins il y aura de caractères dans les passphrases généré, en moyenne, à entropie égale.

(D'autres listes avec des caratèristiques différentes sont disponibles dans le dossier extra.)

Générer des passphrases

Un générateur de passphrase, rolldice, est disponible dans le dossier src.

$ src/rolldice wordlist_4k.txt
rendre ultime renifle loger rame

Par défaut rolldice tente de générer un mot de passe avec au moins 56 bits d'entropie avec la liste fournie, il tirera donc:

  • 5 mots dans une liste 4k, soit une entropie de 60 bits
  • 6 mots dans une liste 4d, soit une entropie de 62 bits
  • 5 mots dans une liste 5d, soit une entropie de 64.6 bits

Entropie? Il s'agit de la force du mot de passe, calculé en bit. Pour découvrir un mot de passe avec une entropie de n bits par une attaque en force (en essayant toutes les combinaisons possibles), il faudra en moyenne 2^n / 2 essais.

Il est toutefois possible de spécifier un nombre de mots à tirer par rolldice.

combien de mots choisirs

Disclaimer: je n'ai aucune formation ou réelle compétence en crypto ou en théorie de l'information. L'anssi dit que en dessous de 80 bits d'entropie, c'est faible.

Le site original de diceware et l'article de l'eff conseillent 6 mots depuis une liste 5d (77.5 bits) ou 8 mots depuis une liste 4d (82.7 bits). xkcd parle de 44 bits d'entropie (4 mots dans une liste de 2048).

En réalité, tout dépends de la difficulté d'attaquer le mot de passe et des moyens de l'attaquant, xkcd parle de 1000 essais par secondes, on est dans l'attaque par le réseau (« weak remote web service »). Pour une attaque locale sur un hash faible comme md5 on atteint au moins 200 milliards essais par seconde sur du matériel disponible à tous (voir ce benchmark de hashcat par exemple).

Exemples de temps nécessaire pour brute forcer des mots de passe de différentes entropies

vitesse \ entropie 48 (4 mots ∈ 4k) 52 (4 mots ∈ 8k) 60 (5 mots ∈ 4k) 65 (5 mots ∈ 8k) 72 (6 mots ∈ 4k) 78 (6 mots ∈ 8k)
1 TH/s 2 minutes 37 minutes 6 jours 213 jours 74 ans 4k ans
100 GH/s (Skype*) 23 minutes 6 heures 66 jours 5 ans 7 siècles > 10k ans
10 GH/s (SHA512*) 3 heures 2 jours 1 an 58 ans 7k ans > 10k ans
1 GH/s (Lotus*) 1 jour 26 jours 18 ans 5 siècles > 10k ans lol
100 MH/s (md5crypt*) 16 jours 260 jours 1 siècle 5k ans > 10k ans lol
10 MH/s (winzip*) 162 jours 7 ans 1k ans > 10k ans lol lol
1 MH/s (keepass*) 4 ans 71 ans > 10k ans > 10k ans lol lol
100 kH/s (bcrypt*) 44 ans 7 siècles > 10k ans lol lol lol
10 kH/s (veracrypt*) 4 siècles 7k ans lol lol lol lol

Vitesse en Hashs par seconde (1TH/s = 10^12 hashs par seconde), entropie en bits («48 (4 mots ∈ 4k)» 48 bits d'entropie, obtenu en tirant 4 mots d'un fichier de 4096 mots), «lol» de l'odre de plusieurs millions d'années.

* exemples tiré du benchmark de hashcat

Tout ça sous réserve que je ne me sois pas trompé dans mes calculs (cf. disclaimer)

Licences

Le code source est sous licence MIT

La liste de mots Lexique est sous licence CC BY-NC-SA 3.0, aucune idée si la même licence doit s'appliquer à une liste de quelques milliers de mots généré automatiquement sans le reste des informations. J'ai envie de dire non.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 59.2%
  • HTML 33.4%
  • Makefile 7.4%