Les FLOPS, les clés et la taille des mots de passe

En matière d’attaque par force brute il faut bien différencier l’attaque sur le mot de passe que tape l’utilisateur et l’attaque sur la clé qui est issue du mot de passe. L’attaque par force brute consiste à utiliser une très grande puissance de calcul pour essayer toutes les combinaisons possibles d’une chaîne donnée. Les supercalculateurs quantiques n’étant encore que des objets de recherche, ils ne feront pas l’objet de cette démonstration.

Comme il a été déjà démontré, une clé s’obtient par le calcul de 3 éléments : Le mot de passe, la salt et des itérations. La présence de SALT empêche l’utilisation de rainbow table, et les itérations permettent de ralentir la génération de la clé. Ce billet ne prendra pas en compte les Itérations et le type de Hash dans le calcul du mot de passe. Cela sera fait dans un prochain billet.

La puissance de calcul

Il existe 2 façons de se procurer une très forte puissance de calcul, soit en achetant un supercalculateur qui coûte des centaines de millions de dollars, soit en utilisant le calcul distribué à travers internet tel que Folding@home. Ces grandes puissances de calcul se mesurent en FLOPS.

Le FLOPS (Floating-point Operations Per Second) est une mesure qui permet d’évaluer la puissance des microprocesseurs en nombre de calculs en virgule flottante par seconde. En juin 2009 le plus gros supercalculateur était capable de réaliser 1105 TéraFLOPS (1105 x 10^12 FLOPS ce qui équivaut à un millier de milliards d’opérations par seconde) pour une consommation énergétique de 2480 kW. Tandis que le projet Folding@home représente une puissance de calcul de 4500 TéraFLOPS avec 400 000 machines reliées entre elles à travers internet en juin 2009. Au niveau mondial, l’ensemble de la puissance de calcul disponible en juin 2009 fait 22 600 TéraFLOPS soit 22,6 PétaFLOPS (22,6 x 10^15 FLOPS ce qui équivaut à un million de milliards d’opérations par seconde).

Cette puissance de calcul est en augmentation exponentielle depuis 1993, date à laquelle le professeur Hans Meuer de l’Université de Mannheim et son équipe ont commencé à tenir le TOP500 des plus gros supercalculateurs mondiaux.

Avec les données fournies par le TOP500, voici une représentation de la courbe de progression de la puissance de calcul en TFLOPS de 1993 à 2009 :

TFLOPS2009

On constate que la progression est exponentielle, la courbe noire représentant la tendance de cette progression.

À présent, si on reprend les mêmes données mais en modifiant l’axe des ordonnées en lui appliquant une échelle logarithmique de 10, on obtient un graphique lisible.

TFLOPS2009log

À présent, en prenant les données de 1993 à 2009, en suivant l’exponentielle, on peut essayer de prévoir l’évolution de la puissance de calcul pour les 10 prochaines années.

TFLOPS2019

Cette courbe suit bien le modèle des années précédentes. Avec une échelle logarithmique de 10 elle apparait plus lisible.

TFLOPS2019log

Si la courbe exponentielle d’augmentation de la puissance de calcul suit son cours sans être ralentie par des problèmes liés au coût énergétique et à la limite de Von Neumann-Landauer (Landauer, 1961). La puissance de calcul estimée pour 2019 serait de 12 895 528 TFLOPS soit 12.89 ExaFLOPS (12.89 x 10^18 FLOPS).

Mais il est très probable que ces données soient revues avec l’apparition d’ici à 10 ans des supercalculateurs quantiques qui ne seront pas affectés par la limite de Landauer.

Attaque sur la clé

En matière de chiffrement les clés font aujourd’hui 256 bits, voire plus. Avoir une clé de 256 bits, signifie qu’il y a 2^256 clés différentes possibles.

L’ensemble de la puissance de calcul aujourd’hui disponible est de 22.6 PFLOPS (22.6 x 10^15 FLOPS) si toute la puissance de calcul mondiale est réunie. Pour savoir le temps que prendrait le calcul de toutes les clés possibles il faut diviser le nombre total de clés possibles par la puissance de calcul. Mais ce calcul n’est pas exact, car il ne prend pas en compte les itérations, ni le type de hash et dire que 1 FLOPS = 1 tentative de calcul de hash est trop grossier. Toutefois cela peut donner une indication approximative de : 2^256 / 22.6×10^15 / 3600 / 24 / 365. Soit 1.62 x 10^53 années pour calculer l’ensemble des clés possibles.

En 2019 l’ensemble de la puissance de calcul mondiale sera probablement de 12.89 ExaFlops ; avec cette puissance de calcul, il faudrait 2.84 x 10^50 années pour calculer l’ensemble des clés disponibles sur 256 bits.

Si cette estimation est fausse, si la puissance de calcul d’ici à 10 ans est de plusieurs milliards de YottaFlops (10^33 FLOPS), il faudrait tout de même 3.67 x 10^36 années pour calculer l’ensemble des clés possibles.

 

Taille de la clé

Puissance de calcul

Temps moyen en année

1,15792E+77

2,26E+16

1,62467E+53

1,15792E+77

1,29E+19

2,8473E+50

1,15792E+77

1E+33

3,67174E+36

Comme ordre de grandeur, et au vu des connaissances actuelles, les scientifiques s’accordent à dire que la terre a 4.54 x 10^9 années et que l’univers a 15 x 10^9 années.

Attaque sur le mot de passe

Le mot de passe est plus vulnérable que la clé car il est codé sur bien moins de données. Si le mot de passe est fait de caractères alphanumériques avec des majuscules et des minuscules il a 62 caractères disponibles contre 94 s’il est constitué de caractères ASCII imprimables.

Sur ce tableau où la puissance de calcul du plus gros supercalculateur recensé en juin 2009 est reportée, il apparait qu’un mot de passe de 8 caractères alphanumériques aura l’ensemble de ses combinaisons testé en seulement 0.19 secondes. Si ce même mot de passe utilise des caractères ASCII, il faudra alors 5.51 secondes. Alors qu’il faudra plus de 355 ans à ce même supercalculateur pour tester toutes les combinaisons d’un mot de passe de 14 caractères alphanumériques. Il apparait aussi le fait qu’il est plus sûr de choisir un mot de passe plus long de quelques caractères que de choisir un mot de passe plus court mais avec une complexité plus importante.

Longueur du mot de passe

Complexité

Nombre de combinaisons

Puissance de calcul

Temps moyen en année

Temps moyen en jour

Temps moyen en seconde

8

62

2,1834E+14

1,105E+15

6,27E-09

2,29E-06

0,20

8

94

6,09569E+15

1,105E+15

1,75E-07

6,38E-05

5,52

12

62

3,22627E+21

1,105E+15

0,09

33,79

2,92E+06

12

94

4,7592E+23

1,105E+15

13,66

4984,92

4,31E+08

14

62

1,24018E+25

1,105E+15

355,89

1,30E+05

1,12E+10

14

94

4,20523E+27

1,105E+15

1,21E+05

4,40E+07

3,81E+12

16

62

4,76724E+28

1,105E+15

1,37E+06

4,99E+08

4,31E+13

16

94

3,71574E+31

1,105E+15

1,07E+09

3,89E+11

3,36E+16

18

62

1,83253E+32

1,105E+15

5,26E+09

1,92E+12

1,66E+17

18

94

3,28323E+35

1,105E+15

9,42E+12

3,44E+15

2,97E+20

20

62

7,04423E+35

1,105E+15

2,02E+13

7,38E+15

6,37E+20

20

94

2,90106E+39

1,105E+15

8,33E+16

3,04E+19

2,63E+24

En suivant la courbe de progression, dans 10 ans la puissance de calcul totale sera de 1.29 x 10^19 FLOPS. Ce qui signifie que ce même mot de passe de 14 caractères alphanumériques aura toutes ses combinaisons testées en seulement 11 jours.

Longueur du mot de passe

Complexité

Nombre de combinaisons

Puissance de calcul

Temps moyen en année

Temps moyen en jour

Temps moyen en seconde

8

62

2,1834E+14

1,29E+19

5,37E-13

1,96E-10

1,69E-05

8

94

6,09569E+15

1,29E+19

1,50E-11

5,47E-09

4,73E-04

12

62

3,22627E+21

1,29E+19

7,93E-06

2,89E-03

250,10

12

94

4,7592E+23

1,29E+19

1,17E-03

0,43

3,69E+04

14

62

1,24018E+25

1,29E+19

0,03

11,13

9,61E+05

14

94

4,20523E+27

1,29E+19

10,34

3773,00

3,26E+08

16

62

4,76724E+28

1,29E+19

117,18

4,28E+04

3,70E+09

16

94

3,71574E+31

1,29E+19

9,13E+04

3,33E+07

2,88E+12

18

62

1,83253E+32

1,29E+19

4,50E+05

1,64E+08

1,42E+13

18

94

3,28323E+35

1,29E+19

8,07E+08

2,95E+11

2,55E+16

20

62

7,04423E+35

1,29E+19

1,73E+09

6,32E+11

5,46E+16

20

94

2,90106E+39

1,29E+19

7,13E+12

2,60E+15

2,25E+20

Conclusion

D’ici ces 10 prochaines années, la réussite d’une attaque par force brute sur une clé de 256bits  sans que son algorithme ait des failles qui aient été découvertes est peu probable. Par contre pour ce qui est de la taille des mots de passe, la recommandation de 8 caractères est aujourd’hui complètement dépassée. Mais si on va plus loin, c’est le concept de mot de passe qui est désuet, il faut à présent plus penser « phrase de passe » que « mot de passe ». Car le minimum aujourd’hui pour avoir un mot de passe sûr est de 14 caractères ASCII. C’est en ce sens que de plus en plus d’outils de chiffrement utilisent des éléments extérieurs pour valider l’authentification. Par exemple, Truecrypt peut recevoir un fichier à la place du mot de passe, les 64 premiers octets de ce fichier faisant office de mot de passe.

5 réflexions sur “Les FLOPS, les clés et la taille des mots de passe”

  1. Très bon document qui résume bien la théorie sur ces 3 points fortement liés ! Cependant, il ne faut pas perdre de vue que si la théorie est parfaite, dans la pratique il y a régulièrement des failles et des techniques de contournements. Aussi, une « phrase de passe » compliquée c’est bien, ne pas l’écrire sur un post-it c’est mieux 😉

    NEED MOAR ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *