Forum: Mikrocontroller und Digitale Elektronik AVR RFM12 Crypto Empfehlung?


von Werner (Gast)


Lesenswert?

Hallo,

ich übertrage mit AVRs und RFM12 Modulen kleine Pakete (bis ca. 20 
Bytes) birektional mit variabler Länge, welche ich verschlüsseln möchte. 
Es soll auf beiden Seiten der Schlüssel (z.B. 64 bit) im Eeprom 
abgespeichert sein. Welche Verschlüsselung könnte ich da benutzen, wäre 
das ein Block- oder Stromchiffre, ist das asymmetrisch oder symmetrisch?
Vielen Dank für Anhaltspunkte,

Werner

von Frank B. (foobar)


Lesenswert?

Also wenn du auf beiden Seiten denselben Schlüssel hast, dann wäre das 
eine symmetrische Verschlüsselung (es sei denn du hast jeweils zwei 
Paare private/public Keys). Ich würde sowas wie AES-256 verwenden: Ist 
sicher und gibt freie C-Implementierungen, die auch noch in kleinere 
Microcontroller passen.

von Alexander S. (esko) Benutzerseite


Lesenswert?

XTEA

von Frank B. (foobar)


Lesenswert?

Danke, kannte ich noch nicht, XTEA sieht auch sehr gut aus und hat den 
Vorteil, daß man auch 64-Bit Blöcke verwenden kann (AES: 128 Bit), sodaß 
es besser zu der Anforderung passt, 20 Byte zu verschlüsseln. Und die 
Implementierung bei Wikipedia würde ja sogar noch in den kleinsten PIC 
passen :-)

von Werner (Gast)


Lesenswert?

XTEA sieht gut aus! Was aber mache ich wenn ich z.B. nur 13 Bytes zu 
übertragen habe, die Blockgröße ist ja 4 Bytes; den Rest mit Nullen 
auffüllen (macht vermutlich die Sicherheit etwas kaputt) oder mit 
Zufallszeichen?

Werner

von MarioT (Gast)


Lesenswert?

Werner schrieb:
> den Rest mit Nullen
> auffüllen (macht vermutlich die Sicherheit etwas kaputt)

??
http://de.wikipedia.org/wiki/Extended_Tiny_Encryption_Algorithm

Mit Stand vom Jahr 2004 ist der beste bekannte Angriff in Form der 
Related-Key-Attack auf XTEA in einer bewusst schwächer gewählten 
Implementierung von nur 26 Runden (empfohlen sind 64) bekannt. Dieser 
Angriff benötigt mindestens ? frei gewählte Klartextblöcke.

von Werner (Gast)


Lesenswert?

Ich meinte wenn ich z.B. 13 Bytes Nutzdaten habe wären das 3,25 Blocke á 
32 Bits. Das wären 4 Blöcke, wobei im letzten Block die letzen 3 Bytes 
nicht "belegt" sind, was fülle ich da am besten rein?

Werner

von Frank B. (foobar)


Lesenswert?

Einfach mit 0 auffüllen sollte sicher sein. Du kannst aber auch ein paar 
Zufallswerte nehmen, dann ist die Entschlüsselung noch schwieriger (wird 
in Form von "Salt" z.B. auch bei Hashes verwendet).

Falls du für den Schlüssel übrigens ein leicht zu merkendes Passwort 
verwenden willst (natürlich kein Wörterbuch Wort, sondern z.B. ein 
Akronym), dann kannst du den längeren Schlüssel z.B. per SHA erzeugen, 
was auch noch relativ leicht zu implementieren ist.

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.