AVR RFM12 Crypto Empfehlung?

Gast #1918538
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
#1918721
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.
#1918744
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 :-)
Gast #1919726
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
Gast #1919740
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.
Gast #1919918
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
#1919952
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren