Vous avez probablement vu une chaîne de hachage ou une valeur de somme de contrôle lors d’une mise à jour logicielle ou d’un téléchargement de fichier. Cela ressemble à du bruit aléatoire : une longue chaîne de chiffres hexadécimaux ou un court numéro attaché à un fichier. Mais cela répond à un objectif vital. C’est une empreinte digitale. Si même une seule donnée change, cette empreinte digitale change complètement. Ce mécanisme garantit que ce que vous avez téléchargé correspond exactement à ce qui a été envoyé, jusqu’au dernier octet.
Les deux méthodes les plus courantes pour y parvenir sont les sommes de contrôle et les vérifications de redondance cyclique (CRC). Bien qu’ils semblent similaires, ils fonctionnent selon des principes différents et servent des niches légèrement différentes dans le monde des protocoles Internet et du stockage de données. Comprendre la différence est important pour toute personne chargée des transferts de fichiers, du trafic réseau ou des diagnostics matériels.
La somme de contrôle simple
À la base, une somme de contrôle est une valeur dérivée d’un bloc de données numériques. La version la plus basique est la somme de contrôle Internet utilisée dans les anciens protocoles comme IPv4 et UDP. Il fonctionne en traitant les données comme une séquence de mots de 16 bits et en les additionnant. S’il y a un nombre impair d’octets, un octet de remplissage est ajouté. La somme est alors complétée.
Cette méthode est rapide. Très rapide. Mais ce n’est pas particulièrement robuste. Il peut manquer certains types d’erreurs. Par exemple, si deux octets échangent leurs places, ou si un retournement de bit dans une position est compensé par un retournement de bit dans une autre, la somme de contrôle peut rester inchangée. C’est comme vérifier le poids d’une valise mais ignorer son contenu. Vous savez que le poids est correct, mais vous ne savez pas si la chemise est toujours là ou si elle a été remplacée par une pierre du même poids.
En raison de ces limitations, les sommes de contrôle simples sont rarement utilisées aujourd’hui pour les contrôles d’intégrité critiques. Ils ont pour la plupart été remplacés par des algorithmes plus robustes comme le CRC ou des hachages cryptographiques comme SHA-256. Cependant, comprendre la simple somme de contrôle permet d’expliquer pourquoi nous avons besoin de meilleurs outils pour la vérification de l’intégrité des données.
Entrez le contrôle de redondance cyclique (CRC)
C’est au CRC que les choses deviennent intéressantes. C’est basé sur la division polynomiale. Au lieu de simplement ajouter des nombres, CRC traite les données comme un grand nombre binaire et les divise par un polynôme générateur prédéfini. Le reste de cette division est la valeur CRC.
Cette approche mathématique rend le CRC bien meilleur dans la détection des erreurs. Il peut détecter toutes les erreurs sur un seul bit, toutes les erreurs sur deux bits et tout nombre impair d’erreurs. Il détecte également les erreurs en rafale (bits consécutifs corrompus) qui sont courantes dans les canaux de transmission bruyants. Considérez les erreurs de rafale comme un problème momentané dans un signal radio ou une rayure sur un CD. CRC est conçu pour gérer ces imperfections du monde réel.
La variante la plus courante est CRC-32, qui produit une valeur de 32 bits. Vous le trouverez partout. Les trames Ethernet, les fichiers ZIP, les images PNG et même certains systèmes de bases de données utilisent CRC-32. Il n’est pas sécurisé du point de vue cryptographique (vous ne pouvez pas l’utiliser pour prouver que quelqu’un n’a pas intentionnellement falsifié vos données), mais il est excellent en cas de corruption accidentelle.
Pourquoi est-ce important pour vous ?
Vous ne pensez peut-être pas au CRC lorsque vous diffusez une vidéo ou envoyez un e-mail. Mais cela fonctionne en coulisses. Lorsque vous téléchargez un correctif de jeu, votre système utilise des sommes de contrôle ou CRC pour vérifier les fichiers. Si les valeurs ne le sont pas

























