Forum: Mikrocontroller und Digitale Elektronik Verschlüsselung und Wahrscheinlichkeitsrechnung


von Alexander I. (daedalus)


Lesenswert?

Guten Morgen,

ich habe eine Frage zu der Auftrittswahrscheinlichkeit eines bestimmten 
Falls bei einer verschlüsselten Datenübertragung:

Ich habe eine serielle Datenleitung bei der 8 Byte große verschlüsselte 
Datagramme übertragen werden. Das Verfahren ist XXTEA, beide Teilnehmer 
kennen den Schlüssel. Ein zusätzliches 9. Byte ist eine 8-Bit CRC die 
Übertragungsfehler in den meisten Fällen erkennen soll.

Folgendes Szenario:
Ein Kommunikationsteilnehmer ist "böswillig" und verwendet während der 
Kommunikation absichtlich einen falschen Schlüssel bzw. probiert per 
Brute-Force die Keys durch (allerdings mit einer korrekten CRC). Das 
führt dazu, dass der Empfänger das Datum prüft, keinen 
Übertragungsfehler feststellt und das Paket verarbeitet. Es kann 
zufällig sein, dass die falsch verschlüsselten Daten ein aus Sicht des 
Empfängers sinnvolles Datenpaket ergeben, das wäre bei etwa 15% der 
falschen Pakete der Fall. Aus diesem Grund prüft er NACH der 
Entschlüsselung ein weiteres Byte aus dem 8-Byte-Block. Hier habe ich 
die Wahl z.B. auf einen Wert zu vergleichen, z.B. "0xAA" oder alternativ 
eine "innere CRC" über die verbliebenen 7 Byte Nutzdaten zu bilden. Da 
ja nur 1 Byte verwendet wird, ist also die Wahrscheinlichkeit einen 
"false positive" zu bekommen bei 1 aus 256.

Jetzt meine Frage:
Da beides mal nur 8 Bit für die Sicherung verwendet werden müsste es 
doch nahezu irrelevant sein die korrekte innere CRC zu prüfen (und damit 
zusätzlich Rechenleistung zu verheizen) oder auf einen festen Wert zu 
vergleichen? Die Wahrscheinlichkeit für einen "false positive"-Fall 
bleibt doch dieselbe? Denkfehler?

Ich hab's schon versucht mit einem PC-Programm über mehrere Tage zu 
testen, aber wirklich aussagekräftige Daten erhalten ich da nicht.

Vielleicht könnt ihr mir ja auf die Sprünge helfen...

von Ich (Gast)


Lesenswert?

Wie hoch ist denn die Wahrscheinlichkeit, dass jemand "böswillig" 
falsche Daten sendet? Ich weiß ja nicht wofür es gedacht ist, aber ich 
denk, dass wird nicht SOOO Wahrscheinlich sein. Ich halte CRC für 
Sinnvoll!

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ich würde statt der ineren CRC einfach einen fortlaufenden Zähler 
nutzen, dann bist du sogar gegen eine Replay Attake abgesichert (in 
Gewissen Grenzen zumindest).
Ein konstanter Wert ist eine schlechte Idee da du dadurch Redundanz 
einfügst welche für einen Angriff verwendet werden kann.

von Alexander I. (daedalus)


Lesenswert?

Da der Controller eine Art Dongle darstellt ist das sehr wahrscheinlich, 
dass hier gehackt wird.

Ein Zähler war ursprünglich mal geplant und ist zwar möglich, aber nicht 
so trivial, da bis zu 32 Teilnehmer am Bus hängen die verschiedenste 
Aufgaben erfüllen. Ich werde da nochmal den Aufwand abschätzen.

Ich werde dann mal vorläufig den Weg über die innere CRC gehen. Danke 
euch mal.

von Jan (Gast)


Lesenswert?

Dongles sind böse.
Nur ein gehackter Dongle ist eine guter Dongle.

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.