Cyclic Redundancy Check (CRC)

Copyright ┬ę Shutterstock/ g0d4ather

Was ist ein Cyclic Redunancy Check?

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