Cyclic Redundancy Check (CRC)

Cyclic Redundancy Check

Copyright © Shutterstock/ g0d4ather

Was ist ein Cyclic Redunancy Check?

Definition

Ein Cyclic Redundancy Check (CRC) (deutsch: zyklische Redundanzprüfung) ist ein Fehlererkennungscode, der in digitalen Netzwerken und Speichergeräten häufig verwendet wird, um versehentliche Änderungen an den Rohdaten zu erkennen.

Datenblöcke, die in diese Systeme eintreten, erhalten einen kurzen Prüfwert, der auf dem Rest einer polynomischen Unterteilung ihres Inhalts basiert. Beim Abrufen wird die Berechnung wiederholt und falls die Prüfwerte nicht übereinstimmen, können Korrekturmaßnahmen gegen Datenverfälschung ergriffen werden.

Der Cyclic Redundancy Check wird so genannt, weil der Überprüfungswert (Datenüberprüfung) eine Redundanz ist (er erweitert die Nachricht ohne Hinzufügen von Informationen) und der Algorithmus auf zyklischen Codes basiert.

Cyclic Redundancy Checks sind beliebt, da sie einfach in binärer Hardware zu implementieren sind, mathematisch leicht zu analysieren sind und besonders gut zum Erkennen häufiger Fehler geeignet sind, die durch Rauschen in Übertragungskanälen verursacht werden. Da der Prüfwert eine feste Länge hat, wird die Funktion, die ihn generiert, gelegentlich als Hash-Funktion verwendet.

Anwendung

Ein Cyclic Redundancy Check-fähiges Gerät berechnet für jeden zu sendenden oder zu speichernden Datenblock eine kurze Binärfolge mit fester Länge, die als Prüfwert oder kurz “CRC” bezeichnet wird und hängt sie an die Daten an, wobei ein Codewort gebildet wird.

Wenn ein Codewort empfangen oder gelesen wird, vergleicht das Gerät entweder seinen Prüfwert mit einem frisch aus dem Datenblock berechneten Wert oder führt gleichwertig einen Cyclic Redundancy Check für das gesamte Codewort durch und vergleicht den resultierenden Prüfwert mit einer erwarteten Restkonstante. Wenn die CRC-Werte nicht übereinstimmen, enthält der Block einen Datenfehler.

Das Gerät kann Abhilfemaßnahmen ergreifen, z. B. den Block erneut lesen oder das erneute Senden anfordern. Andernfalls wird davon ausgegangen, dass die Daten fehlerfrei sind (sie können jedoch mit einer geringen Wahrscheinlichkeit unerkannte Fehler enthalten; dies ist in der Natur der Fehlerprüfung enthalten).

Datenintegrität

Der Cyclic Redundancy Check wurde speziell zum Schutz vor gebräuchlichen Arten von Fehlern in Kommunikationskanälen entwickelt, wo er die Integrität der übermittelten Nachrichten schnell und angemessen gewährleisten kann. Er ist jedoch nicht geeignet, um vor absichtlicher Veränderung von Daten zu schützen.

Da es keine Authentifizierung gibt, kann ein Angreifer eine Nachricht bearbeiten und den Cyclic Redundancy Check neu berechnen, ohne dass die Ersetzung erkannt wird. CRCs und kryptografische Hash-Funktionen selbst schützen, wenn sie neben den Daten gespeichert werden, nicht vor einer beabsichtigten Änderung der Daten.

Jede Anwendung, die Schutz vor solchen Angriffen benötigt, muss kryptografische Authentifizierungsmechanismen verwenden, z. B. Nachrichten-Authentifizierungscodes oder digitale Signaturen (die üblicherweise auf kryptografischen Hash-Funktionen basieren).


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte