Forum: Mikrocontroller und Digitale Elektronik AVR (8bit): Daten verschlüsselt im EPROM speichern, z.B. mit AES


von tthh (Gast)


Lesenswert?

Hallo zusammen,

ich möchte in einem AVR (8bit) gerne einige wenige Daten im EPROM 
speichern. Ich würde die Daten gerne mit einem sicheren Algo und einem 
vorher eingegebenen Passwort verschlüsseln. Die zu verschlüsselnde 
Zeichenkette ist maximal 32 Zeichen lang.

Ich habe mit einem Kollegen schon darüber geredet. Er hat soetwas wie 
AES vorgeschlagen. Jetzt möchte ich das Rad nicht neu erfinden und z.B. 
sowas wie AES verwenden. Allerdings möchte ich es nicht selbst 
programmieren, da sich die Mühe bestimmt schon mal jemand gemacht hat 
und suche eine einfach eine fertige Bibliothek, die man auch verwenden 
kann. Am besten eine Funktion in der Form:
1
str_crypt = AES(str_klartext, str_passwort, AES-parameter ...)

von tthh (Gast)


Lesenswert?

Nachtrag:
Ich bin auch offen für einen anderen Algorithmus, allerdings sollte er 
"sicher" sein!

von Peter II (Gast)


Lesenswert?

warum sollte es AES sein?

Es dürfte viel einfacher sein dafür ein One-Time-Pad zu verwenden. 
Einfach mit einer 32Byte Zeichenfolge verordern.


Da in beiden Fällen der Schlüssel im Code vorliegen muss, dürfte es auch 
die gleiche Sicherheit sein.

von Peter II (Gast)


Lesenswert?

tthh schrieb:
> Ich bin auch offen für einen anderen Algorithmus, allerdings sollte er
> "sicher" sein!

sich gegen was?`

von Hans (Gast)


Lesenswert?

Hier sind einige C-Libraries aufgelistet:
http://en.wikipedia.org/wiki/AES_implementations#C.2FASM_library

Die hier sieht z.B. auf den ersten Blick für Mikrocontroller brauchbar 
aus:
http://www.literatecode.com/aes256

Ansonsten könntest auch einen Xmega AVR verwenden, der kann AES in 
Hardware.

von tthh (Gast)


Lesenswert?

Peter II schrieb:
> warum sollte es AES sein?
>
> Es dürfte viel einfacher sein dafür ein One-Time-Pad zu verwenden.
> Einfach mit einer 32Byte Zeichenfolge verordern.
>
> Da in beiden Fällen der Schlüssel im Code vorliegen muss, dürfte es auch
> die gleiche Sicherheit sein.

Der Schlüssel soll durch eine Eingabe generiert werden. Über OneTimePad 
habe ich auch schon nachgedacht, bin allerdings zu dem Schluss gekommen,
das einfach verxodern nicht geht, da die zu verschlüsselnde Zeichenkette 
eine variable Länge mit maximal 32 Zeichen hat.

Peter II schrieb:
> tthh schrieb:
>> Ich bin auch offen für einen anderen Algorithmus, allerdings sollte er
>> "sicher" sein!
>
> sich gegen was?

Falls jemand das EPROM ausliest, sollte man es nicht einfach 
entschlüsseln können, nur weil man die Methode kennt!

Hans schrieb:
> Die hier sieht z.B. auf den ersten Blick für Mikrocontroller brauchbar
> aus:
> http://www.literatecode.com/aes256

Vielen Dank! Das werde ich mir mal anschauen!

von Peter II (Gast)


Lesenswert?

tthh schrieb:
> bin allerdings zu dem Schluss gekommen,
> das einfach verxodern nicht geht, da die zu verschlüsselnde Zeichenkette
> eine variable Länge mit maximal 32 Zeichen hat.

Dann speichern man einfach die Länge mit. Das ist nun wirklich das 
kleinste Problem.

von tthh (Gast)


Lesenswert?

Peter II schrieb:
> tthh schrieb:
>> bin allerdings zu dem Schluss gekommen,
>> das einfach verxodern nicht geht, da die zu verschlüsselnde Zeichenkette
>> eine variable Länge mit maximal 32 Zeichen hat.
>
> Dann speichern man einfach die Länge mit. Das ist nun wirklich das
> kleinste Problem.

Falls der Text mal nur 3 Zeichen lang ist, ist das OneTimePad direkt 
gespeichert. Da kann ich mir sowas sparen!

von tthh (Gast)


Lesenswert?

tthh schrieb:
> Peter II schrieb:
>> tthh schrieb:
>>> bin allerdings zu dem Schluss gekommen,
>>> das einfach verxodern nicht geht, da die zu verschlüsselnde Zeichenkette
>>> eine variable Länge mit maximal 32 Zeichen hat.
>>
>> Dann speichern man einfach die Länge mit. Das ist nun wirklich das
>> kleinste Problem.
>
> Falls der Text mal nur 3 Zeichen lang ist, ist das OneTimePad direkt
> gespeichert. Da kann ich mir sowas sparen!

Ausserdem soll die Länge des verschlüsselten Textes genauso geheim 
bleiben, wie der Text selber.

von Peter II (Gast)


Lesenswert?

tthh schrieb:
> Ausserdem soll die Länge des verschlüsselten Textes genauso geheim
> bleiben, wie der Text selber.

dann wird die länge auch per xor veschlüsselt

von Peter II (Gast)


Lesenswert?

tthh schrieb:
> Falls der Text mal nur 3 Zeichen lang ist, ist das OneTimePad direkt
> gespeichert. Da kann ich mir sowas sparen!

was meist du damit?

"aaa"

was heißt das entschlüsselt?

von Oliver R. (orb)


Lesenswert?

tthh schrieb:
> Falls jemand das EPROM ausliest, sollte man es nicht einfach
> entschlüsseln können, nur weil man die Methode kennt!

Sieh Dir doch mal die Lock-Bits an, wenn es nur darum geht den Speicher 
gegen Auslesen zu schützen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Warum verwendest Du nicht einfach entsprechende fertige 
Speicherbausteine, z.B.:

http://www.atmel.com/products/security-ics/secure-memory/default.aspx

Es macht übrigens keinen Sinn, einfach willkürlich irgendein 
Verschlüsselsverfahren, z.B. AES, auszuwählen, ohne vorher genau zu 
spezifizieren, was die ganze Anwendung überhaupt machen soll und welches 
die potentiellen Angriffsvektoren sind.

von tthh (Gast)


Lesenswert?

Andreas Schweigstill schrieb:
> Warum verwendest Du nicht einfach entsprechende fertige
> Speicherbausteine, z.B.:
>
> http://www.atmel.com/products/security-ics/secure-memory/default.aspx
>
> Es macht übrigens keinen Sinn, einfach willkürlich irgendein
> Verschlüsselsverfahren, z.B. AES, auszuwählen, ohne vorher genau zu
> spezifizieren, was die ganze Anwendung überhaupt machen soll und welches
> die potentiellen Angriffsvektoren sind.

Das ist eine gute Idee. Vielen Dank.

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.