Forum: Mikrocontroller und Digitale Elektronik crc16 bis zu wie viel Byte können geprüft werden?


von supply (Gast)


Lesenswert?

Guten Tag,
bis zu welcher Datenmenge ist ein CRC16 eine vernünftige Prüfsumme?
Ich habe ein Array von 400 Byte das ich auf Integrität absichern möchte.

Lg
Paul

von c-hater (Gast)


Lesenswert?

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.

von Jemand (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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%

von Jens M. (schuchkleisser)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.