Zyklische Redundanzprüfung (englisch cyclic redundancy check, kurz CRC) ist das meistverbreitete Fehlererkennungsverfahren in Rechnernetzen und Speichermedien. Sie berechnet aus einem Datenblock einen kompakten Prüfwert und hängt ihn an die Daten an. Der Empfänger prüft den Wert – weicht er ab, ist der Datenblock verfälscht. CRC gehört damit zur Fehlererkennung und ist eine besonders robuste Form der Prüfsumme.

Wie CRC funktioniert

CRC behandelt einen Datenblock als Polynom über dem binären Körper GF(2) und dividiert es durch ein fest vereinbartes Generatorpolynom. Der Rest dieser Polynomdivision ist der CRC-Wert. Der Empfänger führt dieselbe Division aus; ergibt sie den Rest 0, ist der Block fehlerfrei. Die Berechnung ist in Hardware mit Schieberegistern und XOR-Gattern extrem schnell umsetzbar.

Was CRC erkennt

  • alle Einzelbitfehler
  • alle Bündelfehler (Bursts) bis zur Länge des Generatorpolynoms
  • eine ungerade Anzahl von Bitfehlern
  • die meisten Mehrfachfehler – je länger der Prüfwert, desto besser

Bekannte Varianten

Am verbreitetsten ist CRC-32 (IEEE-802.3-Polynom): Es schützt jeden Ethernet-Rahmen als Frame Check Sequence und steckt in PNG-Bildern sowie ZIP-Archiven. CRC-16-Varianten finden sich in USB, Modbus und HDLC, CRC-8 in einfachen Bussystemen wie dem CAN-Bus. Auch WLAN, PCIe, SATA und Bluetooth verlassen sich auf CRC-Verfahren, wenn der Netzwerkprotokoll-Stack die Sicherungsschicht absichert.

Nicht gegen Angriffe

CRC ist keine kryptografische Funktion: Sie erkennt zufällige Übertragungsfehler, schützt aber nicht vor absichtlicher Manipulation. Wer Daten und CRC gemeinsam verändert, bleibt unentdeckt – dafür sind kryptografische Prüfwerte wie SHA-256 oder MACs nötig. Innerhalb der Kanalcodierung ist CRC die Erkennungs-Komponente, während die Vorwärtsfehlerkorrektur (FEC) Fehler ohne Rückkanal direkt korrigiert.

Verwandte Grundlagen: Fehlererkennung, Prüfsumme, Kanalcodierung, Ethernet.