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 tapent l’utilisateur et l’attaque sur la clé qui est issus du mot de passe. L’attaque par force brute consiste à utiliser une très grande puissance de calcul pour essayer toutes les combinaisons possible d’une chaine donnée. Les supercalculateurs quantique 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ûtes des centaines de millions de dollars, soit en utilisant le calcul distribué à travers internet tel que Folding@home. Ces grandes puissances de calcul ce mesure en FLOPS.

Le FLOPS (Floating-point Operations Per Second) est une mesure qui permet d’évaluer la puissance des microprocesseurs en nombre de calcul en virgule flottante par seconde. En juin 2009 le plus gros supercalculateur était capable de réaliser 1105 TéraFLOPS (10^12 FLOPS ce qui équivaut à un millier de milliards d’opération par seconde) pour une consommation énergétique de 2400KW. Tandis que le projet Folding@home représente une puissance de calcul 4500 TéraFLOPS avec 400 000 machines relié entre elles à travers internet en Juin 2009. Au niveau mondiale l’ensemble de la puissance de calcul disponibles en Juin 2009 fait 22 600 TéraFLOPS soit 22.6 PétaFLOPS (10^15 FLOPS ce qui équivaut un millions de milliard de d’opération 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és à tenir le TOP500 des plus gros supercalculateurs mondiaux.

Avec les données fournis 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.

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

TFLOPS2009log

A présent en prenant les données de 1993 à 2009, en suivant l’exponentiel ont peu 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 ralentis par des problèmes liés au cout énergétique et à la limite de Von Neumann-Landauer (Landauer, 1961). La puissance de calcul estimé 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é par la limite de Laudauer.

Attaque sur la clé

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

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 prendrais à calculer toutes les clés possibles il faut diviser le nombre total de clé possible 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 / 356. Soit 1.63 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 disponible sur 256bits.

Si cette estimation est fausse, si la puissance de calcul d’ici a 10 ans est de plusieurs milliard de YottaFlops (10^33 FLOPS), il faudrait tout de même 3.67 x 10^30 année 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 vue des connaissances actuelles, les scientifique 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érique avec des majuscules et des minuscules il a 62 caractères disponibles contre 94 s’il est constitué de caractère ASCII imprimable.

Sur ce tableau où la puissance de calcul du plus gros supercalculateur recensé en Juin 2009 est reporté, il apparait qu’un mot de passe de 8 caractères alphanumérique 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érique. Il apparait aussi le fait qu’il est plus sure de choisir un mot de passe plus long de quelques caractère que de choisir un mot de passe plus cours 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 total de tous 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é 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ée la réussite d’une attaque par force brute sur une clé de 256bits  sans que son algorithme ai des failles qui ai été découverte 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 pensez « phrase de passe » que « mot de passe ». Car le minimum aujourd’hui pour avoir un mot de passe sure est de 14 caractères ASCII. C’est en ce sens que de plus en plus d’outils de chiffrement utilise des éléments extérieur pour validé l’authentification. Par exemple, Truecrypt peut recevoir un fichier à la place du mot passe, les 64 premiers octets de ce fichier faisant office de mot de passe.

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

Le FLOPS (Floating-point Operations Per Second) est une mesure qui permet d’évaluer la puissance des microprocesseurs en nombre de calcul en virgule flottante par seconde. En juin 2009 le plus gros supercalculateur[1] était capable de réalisé 1105 TéraFLOPS (1105 x 10^12 FLOPS ce qui équivaut à un millier de milliards d’opération par seconde) pour une consommation énergétique de 2400KW. Tandis que le projet Folding@home représente une puissance de calcul 4500 TéraFLOPS avec 400 000 machines relié entre elles à travers internet en Juin 2009. Au niveau mondiale l’ensemble de la puissance de calcul disponibles en Juin 2009 fait 22 600 TéraFLOPS soit 22.6 PétaFLOPS (22.6 x 10^15 FLOPS ce qui équivaut un millions de milliard de d’opération 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 fournis par le TOP500, voici une représentation de la courbe de progression de la puissance de calcul en TFLOPS de 1993 à 2009 (tableau des valeurs en annexe1) :