[Math] Sécurité des mots de passe

WRInaute discret
Bonsoir à tous,

Voila, je me suis amusé a voir jusqu'a quel nombre de caractère un mot de passe retombait dans le "peu sécurisé". Il semblerait que ce nombre soit 17.

Voici mon calcul :
La plupart des mots de passe sur le net sont crypté via MD5.
MD5 transforme une chaine en une autre de façon irréversible en 32 caractères, chacun allant de 0 à F, ce qui nous fait 16^32 combinaisons.

Notre mot de passe, de N caractères, peut être composé des lettres du code ASCII, soit 0 à 255, c'est à dire 256 différentes. On a donc 256^N combinaisons. Le mot de passe a donc une sécurité stable tant que

256^N < 16^32
Car au dela, il y aura necessairement un autre mot de passe inférieur à N caractères qui vérifiera la comparaison avec le MD5.

LN(256^N) <= LN(16^32)
N*LN(256) <= 32*LN(16)
N <= 32*LN(16)/LN(256)
N <= 16

Donc, sachez le, un mot de passe de plus de 16 caractère ne sert à rien d'un point de vue sécurité :P

Si l'on autorisait que
- Lettres, N passerait à 27 (22)
- Chiffres, N passerait à 38
- Alphanum, N passerait à 24 (21)
Entre parenthèse, c'est si l'on prend en compte la casse.

Donc rien de tel qu'un petit symbole non alphanum pour sécuriser le tout, mais de combien de fois plus ?
LN(26*2+10)/LN(256) = 1.34
34% de gain en sécurité. Donc un pass de 8 caractère alphanum avec casse équivaut un 6 pour tout symboles confondus (à peu de choses près, mais au bénéfice pour la version "6x tout symboles").

Ceci dit, rassurez-vous, un passe de 8 caractères avec une minuscule, une maj et un chiffre minimum représente tout de même 218 340 105 584 896 = 62^8 combinaisons... (et 281 474 976 710 656 pour 256^6 :P)
 
WRInaute discret
Bahanix a dit:
256^N < 16^32
Car au dela, il y aura necessairement un autre mot de passe inférieur à N caractères qui vérifiera la comparaison avec le MD5

Cette condition n'ajoute aucun critère de sécurité. Ton interprétation est en effet fausse, car il se peut que deux mots de longueur x,y < N vérifie aussi la même comparaison. MD5 n'offrant aucune garantie sur ce point.

Au passage la transformation est supposée irréversible, les fonctions de hachage cryptographique ou fonction à sens unique (voir le lien wiki en anglais) sont supposées existantes (c'est un d'ailleurs une hypothèse très importante dans les systèmes cryptographiques ainsi que pour les preuves sans divulgation). Cependant leur existence n'est pas prouvée.

:arrow: http://en.wikipedia.org/wiki/One-way_function

Voilà, voilà
 
WRInaute discret
Le fait que ce soit ou non reversible n'est pas génant, je supposais ici que l'on casse la protection par essais successif de toutes les combinaisons.

"il se peut que deux mots de longueur x,y < N vérifie aussi la même comparaison"
Voila qui est ennuyeux pour mon calcul :P
Ceci dit, on a là un cas ou il est "probable" qu'il y ai une chaine y, qui, comme x est inférieur à N, alors qu'une chaine z supérieur aura necessairement une autre solution à md5(x)

Exemple :
Un mot de passe x de 256^15 combinaisons
comparé à 256^16 et 256^17

Il y a 256x plus de combinaisons dans 16 caractères que dans 15.
En gros, 0.39% des autres solutions se trouveraient avant 15 caractères et les 99,61% restant entre 15 et 16 caractères. Pour peu que le nombre d'autres solutions se compte sur les doigts des mains, un mot de passe de 15 caractères serait donc plus sûr que 17 caractères, où là, il y a au moins une solution avant 16 caractères, mais qui peu avoir un nombre de caractères aléatoire.

Ceci dit, il y a probablement des erreurs de calculs parci parlà :s
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut