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:
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.
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!
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.
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!
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.
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
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?
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.
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.
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.