MathLvl
Question transversaleMathsNSICryptographie et sécurité

Combien de fichiers faut-il pour que deux d'entre eux aient la même empreinte numérique ?

Une empreinte de n bits prend N = 2ⁿ valeurs. Comme pour le paradoxe des anniversaires, une collision devient probable vers √(2 ln 2 · N) ≈ 1,18 · 2^(n/2) fichiers : environ 5 milliards pour 64 bits. D'où des empreintes de 256 bits.

Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.

Pourquoi cette question : un modèle d'introduction

Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.

Quand je télécharge un logiciel, le site affiche parfois une « empreinte SHA-256 » pour vérifier le fichier. Je me suis demandé comment une suite de 64 caractères pouvait identifier n'importe quel fichier, alors qu'il existe bien plus de fichiers que d'empreintes. Il y a forcément des collisions : la question est de savoir quand on risque d'en rencontrer une.

L'enjeu et les notions du programme

Calculer une probabilité par le complémentaire et un produit, puis l'approcher par l'exponentielle pour dimensionner un outil informatique.

Mathématiques

  • Probabilité de l'événement contraire, produit de probabilités (première)
  • Approximation ln(1 − x) ≈ −x, fonction exponentielle (terminale)
  • Dénombrement, principe des tiroirs (terminale)

Numérique et sciences informatiques

  • Fonctions de hachage, dictionnaires (première et terminale)
  • Sécurisation : intégrité des données (terminale)

Le plan de l'exposé en 9,5 min

  1. 1. Introduction

    1 min

    Une fonction de hachage associe à tout fichier une empreinte de taille fixe. Comme il y a plus de fichiers que d'empreintes, deux fichiers ont parfois la même : c'est une collision. Problématique : à partir de combien de fichiers une collision devient-elle probable ?

  2. 2. Mathématiques : le paradoxe des anniversaires généralisé

    4 min

    On suppose les empreintes réparties au hasard parmi N valeurs. La probabilité que k fichiers aient des empreintes toutes différentes est (1-1/N)(1-2/N)…(1-(k-1)/N).

    En passant au logarithme et en utilisant ln(1-x)≈-x pour x petit : ln P≈-(1+2+…+(k-1))/N=-(k(k-1))/2N≈-k²/2N. Donc P≈ e^(-k²/(2N)).

    Une collision a une chance sur deux quand P=1/2 : k²/2N=ln2, soit k=√(2ln2· N)≈1,18 √N. Pour N=365, on retrouve 23 personnes. Pour une empreinte de 64 bits, N=2⁶⁴ et k≈1,18×2³²≈5 milliards : un nombre atteint par les grandes bases de données.

  3. 3. NSI : choisir la taille de l'empreinte

    3 min

    Une empreinte de n bits n'offre donc qu'environ n/2 bits de sécurité contre les collisions. Pour SHA-256, il faudrait environ 2¹²⁸ fichiers : hors de portée. La fonction MD5 (128 bits) n'est plus utilisée pour la sécurité, car on sait fabriquer des collisions bien plus vite que 2⁶⁴ essais.

    En NSI, le même phénomène existe dans les tables de hachage des dictionnaires Python : les collisions sont fréquentes et gérées par le programme, qui compare ensuite les clés. Pour la sécurité, en revanche, une collision permettrait de remplacer un fichier par un autre sans que l'empreinte change.

  4. 4. Conclusion

    1,5 min

    Les collisions apparaissent bien plus tôt qu'on ne le croit : vers la racine carrée du nombre d'empreintes. C'est pourquoi les empreintes de sécurité font 256 bits. J'ouvre sur le stockage des mots de passe, qui utilise aussi le hachage.

Ce que j'écris au tableau

Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.

P( aucune collision )=Π_i=1^(k-1)(1-i/N)≈ e^(-k²/(2N))
P=1/2⇔ k≈√(2ln2 N)≈1,18 √N N=2⁶⁴: k≈5×10⁹

Conclusion : la réponse à la question

Le nombre de fichiers nécessaire pour une collision est de l'ordre de la racine carrée du nombre d'empreintes. Ce calcul, issu du paradoxe des anniversaires, fixe la taille des empreintes utilisées en sécurité.

Les questions probables du jury

Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.

Pourquoi une collision existe-t-elle forcément ?

Principe des tiroirs : avec plus de N fichiers, au moins deux partagent une empreinte.

Justifiez ln(1 − x) ≈ −x.

La tangente à la courbe de ln(1-x) en 0 a pour équation y=-x.

Que vaut 1 + 2 + … + (k − 1) ?

(k(k-1))/2 : somme des termes d'une suite arithmétique.

Pourquoi le modèle « au hasard » est-il raisonnable ?

Une bonne fonction de hachage se comporte comme une fonction aléatoire : un petit changement du fichier change l'empreinte de façon imprévisible.

Combien de personnes pour une chance sur deux d'anniversaire commun ?

√(2ln2×365)≈22,5 : 23 personnes.

Les pièges qui coûtent des points

  • Croire qu'il faut N/2 fichiers pour une collision.
  • Confondre trouver une collision quelconque et trouver un fichier ayant une empreinte donnée (2ⁿ essais).
  • Oublier que l'approximation suppose k petit devant N.

Revoir les notions

Autres questions : cryptographie et sécurité

Toutes les questions maths-nsi →

Préparer l'oral, pas seulement le contenu

Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.

Méthode : traiter une question de Grand oral →