mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR RFM12 Crypto Empfehlung?


Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frank Buss (foobar)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
XTEA

Autor: Frank Buss (foobar)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: MarioT (Gast)
Datum:

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

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

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.

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frank Buss (foobar)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.