Crytographie: Longueurs de clefs et mots de passe

Posté par  . Modéré par Fabien Penso.
Étiquettes :
0
27
avr.
2000
Sécurité

On parle de plus en plus souvent de cryptographie "forte" avec des
clefs très longues, et quelques incompréhensions existent sur la
signification de ces différents chiffres.

Une clef plus longue pour plus de sécurité ?
Raccourci simpliste utilisé, hélas dans certains textes de Loi faute de
meilleure mesure de la "solidité" d'un algo de cryptage, il y a pourtant
peu de rapport entre la longueur de la clef et la solidité.
La longueur de la clef mesure la difficulté d'une attaque par tentative
exhaustive de toutes les clefs possibles.
Hélas, la répartition non aléatoire des clefs, les faiblesses mathématiques
de certains algorithmes ou les erreurs d'implémentations jouent souvent
pour beaucoup plus que l'algorithme lui-même.

Quelle taille de clef est réputée solide ?
Les experts considèrent actuellement qu'une longueur de clef de 128 bits
est nécessaire pour garantir qu'un secret ainsi protégé restera
raisonablement secret pendant encore une décennie, malgré l'augmentation de
la puissance de calcul et l'amélioration des méthodes de cryptanalyse.
A titre d'exemple, l'algorithme TripleDes, qui utilise 3 itérations de DES
avec 2 clefs de 8 caractères sur 7 bits, soit une longueur de clef de 112
bits (on parle improprement de tripleDES 168 bits), est à la fois l'un des
plus solides car il a survécu à un nombre incroyable d'études et de
tentatives d'attaques, et est également en fin de carrière car les attaques
exhaustives commencent à devenir envisageables d'ici quelques générations
de processeurs.
Des algorithmes plus prometteurs existent mais sont encore en phase de
test, il est en effet toujours envisageable qu'un mathématicien ingénieux
trouve une attaque qui simplifie fortement le décryptage.

Quel rapport avec mon mot de passe ?
Un rapport étroit en réalité. un mot de passe n'est rien d'autre qu'une
clef. L'une des utilisations principales de DES est de crypter les mots de
passe sur UNIX. DES utilise 8 caractères, d'où la longueur maximale de 8
caractères pour les mots de passe UNIX sur les vieux systèmes qui utilisent
encore cet algorithme. Chaque caractère est transformé en une série de 7
bits (code ASCII) soit des valeurs entre 0 et 127.
En réalité, 26 lettres minuscules, 26 majuscules, 10 chiffres et une
poignée de caractères de ponctuation, et l'ensemble des valeurs possibles
pour un caractère est réduit à 6 bits (64 possibilités).
Par ailleurs, les mots de passe sont habituellement "lisibles", c'est à
dire qu'ils obéissent à des règles d'enchainement. Ainsi après un "T", on
trouvera beaucoup plus probablement un "O" qu'un "C" et ainsi de suite.
Bruce Schneier, un guru vivant de cryptographie donne le chiffre moyen de 4
bits par caractère de mot de passe. Soit 16 possibilités environ pour
chaque lettre.
Un exemple au hazard… VOUS! supposez que vous publiez les 4 premiers
caractères de votre mot de passe, combien de caractères est-ce qu'un
inconnu devrait essayer avant de trouver le 5ième, plus ou moins de 10 ?
Bien sur, si vous utilisez un mot de passe constitué uniquement de
chiffres, chaque caractère représente une "entropie" de seulement 3,3 bits.
On est loin des 7 bits théoriques…

Cela veut dire que si votre mot de passe fait 6 caractères de long,
contient des chiffres et des lettres tout en restant "prononcable", cela
représente une longueur de clef de 6x6 = 36 bits (64 milliards de
possibilités)
Quant aux sites bancaires qui ne vous laissent entrer qu'un code de 4
chiffres : 4x3.3 = 14 bits (16 000 possibilités)
Sachant qu'il faut en général de l'ordre de une seconde pour essayer un
million de codes (c'est une approximation honteusement simpliste mais pas
très loin de la réalité), vous venez de comprendre pourquoi les mots de
passe "traditionnels" sont devenus bien faibles.

Un petit truc pour compte vite : si on ajoute 10 bits, cela multiplie par
1000 le nombre de clefs (1024 exactement). donc 40 bits = environ 1 000
000 000 000 = mille milliards de clefs… quelques jours de calcul ou bien
quelques secondes sur des machines immensément puissantes.
128 bits : 8 + 12 x 10, soit 128 (2 puissance 8) suivi de 12 groupes de
"000" : 128 000 000 000 000 000 000 000 000 000 000 000. A ce rythme, ca
laisse le temps de voir venir…

Un mot de passe "classique" équivalent à une clef de 128 bits contient
128/4= 32 caractères.
Les mots de passe sur Windows sont cryptés par groupes de 7 caractères,
soit 28 bits en moyenne pour les plus longs (2 minutes environ)

Comment "durcir" un mot de passe ?
élargissez le spectre des caractères utilisés : majuscules, minuscules,
chiffres, caractères "étendus" (profitez de votre clavier francais pour
taper des ç, é ù ou autres è, utilisez les séquences d'échappement (ALT+NNN
sur Windows) pour les bizarreries de l'ascii, comme Æ, ± etc. Ceci
contribue à augmenter le nombre de bit par caractère (max. 7 ou 8 selon les
algorithmes). Puis utilisez le maximum de caractères possibles.
Un mot de passe de 7 caractères très diversifiés fait environ 40 bits, ce
qui le rend très raisonablement solide. Après, il n'y a plus qu'à s'en
souvenir!

NdM. : cette dépêche a été initialement publiée le 27/04/2000 à 03h26, perdue lors d'une migration du site, retrouvée et remise en ligne le 1er mai 2012 (les éventuels commentaires initiaux ont été perdus).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.