Wahrscheinlich haben Sie während eines Software-Updates oder eines Datei-Downloads eine Hash-Zeichenfolge oder einen Prüfsummenwert gesehen. Es sieht aus wie zufälliges Rauschen – eine lange Folge hexadezimaler Ziffern oder eine kurze Zahl, die an eine Datei angehängt ist. Aber es erfüllt einen lebenswichtigen Zweck. Es handelt sich um einen digitalen Fingerabdruck. Wenn sich auch nur ein einziges Datenbit ändert, ändert sich dieser Fingerabdruck vollständig. Dieser Mechanismus stellt sicher, dass das, was Sie heruntergeladen haben, bis zum letzten Byte genau das ist, was gesendet wurde.
Die beiden gängigsten Methoden, dies zu erreichen, sind Prüfsummen und Zyklische Redundanzprüfungen (CRC). Obwohl sie ähnlich klingen, basieren sie auf unterschiedlichen Prinzipien und bedienen leicht unterschiedliche Nischen in der Welt der Internetprotokolle und der Datenspeicherung. Für jeden, der sich mit Dateiübertragungen, Netzwerkverkehr oder Hardwarediagnose beschäftigt, ist es wichtig, den Unterschied zu verstehen.
Die einfache Prüfsumme
Im Kern ist eine Prüfsumme ein Wert, der aus einem Block digitaler Daten abgeleitet wird. Die einfachste Version ist die Internet-Prüfsumme, die in älteren Protokollen wie IPv4 und UDP verwendet wird. Dabei werden die Daten als Folge von 16-Bit-Wörtern behandelt und addiert. Bei einer ungeraden Anzahl an Bytes wird ein Füllbyte hinzugefügt. Die Summe wird dann eins ergänzt.
Diese Methode ist schnell. Sehr schnell. Aber es ist nicht besonders robust. Es können bestimmte Arten von Fehlern übersehen werden. Wenn beispielsweise zwei Bytes ihre Plätze tauschen oder wenn ein Bit-Flip an einer Position durch einen Bit-Flip an einer anderen kompensiert wird, bleibt die Prüfsumme möglicherweise unverändert. Es ist, als würde man das Gewicht eines Koffers überprüfen, aber den Inhalt ignorieren. Sie wissen, dass das Gewicht stimmt, aber Sie wissen nicht, ob das Hemd noch da ist oder ob es durch einen Stein mit dem gleichen Gewicht ersetzt wurde.
Aufgrund dieser Einschränkungen werden einfache Prüfsummen heute kaum noch für kritische Integritätsprüfungen verwendet. Sie wurden größtenteils durch robustere Algorithmen wie CRC oder kryptografische Hashes wie SHA-256 ersetzt. Das Verständnis der einfachen Prüfsumme hilft jedoch zu erklären, warum wir bessere Tools für die Überprüfung der Datenintegrität benötigen.
Geben Sie die zyklische Redundanzprüfung (CRC) ein.
Beim CRC wird es interessant. Es basiert auf der Polynomdivision. Anstatt nur Zahlen zu addieren, behandelt CRC die Daten als große Binärzahl und dividiert sie durch ein vordefiniertes Generatorpolynom. Der Rest dieser Division ist der CRC-Wert.
Durch diesen mathematischen Ansatz kann CRC Fehler viel besser erkennen. Es kann alle Einzelbitfehler, alle Doppelbitfehler und jede ungerade Anzahl von Fehlern abfangen. Es erkennt auch Burst-Fehler – aufeinanderfolgende Bits, die beschädigt sind –, die in verrauschten Übertragungskanälen häufig auftreten. Stellen Sie sich Burst-Fehler als einen vorübergehenden Fehler in einem Funksignal oder einen Kratzer auf einer CD vor. CRC wurde entwickelt, um diese realen Unzulänglichkeiten zu bewältigen.
Die häufigste Variante ist CRC-32, die einen 32-Bit-Wert erzeugt. Sie werden es überall finden. Ethernet-Frames, ZIP-Dateien, PNG-Bilder und sogar einige Datenbanksysteme verwenden CRC-32. Es ist nicht kryptografisch sicher – Sie können damit nicht beweisen, dass jemand Ihre Daten nicht absichtlich manipuliert hat –, eignet sich aber hervorragend für versehentliche Beschädigungen.
Warum ist Ihnen das wichtig?
Möglicherweise denken Sie nicht an CRC, wenn Sie ein Video streamen oder eine E-Mail senden. Aber es funktioniert hinter den Kulissen. Wenn Sie einen Spiel-Patch herunterladen, verwendet Ihr System Prüfsummen oder CRC, um die Dateien zu überprüfen. Wenn die Werte dies nicht tun


























