- CRC-32
-
Contrôle de redondance cyclique
Pour les articles homonymes, voir CRC.En informatique, un contrôle de redondance cyclique ou CRC (Cyclic Redundancy Check) est un outil permettant de détecter les erreurs de transmission par ajout de redondance. La redondance ajoutée communément appelée (à tort) somme de contrôle (checksum) est obtenue par un type de hachage sur l'ensemble des données.
Les CRC sont calculés avant et après la transmission ou duplication, puis comparés pour s'assurer que ce sont les mêmes. Les calculs de CRC les plus utilisés sont construits de manière à ce que les erreurs de certains types, comme celles dues aux interférences dans les transmissions, soient toujours détectées.
Implémentation
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 souvent désignés sous le nom de checksums (sommes de contrôle), mais une telle désignation n'est pas correcte car, d'un point de vue technique, un CRC est calculé avec des divisions et non des additions. La partie principale de l'algorithme est la suivante :
function crc(bit array bitString[1..len], int polynomial) { shiftRegister := initial value // commonly all 0 bits or all 1 bits for i from 1 to len { if most significant bit of shiftRegister xor bitString[i] = 1 { shiftRegister := (shiftRegister left shift 1) xor polynomial } else { shiftRegister := (shiftRegister left shift 1) } } return shiftRegister }
Pour en savoir plus
- (en) A Painless Guide to CRC Error Detection Algorithms
- (en) The Great CRC Mystery - Terry Ritter
- (fr) Tutoriel sur le calcul des CRC - DVSoft
- (fr) Calcul du CRC 16 (Animation)
- Portail de l’informatique
- Portail des mathématiques
Catégories : Algorithme de hachage | Somme de contrôle
Wikimedia Foundation. 2010.