Tech●●●●●Difficulty 2 of 5

Comment un ordinateur sait-il qu'un fichier n'a pas été modifié ?

Change une seule lettre dans un fichier et son empreinte numérique devient méconnaissable : c'est ce principe qui sert à vérifier les téléchargements, à protéger les mots de passe et même à miner des bitcoins.

▶ Lancer l'histoire

Quand tu télécharges un fichier, comment savoir si un seul bit a été corrompu en chemin ? Comme tu n'as en général pas l'original sous la main pour comparer octet par octet, l'ordinateur fait passer le fichier par une fonction de hachage cryptographique, qui réduit n'importe quelle entrée, aussi grande soit-elle, à une empreinte courte et de taille fixe. La même entrée donne toujours la même empreinte, donc deux copies d'un fichier ne correspondent que si leurs empreintes correspondent aussi.

Ce qui rend cette empreinte fiable, c'est qu'un tout petit changement dans l'entrée produit un résultat totalement différent : changer une seule lettre bouleverse complètement l'empreinte. C'est pourquoi certains sites publient l'empreinte d'un fichier téléchargeable : si l'empreinte calculée chez toi ne correspond pas à celle publiée, c'est que quelque chose a changé.

Une fonction de hachage doit aussi résister à la triche. Il doit être difficile de retrouver une entrée à partir d'une empreinte donnée, difficile de trouver une deuxième entrée qui produit la même empreinte qu'une entrée connue, et difficile de trouver deux entrées différentes qui produisent la même empreinte. Les collisions sont les plus faciles à traquer, grâce à une astuce appelée l'attaque des anniversaires : une empreinte censée y résister doit donc être au moins deux fois plus longue qu'une empreinte qui doit seulement résister à l'inversion.

2x

la résistance aux collisions demande une empreinte deux fois plus longue

Les fonctions de hachage ne restent pas solides éternellement, et se fier à une vieille fonction est une erreur classique. Avec MD5, autrefois très utilisée, on calcule aujourd'hui des collisions en quelques secondes, et en février 2017 Google a annoncé une collision dans SHA-1, désormais considérée comme cassée. Le même principe à sens unique sert aussi au minage de Bitcoin, où des ordinateurs cherchent des entrées dont l'empreinte atteint une cible pour prouver qu'ils ont fourni le travail.

Quiz

0/3

  1. 1.Pourquoi comparer des empreintes révèle-t-il le moindre changement dans un fichier ?
  2. 2.Pourquoi les cryptographes exigent-ils une empreinte au moins deux fois plus longue pour la résistance aux collisions que pour la résistance à la préimage ?
  3. 3.Dans l'expérience de pensée avec Alice et Bob, que prouve l'empreinte d'Alice ?

Récap

La même entrée donne toujours la même empreinte ; une entrée différente ne donne presque jamais la même empreinte par hasard.

Le fait surprenant · Changer une seule lettre n'importe où dans un fichier immense produit une empreinte totalement différente et méconnaissable.

Sources (1)

Pas de source, pas d'affirmation. Chacun des 17 faits de cette leçon renvoie à au moins une de ces sources.

  1. [1]Cryptographic hash function · Wikipedia
D'autres leçons · 💻 Tech (3) Toutes les leçons « Tech » →

Une lumière de plus sur ta carte.

Reçois une leçon comme celle-ci chaque jour, sur les sujets que tu aimes. Gratuit, en deux ou cinq minutes.

Récupère la carte à partager de cette leçon ↗