crc16 bis zu wie viel Byte können geprüft werden?

Gast #5834148
supply schrieb:

> bis zu welcher Datenmenge ist ein CRC16 eine vernünftige Prüfsumme?

Das hängt allein davon ab, mit welcher Wahrscheinlichkeit du Fehler 
finden möchtest, also: du selber legst das fest.

> Ich habe ein Array von 400 Byte das ich auf Integrität absichern möchte.

400 Byte mal 8 Bit sind 3200 Bit. Eine CRC16 kann maximal 65536 
verschiedene Werte annehmen. Die Wahrscheinlichkeit für eine "Kollision" 
(=falscher Inhalt liefert "rein zufällig" die richtige CRC) betragt hier 
also 3200*100/65536=4,88%. Ein gutes Polynom sei mal vorausgesetzt, 
ansonsten wird nur noch schlechter.

Mir würden knapp 5% nicht reichen. Für keine Anwendung, die wichtig 
genug ist, dass ich eine CRC-Absicherung überhaupt in Betracht ziehen 
würde...

Also: ganz klares NoGo für diese Anwendung.
Gast #5834175
c-hater schrieb:
> 400 Byte mal 8 Bit sind 3200 Bit. Eine CRC16 kann maximal 65536
> verschiedene Werte annehmen. Die Wahrscheinlichkeit für eine "Kollision"
> (=falscher Inhalt liefert "rein zufällig" die richtige CRC) betragt hier
> also 3200*100/65536=4,88%. Ein gutes Polynom sei mal vorausgesetzt,
> ansonsten wird nur noch schlechter.

Die Rechnung tut schon irgendwie weh.
Gast #5834191
c-hater schrieb:
> Die Wahrscheinlichkeit für eine "Kollision"
> (=falscher Inhalt liefert "rein zufällig" die richtige CRC) betragt hier
> also 3200*100/65536=4,88%.

Das glaubst du doch wohl selber nicht.

Wenn du zu 65536 zufälligen Datenblöcken dieser Länge die CRC 
ausrechnest, hat im Schnitt einer davon die selbe CRC wie der 
Datenblock. Die Wahrscheinlichkeit für ein false positiv läge damit bei 
0,0015%
#5834194
Ich versuchs mal:
Es gibt 2^3200 Werte.
Die CRC kann 2^16 Werte abbilden.
Also gibt es für jeden Wert der CRC 2^3184 Möglicheiten für eine 
Kollision.

Wie viele davon sinnvolle Permutationen sind, hängt ja von den Daten ab.
Bei gewissen Informationen kann man ja sehen, das sowas nicht stimmen 
kann, also sinkt die Zahl der möglichen Kollisionen weiter.
Effektiv wirst du weit unter 0,01% bekommen, eher 0,001.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.