Flux RSS - La vie du site - Nouveautés et mises à jour
Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

CRC-32 : « Contrôle de Redondance Cyclique »

CRC-32 : « Contrôle de Redondance Cyclique » (CRC - Cyclic Redundancy Check) - code de détection d'erreur utilisé durant le transport de données (réseaux numériques et périphériques de stockage).

Classé avec les fonctions de hachage par simplification, les CRC (Contrôle de Redondance Cyclique) ne sont pas des fonctions de hachage.

En informatique (DVB - Digital Video Broadcasting (« diffusion vidéo numérique »), MPEG-TS (flux de transport MPEG Transport Stream), sauvegarde, capture de données (échantillonnage)) et dans certains appareils numériques incluant les DAB (Distributeurs Automatiques de Billets), un Contrôle de Redondance Cyclique ou CRC (Cyclic Redundancy Check) est un outil logiciel permettant de détecter les erreurs de transmission ou de transfert. Il s’agit de détecter les modifications accidentelles des données brutes. Les blocs de données entrant dans ces systèmes reçoivent une courte valeur de contrôle, basée sur le reste d'une division polynomiale de leur contenu. Lors de la récupération, le calcul est répété et, si les valeurs de contrôle ne correspondent pas, des mesures correctives peuvent être prises contre la corruption des données, généralement par le renouvellement automatique de la transmission.

Étant donné que les valeurs de contrôle des CRC ont une longueur fixe, les fonctions qui les génèrent sont parfois classées avec les algorithmes de hachage, mais ne produisent pas de hashcode/condensat. Ils produisent un simple code de détection d’erreur.

Cas particulier : Codes de contrôle de parité et codes correcteurs d'erreurs.

Les CRC sont évalués (échantillonnés) avant et après la transmission ou le transfert, puis comparés pour s’assurer que les données sont probablement identiques (probablement seulement, car toutes les erreurs ne peuvent être détectées, les calculs de CRC étant des procédures de hachage relativement « primaires »). Les calculs de CRC les plus utilisés sont conçus afin de pouvoir toujours détecter les erreurs de certains types, comme celles dues par exemple, aux interférences lors de la transmission.

L’opération mathématique essentielle dans le calcul d’un CRC est une division modulo 2 dont le reste représente le CRC.

Les CRC sont appelés ainsi parce que la valeur de vérification (vérification des données) est une redondance (elle étend le message sans ajouter d'informations) et l'algorithme est basé sur des codes cycliques. Les CRC sont populaires, car ils sont simples à implémenter dans le matériel binaire, faciles à analyser mathématiquement et particulièrement efficaces pour détecter les erreurs courantes causées par le bruit dans les canaux de transmission.

Le CRC a été inventé par W. Wesley Peterson en 1961. La fonction CRC 32 bits, utilisée dans Ethernet et de nombreuses autres normes, est l'œuvre de plusieurs chercheurs et a été publiée en 1975.

Il existe de très nombreux CRC dont :

  • CRC-1 : simple contrôle de parité (ou d’imparité) – le nombre de bits à 0 (ou à 1) doit être pair (ou impair). Un bit est donc éventuellement ajouté au départ du transfert de la donnée. La vérification est faite à l’arrivée et une demande de retransmission est faite en cas de corruption.
  • CRC-12
  • CRC-16
  • CRC-32
  • CRC-64

Voir l’article de Wikipedia (anglais) https://en.wikipedia.org/wiki/Cyclic_redundancy_check

L’extrême faiblesse des CRC a été mise en avant pour ridiculiser Viguard, un contrôleur d’intégrité dérobé à son inventeur et dont la société qui tentait de le commercialiser à grands cris ne savait même pas ce que c’était et le qualifiait d’antivirus. Voir Viguard et l'utilisation d'un CRC.

CRC-32 - CRC-32 - division polynomiale

g(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1.

Usage : Ethernet, MPEG2

CRC-32 - CRC-32 - division polynomiale

Outils d'investigations pour chercheurs